diff --git a/.github/workflows/cbz-cold-start-node.yml b/.github/workflows/cbz-cold-start-node.yml new file mode 100644 index 000000000..67edbdf7d --- /dev/null +++ b/.github/workflows/cbz-cold-start-node.yml @@ -0,0 +1,80 @@ +name: cbz-cold-start-node +on: + push: + branches: [cbz/cold-start-node-20261029] + paths: + - 'tools/cbz_node_regression.py' + - 'tools/cbz_node_controls.py' + - 'tests/test_cbz_node_regression.py' + - '.github/workflows/cbz-cold-start-node.yml' + pull_request: + paths: + - 'tools/cbz_node_regression.py' + - 'tools/cbz_node_controls.py' + - 'tests/test_cbz_node_regression.py' + - '.github/workflows/cbz-cold-start-node.yml' +permissions: + contents: read +jobs: + controls-and-prepared: + runs-on: ubuntu-24.04-arm + timeout-minutes: 15 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + with: + persist-credentials: false + fetch-depth: 0 + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: '3.11' + - name: Ordinary controls and intended source/harness mutations + run: python -I -B -S tools/cbz_node_controls.py + - name: Optimized controls and intended source/harness mutations + if: always() + run: python -I -B -O -S tools/cbz_node_controls.py + - name: Fetch immutable historical fixture objects + if: always() + run: | + git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" + git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" + - name: Every tracked mjs test with verified fixtures + if: always() + env: + NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs + NODE_PATH: /untrusted/cbz-node-path + run: python -I -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" + - name: Print actual result for independent readback + if: always() + run: | + python -I -B -S - <<'PY' + import hashlib, json, os + from pathlib import Path + root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" + record = json.loads((root / "result.json").read_text()) + print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) + raw = (root / "node.tap").read_bytes() + def verify_log(value): + if hashlib.sha256(value).hexdigest() != record["log_sha256"]: + raise ValueError("Node transcript no longer matches executed report") + verify_log(raw) + try: + verify_log(raw + b"\0") + except ValueError: + print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") + else: + raise SystemExit("modified transcript was admitted") + text = raw.decode("utf-8") + chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] + print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) + print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( + b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) + for number, chunk in enumerate(chunks): + print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) + PY + - name: Preserve actual result and transcript + if: always() + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 + with: + name: cbz-node-result + path: ${{ runner.temp }}/cbz-node-result + if-no-files-found: error diff --git a/.github/workflows/cbz-federation-drift.yml b/.github/workflows/cbz-federation-drift.yml new file mode 100644 index 000000000..2416b444a --- /dev/null +++ b/.github/workflows/cbz-federation-drift.yml @@ -0,0 +1,71 @@ +name: CBZ federation drift +'on': + pull_request: + push: + branches: [main] + schedule: + - cron: '41 4 * * *' + workflow_dispatch: +permissions: + contents: read +jobs: + self-test: + name: drift-crawler-self-test + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: '3.11' + - name: Behaviour and mutation tests in both interpreter modes + env: + PYTHONDONTWRITEBYTECODE: '1' + run: | + set -euo pipefail + cd tests + for mode in normal optimized; do + flag=""; [ "$mode" = optimized ] && flag="-O" + python -B $flag -m unittest test_cbz_drift test_cbz_drift_adversarial_01a103c8 test_cbz_drift_canonical_input test_cbz_drift_pr_trigger_01a11c48 -v 2>&1 | tee "$RUNNER_TEMP/drift-$mode.log" + grep -Eq '^Ran [1-9][0-9]* tests? in ' "$RUNNER_TEMP/drift-$mode.log" || { echo "::error::drift $mode run collected 0 tests"; exit 1; } + done + crawl: + name: federation-drift + needs: self-test + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + with: + persist-credentials: false + fetch-depth: 0 + path: fed/main + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: '3.11' + - name: Crawl the federation from its workspace seed + env: + PYTHONDONTWRITEBYTECODE: '1' + run: | + set -euo pipefail + # Only the seed is named here. Every other repository, and its ref, is discovered + # from the seed's pins, submodules, repository list, registry and lake manifests. + git clone -q https://github.com/d6g8k5htny-coder/Universal-Law-Workspace.git fed/Universal-Law-Workspace + head=$(git -C fed/main rev-parse HEAD) + status=0 + for at in pins tips; do + python -B -S fed/main/tools/cbz_drift/crawl.py --seed d6g8k5htny-coder/Universal-Law-Workspace \ + --search fed --clone-into fed --fetch --at "$at" \ + --override "d6g8k5htny-coder/main=$head" \ + --json "$RUNNER_TEMP/drift-$at.json" || status=$? + [ "$status" -le 1 ] || { echo "::error::drift crawler error (exit $status)"; exit "$status"; } + done + exit "$status" + - if: always() + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 + with: + name: federation-drift-reports + path: ${{ runner.temp }}/drift-*.json + if-no-files-found: warn diff --git a/.github/workflows/current-site.yml b/.github/workflows/current-site.yml index a5f4fd03b..5c2e6e3fd 100644 --- a/.github/workflows/current-site.yml +++ b/.github/workflows/current-site.yml @@ -16,6 +16,10 @@ name: Current research site - 'tests/test_node_status_refresh.py' - 'tests/test_node_status_freshness.py' - 'cbz/evidence/node-status-freshness/run_mutations.py' + # inputs of the freshness suite and its mutation runner + - 'tools/validate_node_status.py' + - 'records/node_status/**' + - 'architecture/node-status.schema.json' - 'tests/fixtures/node_status_refresh/**' - '.github/workflows/current-site.yml' schedule: diff --git a/AGENTS.md b/AGENTS.md index 99e338668..ceb525fa4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,7 +22,7 @@ wait for peer or human approval. No shared `/root` alias is an exclusive canonical-file owner. Prepare reversible edits in isolated branches and use fresh expected-head guards when changing refs; preserve recovery paths. -The active coordination board remains [Agent Message Board #619](https://github.com/d6g8k5htny-coder/main/issues/619). +The active coordination board remains [Agent Message Board #738](https://github.com/d6g8k5htny-coder/main/issues/738). [#684](https://github.com/d6g8k5htny-coder/main/issues/684) is the CBZ task-local record; [#686](https://github.com/d6g8k5htny-coder/main/issues/686) records owner source. No board rollover or foreign release is inferred from those links. diff --git a/DECISIONS.md b/DECISIONS.md index bbce5d5bb..48e128d02 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -34,3 +34,7 @@ Append-only. Historical source outcomes remain in their original records. | 2026-10-30 00:36:59 | 3 | C/runtime | Clarified Atlas control runtime in its existing guide: CPython3.9.6 yields9 preserved assertion/subtest failures across2 grader methods because callbacks arrive after teardown; currentMain11e288 hosted3.12.15 run40976675758/attempt1/job123806316839 passed31controls and2required browser methods in each mode. Preserve failures and historical30/45 counts; update the old exclusive-writer guidance to current fluid roles. No grader, test, workflow or browser policy changed. | Yes | [Actual hosted run](https://github.com/d6g8k5htny-coder/main/actions/runs/40976675758); exact source/decoded-log diagnosis; docs/cbz/ATLAS_BROWSER_REGRESSIONS.md | | 2026-10-30 00:36:59 | 2 | C/composition | Ruling: prepare this four-document contribution as an isolated successor of713/62292ad6 and a stacked PR, without changing the existing713 branch or resetting its current checks. Retarget to Main after that base actually lands and recheck the resulting composition. Source guards prevent overwrites; the pending base is an integration dependency, not an exclusive coordinator lock. | Yes | Original713 source and parent; current team Master; guarded source/readback records | | 2026-10-30 00:40:56 | 2 | C/source | Guard observed713 advance62292ad6 toaf3996f5. Recompose this same bounded registration on freshaf3996f5, preserving its strict replay-qualifier GOVERNANCE section and complete prior ledger. Original author corrected review finding: GOV and STATUS now print all6 actual reproduction commands, including unchanged MomentTail unittest discovery normal/optimized, rather than only4. Private prior proposal retained; no old result rebound to new code. | Yes | Current713 source; bounded documentation review; exact command-to-native-CI comparison | +| 2026-10-30 00:01 | 2 | C | Removed the federation crawler's PR path filter so new topology/registry inputs reach discovery. Added a restricted subscription guard to its self-test; preserved the original failed check and the independently found comment-hidden-filter defect before fixing it. Local 55-test populations passed in both parent modes. The complete owner team reissue supersedes exclusive B-003 locks; this is an isolated compatible patch on Claude017's source, with no crawler/parser or mathematical change and no final tool/G7 admission. | Yes | [Pickup](https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6511287308); [repair evidence](cbz/evidence/pr-trigger-01a11c48-20261029/README.md); [complete owner directive](https://github.com/d6g8k5htny-coder/main/issues/686#issuecomment-6511339492) | +| 2026-11-01 14:40 | 2 | B/tooling | Registered the empirical statement check (main#726, merged d0d384b1; tool blob 020cb194) under GOVERNANCE and STATUS with its exact commands, the hosted navigation run 41242533228 / job 124659189973 (35 tests ok on CPython 3.11.17 at the merge commit) and the three-class mutation contract; coverage recorded honestly: main formal 31/31 PASS, #740 formal 59/59 PASS, Math- formal 63/63 UNSUPPORTED (exact-rational interval backend is the recorded gap). No global CLOSED guard installed; the final G0-G11 run remains required. Actor: Anthropic Claude session 01NMeK (tool author); reviews of record 01DKKe (same family, P1 fixed by follow-on) and Grok Bot agent 12 (different family). | Yes | [registration](GOVERNANCE.md#empirical-statement-check-for-core-lean-arithmetic-skeletons-bounded-registration); [#726](https://github.com/d6g8k5htny-coder/main/pull/726) | + +[2026-11-01 22:05 UTC] [Phase 3] [Layer C / G8] Correct the stale current-navigation statement that PR #713 is pending integration. Native PR metadata records merge 9abd2c100ae105103945073a7fa6c47b15679269 at 2026-10-31 10:18:44 UTC. Preserve the former 11e28815 source as pre-integration history, all scientific snapshot bytes and all qualification limits. This documentation correction neither replays checks nor establishes current-composition, theorem or CBZ-0 acceptance. Reversible: isolated commit; previous text retained in Git history. Evidence: https://github.com/d6g8k5htny-coder/main/pull/713 and https://github.com/d6g8k5htny-coder/main/commit/9abd2c100ae105103945073a7fa6c47b15679269 . diff --git a/GOVERNANCE.md b/GOVERNANCE.md index d5c6517a3..808079227 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -122,6 +122,81 @@ Mission tools must be finished, documented with exact usage and verification, and registered here and in `TOOLING.md` before final admission. Tools are a means to closure, never a reason to open a general infrastructure project. +### Empirical statement check for core-Lean arithmetic skeletons: bounded registration + +**Registered 2026-11-01 14:40 UTC; global admission of the empirical layer remains pending.** +[main PR #726](https://github.com/d6g8k5htny-coder/main/pull/726), merged as +`d0d384b18a409ed51061458287dde22816782210`, supplies `tools/cbz/statement_fuzz.py` +(blob `020cb194c206d268972fcc9f50dd0707b21819d0`, SHA-256 +`1bd0f4a3059d6f040cb978691d2954deecf9a84287ce2272e48fe9ae93bdd7a7`), +`tests/test_cbz_statement_fuzz.py` (blob `723bbd306c70f0ea66b2c461ea40da9df4d923b6`) +and the run records under `cbz/evidence/g12-statement-fuzz-01n/`. + +Purpose: the addendum's empirical layer for *statements*. Kernel verification is not +strengthened by sampling, so for every theorem registered in a formal package's +`manifest.json` the tool parses the Lean statement and the package's own `def`s in an +exact-arithmetic interpreter for the core-Lean subset these skeletons use, evaluates it +independently of Lean (Python integers and `Fraction`; a float anywhere is an assertion +failure), enumerates finite quantifier domains exhaustively (list membership, or an upper +bound on an explicit `Nat`/`ℕ` binder only), probes just outside each domain for tightness +and vacuity as information, and reports PASS / FAIL / UNSUPPORTED per target. Lean core +semantics are implemented where they differ from naive arithmetic: `Nat` truncated +subtraction, totalized division (`x / 0 = 0`, `x % 0 = x`), `Nat` floor division, +Euclidean `Int` `/` and `%` (`Int.ediv`/`Int.emod`), numeral typing by the `binop%` +maximal-type rule. A FAIL is a misstatement or transcription defect in the Lean text, +never kernel evidence; UNSUPPORTED is fail-closed and makes the exit code non-zero. + +From a checkout of this repository, run: + +``` +python3 -B -S -m unittest tests.test_cbz_statement_fuzz -v +python3 -B -O -S -m unittest tests.test_cbz_statement_fuzz -v +python3 -B -S tools/cbz/statement_fuzz.py --package formal --selftest --json +``` + +Self-verification: the 35 tests (tokenizer, Lean semantics including the six Euclidean +division goldens of main#684/6511137449, definitions, folds, pairs, quantifiers, vacuity +and tightness probes, fail-closed behaviour, the mutation contract, the real package) ran +on the merge commit in the hosted `navigation` job +([run 41242533228](https://github.com/d6g8k5htny-coder/main/actions/runs/41242533228), +job `124659189973`, CPython 3.11.17, artifact `research-navigation-41242533228` whose +`commit.txt` is `d0d384b1…` and whose `tests-normal.log` shows the 35 +`test_cbz_statement_fuzz` cases `ok` among 1,892) and locally in both modes with +`-W error`. `--selftest` grades every module by a three-class mutation contract: +guaranteed-false mutants must FAIL (each comparison replaced by its negation one conjunct +at a time, the right-hand literal of an equality shifted by one — never `<`→`≤`), +truth-preserving weakenings (`<`→`≤`, `>`→`≥`) must PASS, and the manifest's declared +negative controls that change a statement must FAIL; an UNSUPPORTED or errored mutant is +a survivor, never a kill, and a stubbed evaluator fails the unmutated control. Reviews of +record: same-family 01DKKe +([726/6547986788](https://github.com/d6g8k5htny-coder/main/pull/726#issuecomment-6547986788); +one P1 fail-open domain inference found and fixed by its follow-on, tree `198c1f97`) and +different-family Grok Bot agent 12 +([726/6548050253](https://github.com/d6g8k5htny-coder/main/pull/726#issuecomment-6548050253), +PASS with the follow-on); Codex 01a103c8 supplied the division-semantics controls. + +Coverage actually observed, per package and cut: + +| Package | Cut | Targets | PASS | UNSUPPORTED | Mutation contract | +|---|---|---:|---:|---:|---| +| main `formal/` (SIDE24 skeleton) | `4712fc13` (`formal/` unchanged since) | 31 | 31 | 0 | 98/98 killed, 12 weakenings kept, 7 declared controls FAIL | +| main #740 `formal/` (SIDE24 + P15 skeletons, candidate) | `43b10c6f` | 59 | 59 | 0 | 184/184 killed, 14 declared controls FAIL | +| Math- `formal/` (`ResearchFormalCoreR1`, Mathlib real analysis) | `19a55750` | 63 | 0 | **63** | — | + +Gate mapping: G0/G5/G6 use the documented tests and the mutation contract; G8/G9/G11 +require this exact scope, runnable commands and self-verification record. For a new +CLOSED claim on a core-Lean arithmetic statement, a PASS at the same source cut as the +kernel receipt is the applicable empirical validation this registry recognises, recorded +with the report file's SHA-256 and the `manifest_sha256` it binds; it adds nothing to and +takes nothing from G2–G4. The tool does not cover Mathlib real analysis, binders before +the colon or unbounded quantifiers, so the Math- core's 63 statements remain explicitly +unsupported by the empirical layer; an exact-rational interval backend for +`Real.exp`/`log`/`sqrt` (offered by Claude017, main#684/6532742483) is the recorded gap. +This component installs no global CLOSED guard and does not complete the common final +G0–G11 run. Maintenance owner: none; stdlib only, self-contained. Actual executor: +Anthropic Claude, Claude Code session `session_01NMeKEismAyeqgdB4sy2NJU`; scientific +effect NONE. + ### Finite MomentTail empirical component: bounded registration **Registered 2026-10-30 00:36:59 UTC; global admission remains pending.** diff --git a/STATUS.md b/STATUS.md index aa5e806fe..1f52a8cf7 100644 --- a/STATUS.md +++ b/STATUS.md @@ -15,9 +15,10 @@ cross-repository synchronization and final common G0-G11 pass remain unfinished. Source-only checks and individual successful jobs do not complete the twelve baseline criteria. The [foundation candidate #695](https://github.com/d6g8k5htny-coder/main/pull/695) is a candidate handoff, not the current default-branch baseline. -At this observation, current Main is `11e28815163e15223e8827fe6ff47a1faaf36ebd`. -PR #713 is pending integration; its replay sources, controls and this documentation -must be qualified at their final composed source. The proof catalogue and other +The pre-integration Main source was `11e28815163e15223e8827fe6ff47a1faaf36ebd`. +[PR #713](https://github.com/d6g8k5htny-coder/main/pull/713) merged on 2026-10-31 at 10:18:44 UTC +as `9abd2c100ae105103945073a7fa6c47b15679269`; its qualification evidence +remains bound to the sources actually checked, not automatically to later compositions. The proof catalogue and other foundation material in #695 are pending, not an admitted default-branch baseline. This intermediate entry is not a completed cold-start acceptance test. @@ -45,6 +46,24 @@ not full AST/type/theorem synchronization. New gating tools require documented commands and self-verification before admission; unavailable or unsupported coverage remains explicit. No documented command here runs all G0-G11 yet. +The empirical statement check for core-Lean arithmetic skeletons is a registered +bounded component on `main` ([PR #726](https://github.com/d6g8k5htny-coder/main/pull/726), +merged `d0d384b18a409ed51061458287dde22816782210`). From a checkout, run: + +``` +python3 -B -S -m unittest tests.test_cbz_statement_fuzz -v +python3 -B -O -S -m unittest tests.test_cbz_statement_fuzz -v +python3 -B -S tools/cbz/statement_fuzz.py --package formal --selftest --json report.json +``` + +It evaluates every registered Lean statement of a formal package independently in exact +arithmetic with Lean-core semantics and grades itself by a mutation contract; the +[registration](GOVERNANCE.md#empirical-statement-check-for-core-lean-arithmetic-skeletons-bounded-registration) +records commands, hosted self-verification and limits. At [registration #741](https://github.com/d6g8k5htny-coder/main/pull/741): main `formal/` 31/31 +PASS; the Math- core's 63 real-analysis statements are UNSUPPORTED, which is the honest +coverage at that source cut, not a pass. A PASS is statement-level evidence +only: not kernel evidence, not scientific acceptance, not the common G0-G11 run. + The finite MomentTail component is a registered bounded candidate in [Math PR #545](https://github.com/d6g8k5htny-coder/Math-/pull/545), exact source `e1cf617b6bc979b75d420f28df17ddad59426522`. In an isolated checkout of that Math diff --git a/audits/dropbox_import/2026-09-27/README.md b/audits/dropbox_import/2026-09-27/README.md index bf07c5a64..57396bded 100644 --- a/audits/dropbox_import/2026-09-27/README.md +++ b/audits/dropbox_import/2026-09-27/README.md @@ -5,6 +5,25 @@ Provenance record of project material that existed only in Dylan's Dropbox. the claims their authors made at the time, and current Git and Drive carriers govern present status. Treat every file as historical input for review. +## Mathematical reading correction — 2026-11-02 + +[The archived cross-disciplinary synthesis, §C](https://github.com/d6g8k5htny-coder/main/blob/c1f807e3f1c19374f9e65b46a15ca1936d9620c5/audits/dropbox_import/2026-09-27/files/Github/Cross-Disciplinary%20Connections%20for%20Persistence-Thermodynamic%20Cosmological%20Fingerprints13m.pdf.txt#L161-L167) +incorrectly gives β < α as the convergence range for a power-law lifetime tail. +For a nonnegative, locally integrable density on [0, ∞) satisfying +ρ(ℓ) ~ cℓ^(-α) as ℓ → ∞, c > 0, the integral +Z(β) = ∫₀∞ exp(βℓ)ρ(ℓ)dℓ diverges for every β > 0, converges for β < 0, +and converges at β = 0 exactly when α > 1. To see this, bound the tail density +above and below by positive multiples of ℓ^(-α), then apply exponential +domination and the power-integral test. Local integrability handles the finite interval. + +A small-lifetime asymptotic alone gives no large-lifetime threshold. +Under the same local-integrability assumptions, a tail +ρ(ℓ) ~ cℓ^(-p)exp(-aℓ), a > 0, instead has threshold β = a: +convergence below, divergence above, and convergence at equality exactly when p > 1. +Finite catalogs of finite lifetimes have finite Z for every real β. +These are integral-convergence statements, not phase-transition certificates. +The archived source bytes remain unchanged. + This import follows the owner's standing rule [OP-PRIVACY-20260927](../../../governance/OP-PRIVACY-20260927.md): only material related to the project is published here, and nothing personal is. diff --git a/cbz/contributions/math514/README.md b/cbz/contributions/math514/README.md new file mode 100644 index 000000000..5258d3a6b --- /dev/null +++ b/cbz/contributions/math514/README.md @@ -0,0 +1,13 @@ +# Math514 CBZ contribution: exact-module kernel replay and project coverage + +This contribution supplies a completed, bounded adapter to the installed Lean 4.34.1 `LeanChecker.replayFromImports`, plus a public-safe map of the eight Math Lake projects and Main core. Canonical federation integration, GOVERNANCE/TOOLING registration, full G2/G3/G4 coverage and final G0–G11 acceptance remain with main#684/#685. This directory declares no CBZ-0 result. + +The kernel adapter runs one exact named module per fresh process, serially, with explicit source/object/runtime/context bindings and resource bounds. It preserves upstream import-only replay and all available exported/server/private parts. It rejects symlinked artifact/search paths and project-local checker shadowing. See [portable usage](kernel_replay/README.md), [mechanical scope](kernel_replay/SPEC.md), [registry payload](kernel_replay/REGISTRY.json) and [independent review](kernel_replay/independent-review.md). + +Observed self-verification: 27 distinct applicable tests pass (25 from the final production-source run plus two newly added tests; not a repeated 27-test run). All 16 actual source mutations were killed by assertions, with no errors/skips/survivors. The original four mutation survivors, resource failures and the reproduced pre-fix symlink false-green remain retained and expressly invalidated as acceptance. No project proof replay occurred in building this tool. The canonical947 handoff already records a successful same-source complete Math-core gate with two threads at8151. Reuse that result; this adapter remains an exact-scheduling option for independently justified future coverage, without requiring another Math-core replay. G2 axiom policy is independent and remains NOT_ASSESSED by this adapter. + +The negative fixture sources intentionally contain forged self-referential public/private theorem bodies or an unapproved axiom. They are isolated test inputs, never CLOSED mathematical declarations or production imports. Their expected rejection distinguishes a real checker from green-by-construction output. Preserve them and their historical failed-tool evidence. + +[Project inventory](inventory/README.md) and [coverage gaps](inventory/TOOLING_GAPS.md) retain exact observation cuts and available recipes. This is discovery, not complete-scope certification. Stage67 mathematical source was published separately in Math#514 at86c00d4c08c6c2af0529ec1744693de3ca6ac6e4: one conditional kernel-closed theorem, with its unproved ordinary realization/controls precisely quarantined. Conventional prose is not promoted to a kernel proof. + +For canonical registration, import the exact tool facts/commands/self-verification/limits/ledger payload from `kernel_replay/REGISTRY.json`. The registry payload is contribution evidence, not an edit to the federation's canonical rulebook. The separate manifest/isolation auditor is delivered in Main#697 with70 passing tests/53 assertion-killed mutants and focused postfix review; it is not included in this branch and actual repository G1 remains NOT_RUN. diff --git a/cbz/contributions/math514/inventory/README.md b/cbz/contributions/math514/inventory/README.md new file mode 100644 index 000000000..5aa48f3b3 --- /dev/null +++ b/cbz/contributions/math514/inventory/README.md @@ -0,0 +1,52 @@ +# Proof-project coverage contribution + +Prepared for the canonical single writer, [main#684](https://github.com/d6g8k5htny-coder/main/issues/684)/[main#685](https://github.com/d6g8k5htny-coder/main/issues/685). This is a bounded contribution handoff, not a registry, integration decision or federation baseline declaration. + +Original inventory cut: **2026-10-29T17:05:21.411546+00:00** across five Math worktrees and one Main checkout. Current contribution STATUS and the packaged stage67 closure overlay that cut. No new research, checks, tests, builds, kernel replays or source-digest runs were performed. Completed applicable evidence remains reusable; a new agent/session alone never warrants rechecking. + +[proof-projects.json](proof-projects.json) maps exact repository-relative locations, recorded command/cwd recipes, evidence pointers and all G0–G11 gaps. [TOOLING_GAPS.md](TOOLING_GAPS.md) gives the remaining coverage boundary. No raw private code, local branch census or original absolute-path metadata is copied. + +## Concrete stage67 contribution + +Math- package `frontiers/source_derivative_gaussian_20261025` supplies `SourceActualLowerSeparation.lean`: **CLOSED as a conditional kernel theorem**, exactly one public proposition and four private theorems, with only `propext`, `Classical.choice`, `Quot.sound`. Literal global `IsMorseDistinct` remains an explicit hypothesis. No genuine fixture, nonvacuity witness, unconditional source application or Parent result is claimed. + +Reused source identity:14899B / `e72ed4f92e7867dc210b771e6afb4548cfad679e8b38795110fa6fd76a15e121`. Reused own-object identity:409960B / `c001bad5446351036112f0c78b264fd3ffc423dc7df7fc09f9431bdbdcac43cc`. Strict006, exhaustive ALL5/std3 and proper own-module kernel exit0 are retained under `cbz/stage67/evidence/`. Kernel interval:2026-10-29T16:47:24.817525–16:47:29.785445Z; entry completed16:47:29.806374Z. The changed Lake registration subsequently built exit0 at17:33:58.953065Z. These observations are scoped evidence, not final federation gates. + +The exact boundary is `cbz/stage67/PROOF_INDEX.md` and `CLOSURE.json`. `quarantine/Q-MATH-SDGA-67-ORDINARY/QUARANTINE.json` retains failed normalization source/diagnostics and absent genuine global-hm/positive/collision/mutation/False-control obligations. It is outside Lake/default targets, has no ordinary object and is not a production dependency. Preserve it unchanged for integration. + +From the **Math- source-derivative package directory**, the already documented reproduction recipes are: + +```sh +lake build SourceActualLowerSeparation +lake env lean -DwarningAsError=true cbz/stage67/evidence/Inventory.lean +lake env leanchecker SourceActualLowerSeparation +``` + +These recipes are provided for the canonical writer's mapping. No repeat of completed unchanged checks is requested. The installed prefix CLI is unambiguous for this module, which has no matching submodules; all-project replay still requires its own exact-module census/tool admission. + +## Exactly eight Math projects, plus Main core + +| Math- project path | Scope | +|---|---| +| `formal` | ResearchFormalCoreR1 scalar companions; registered targets do not alone establish ALL-declaration coverage. | +| `specifications/lean_statements_20261010` | Definitions, interface structures and registered Prop specifications; not theorem closure by definition. | +| `specifications/lean_statement_proofs_20261011` | Theorems of exact sibling specification Props; historical source records describe78 checked theorems, not proof of every registered Prop. | +| `frontiers/cap_first_exit_lean_20261002` | Cap/first-exit Lean package. | +| `frontiers/source_smooth_realization_20261011` | Actual smooth Gaussian source realization and source carrier. | +| `frontiers/source_lifetime_realization_20261017` | Literal source field/geometry and Lifetime interface bridge. | +| `frontiers/determinant_moment_20261025` | Determinant/moment package; shares package name with formal but is a distinct root. | +| `frontiers/source_derivative_gaussian_20261025` | Source derivative/conditioning/topology development, including exactly scoped stage67 contribution. | + +Main's ninth distinct project location is **main:`formal/`**, package `UniversalLaw`, dependency-free Lean core with an empty package manifest. Math configs declare Lean v4.34.1 and Mathlib `d13f23b723b8a846827a245b89c10fc7d3f11612`; the proof packet additionally uses its sibling statement package. Declared pins are not installed-dependency or cross-repository resolution evidence. + +At the cut, these give41 actual root occurrences plus five copies of a historical ten-module published lakefile,46 configs in13 variants. That historical metadata is **not a ninth active Math project**. Source-derivative default-target counts were14/18/29/66 on different cuts; the later stage67 registered-build evidence supersedes only the earlier unregistered-stage67 note, without claiming a fresh all-project census. + +Non-Lake coverage includes the torus-filtration and three D2 companions, regular-superlevel project/negative-project modules, asymmetric elder, compact adapter inputs and review scratch. Their staged `formal/` environment, generated sources and LEAN_PATH must be represented explicitly; nearest-ancestor lakefiles do not prove build membership. + +## What the inventory establishes + +The original lexical inventory retained2842 Lean file occurrences in1976 deduplicated groups,39853 declaration candidates,807 Python math/float candidate groups,2745 status/source/pin surfaces and2763 conventional-claim documents. It retained archive/evidence/incoming material and exact locations privately with the canonical writer. These are discovery counts, not soundness or absence proofs. + +Conventional prose and exact-certificate evidence remain valuable in their stated scope. They are separate from kernel-proved statements. Definitions/interfaces are specifications, not unverified axiom injections merely because their Props have no theorem. Missing geometric Kac–Rice/elder/density/Parent formalizations require explicit boundaries; impossible underdetermined universal statements must not be repaired by assuming their desired conclusions. Source-explicit binary64 certifying use needs A3 isolation; diagnostic float tokens and exact rational-grid calculations require their own dataflow classification. + +All final G0–G11 remain **not established by this handoff**. Canonical admission, final input binding, full-tree coverage, regression, pins, status synchronization and clean-Git/cold-start acceptance stay with the canonical writer. Older tooling's kernel-pending and nine-active-project wording is dated and superseded as described above. diff --git a/cbz/contributions/math514/inventory/TOOLING_GAPS.md b/cbz/contributions/math514/inventory/TOOLING_GAPS.md new file mode 100644 index 000000000..48184d558 --- /dev/null +++ b/cbz/contributions/math514/inventory/TOOLING_GAPS.md @@ -0,0 +1,46 @@ +# Tooling and all-project coverage gaps + +Contribution to main#684/#685; no integration or new-registry decision. Original lexical observation cut:2026-10-29T17:05:21.411546+00:00. Current contribution STATUS and packaged stage67 evidence provide the later explicit overlay. No new execution or re-verification occurred. + +## Existing recipes to map + +The following exact package-local drivers were recorded in math-tooling discovery. **cwd: Math- repository root.** Source-only mode is a scoped source/manifest check; execution mode may overwrite evidence/build directories and must retain historical failures under the canonical writer's preservation policy. This table records capabilities and does not request unchanged reruns. + +| Source-only command | Execution command | +|---|---| +| `python -B -S formal/gate.py` | `python -B -S formal/gate.py --execute` | +| `python -B -S frontiers/determinant_moment_20261025/gate.py` | `python -B -S frontiers/determinant_moment_20261025/gate.py --execute` | +| `python -B -S frontiers/cap_first_exit_lean_20261002/gate.py` | `python -B -S frontiers/cap_first_exit_lean_20261002/gate.py --execute` | +| `python -B -S specifications/lean_statements_20261010/check.py` | `python -B -S specifications/lean_statements_20261010/check.py --execute` | +| `python -B -S specifications/lean_statement_proofs_20261011/check.py` | `python -B -S specifications/lean_statement_proofs_20261011/check.py --execute` | + +Stage67's three exact package-directory recipes and receipts are in README and JSON. Torus filtration has the recorded repository-root workflow command `bash companions/torus_filtration_20261011/replay.sh` (`.github/workflows/torus-filtration.yml:48`). The source-lifetime static recipe is `python -B -S frontiers/source_lifetime_realization_20261017/validate_static.py` from the repository root. The recorded generic `lake build` applies in each exact package directory; it does not supply an observed receipt here. + +Source-smooth's historical hosted workflow and non-Lake staged drivers still need explicit scope/evidence mapping. Main core's specific gate/selftest/kernel driver was outside the Math tooling census and is left **NEEDS_MAPPING**, without guessed commands. No top-level source-derivative federation auditor was established by the old discovery; stage67's owned Inventory proves only its five owned constants. + +## G0–G11 unmet scope + +| Gate | Exact remaining boundary | +|---|---| +| G0 | Current contribution STATUS records an earlier56/56 selftest and39/39 checker-source mutants killed, followed by reported escaped-name/native-option defects under investigation. Changed-tool coverage/admission and federation-wide auditor selftests remain unresolved; the old run stays exact-scope evidence. | +| G1 | No complete repository/federation Layer-A run is recorded. Lexical inventories do not establish absence, soundness or G1 green. Cover embedded/generated source, archives, dependencies and actual CLOSED/quarantine isolation with an admitted auditor. | +| G2 | Map every CLOSED declaration, including private/data/generated constants, to owning module and approved transitive axioms. Stage67 ALL5/std3 evidence is reusable; registered target lists do not prove whole-federation coverage. | +| G3 | Cover all eight Math roots, Main core and non-Lake staged companions under one final source/pin binding. Stage67 registered build exit0 covers changed registration only, not final federation G3. | +| G4 | Stage67 proper own-module replay is completed evidence. Federation all-CLOSED module census and bounded exact-module replay remain to be admitted; current STATUS describes a separate wrapper still being verified. Skip escapes/prefix assumptions cannot supply missing replay. | +| G5 | Map all retained suites/frontier and companion tests to actual execution. Existing scoped passes remain reusable; final coherent full-regression run not established. | +| G6 | Map semantic and auditor mutation obligations to actual tools/scopes; preserve failure evidence. Historical scoped mutation passes do not establish final federation threshold. | +| G7 | Resolve installed dependencies and cross-repository pins at final inputs. Config-declared Lean/Mathlib pins and source-ID strings are discovery evidence, not resolved remote consistency. | +| G8 | Canonical single writer must reconcile exact dispositions, evidence and status surfaces. Dated availability labels, specified Props and conventional review acceptance cannot be silently promoted to kernel CLOSED. | +| G9 | No final tagged cache-free cold-start acceptance is recorded. Canonical STATUS must supply exact usable commands; no guessed runner is proposed here. | +| G10 | Canonical writer owns full branch/PR/worktree/stash/tag cleanliness and integration. Original local census is an observation cut, not a current or final clean-Git claim. | +| G11 | Canonical admission/documentation/self-verification and resource/version coverage for every mission tool remain required. This handoff is an inventory contribution, not a new tool registry. | + +## Limits that must survive integration + +- Reuse completed applicable mathematical verification. New agent/session/handoff alone is not a reason to rerun it. Pending process metadata never erases that evidence. +- The original discovery scripts are unverified inventory collectors. No absence, soundness or complete G1 conclusion follows from lexical counts, including zero code-token matches. +- Imported project inputs, generated/embedded test source, private/data/generated declarations, archive failures and external dependency closure need admitted mechanical coverage. Mathlib bodies were not audited by this task. +- Keep the original exact-boundary stage67 ordinary quarantine and source-explicit binary64-certifier candidates isolated from CLOSED claims. Preserve failed tests/attempts; never delete for green. +- Statement-only interfaces and conventional prose do not become kernel CLOSED through a green build, review label, hash or source register. Conversely, completed theorem/conventional evidence remains reusable in its exact scope. +- Historical external-review/quorum/custody ceremonies are superseded. Keep actual scientific evidence and observed failure outcomes; do not reinstate those ceremonies through old driver defaults. +- Final same-input federation execution/admission, documentation and Git/pin reconciliation belong to the canonical writer. This handoff supplies no final green result or broad publication of the private initial census. diff --git a/cbz/contributions/math514/inventory/proof-projects.json b/cbz/contributions/math514/inventory/proof-projects.json new file mode 100644 index 000000000..ea7636fba --- /dev/null +++ b/cbz/contributions/math514/inventory/proof-projects.json @@ -0,0 +1,868 @@ +{ + "schema_version": 1, + "kind": "PUBLIC_SAFE_CONTRIBUTION_INVENTORY_HANDOFF_NOT_A_REGISTRY", + "canonical_integration_owner": "main#684/#685 single writer", + "original_observation_cut_utc": "2026-10-29T17:05:21.411546+00:00", + "original_scope": "Five local Math worktrees plus one Main checkout; actual source reads with indexed-relative-path/content deduplication. No local worktree paths, branch metadata or raw private records copied here.", + "current_status_overlay": "Contribution STATUS plus packaged stage67 CLOSURE/PROOF_INDEX; includes registered build observed2026-10-29T17:33:58.953065Z. No fresh census or checks.", + "evidence_reuse_rule": "Completed applicable verification remains reusable under unchanged assumptions/dependencies. New agent/session/handoff alone never warrants rechecking. Final federation protocol obligations are separate from exact-scope mathematical evidence.", + "original_candidate_counts": { + "lean_unique": 1976, + "lean_occurrences": 2842, + "lean_declaration_candidates": 39853, + "python_float_mathematical_files": 807, + "python_float_candidate_lines": 10703, + "status_surface_unique": 2745, + "conventional_claim_document_unique": 2763, + "conventional_claim_candidate_lines": 25818, + "pin_reference_files": 2217, + "pin_reference_lines": 83309, + "project_config_unique": 13, + "project_config_occurrences": 46 + }, + "project_root_count": { + "unique_Math_project_paths": 8, + "Main_core_project_paths": 1, + "actual_occurrences_at_cut": 41, + "historical_config_copies_at_cut": 5, + "config_variants_at_cut": 13 + }, + "projects": [ + { + "repository": "d6g8k5htny-coder/Math-", + "path": "formal", + "config": "formal/lakefile.toml", + "package_name": "universal_law_formal", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + } + ], + "observed_default_targets_at_original_cut": [ + "ResearchFormalCoreR1" + ], + "role": "ResearchFormalCoreR1 scalar companions; registered targets do not alone establish ALL-declaration coverage.", + "existing_drivers": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "source_only": "python -B -S formal/gate.py", + "execute": "python -B -S formal/gate.py --execute", + "state": "DISCOVERED_NOT_RUN_IN_HANDOFF" + } + ], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "formal" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED" + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "specifications/lean_statements_20261010", + "config": "specifications/lean_statements_20261010/lakefile.toml", + "package_name": "universal_law_specifications", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + } + ], + "observed_default_targets_at_original_cut": [ + "Specifications" + ], + "role": "Definitions, interface structures and registered Prop specifications; not theorem closure by definition.", + "existing_drivers": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "source_only": "python -B -S specifications/lean_statements_20261010/check.py", + "execute": "python -B -S specifications/lean_statements_20261010/check.py --execute", + "state": "DISCOVERED_NOT_RUN_IN_HANDOFF" + } + ], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "specifications/lean_statements_20261010" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED" + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "specifications/lean_statement_proofs_20261011", + "config": "specifications/lean_statement_proofs_20261011/lakefile.toml", + "package_name": "universal_law_specification_proofs", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + }, + { + "name": "universal_law_specifications", + "path": "../lean_statements_20261010" + } + ], + "observed_default_targets_at_original_cut": [ + "SpecificationProofs" + ], + "role": "Theorems of exact sibling specification Props; historical source records describe78 checked theorems, not proof of every registered Prop.", + "existing_drivers": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "source_only": "python -B -S specifications/lean_statement_proofs_20261011/check.py", + "execute": "python -B -S specifications/lean_statement_proofs_20261011/check.py --execute", + "state": "DISCOVERED_NOT_RUN_IN_HANDOFF" + } + ], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "specifications/lean_statement_proofs_20261011" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED" + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/cap_first_exit_lean_20261002", + "config": "frontiers/cap_first_exit_lean_20261002/lakefile.toml", + "package_name": "cap_first_exit", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + } + ], + "observed_default_targets_at_original_cut": [ + "CapFirstExit" + ], + "role": "Cap/first-exit Lean package.", + "existing_drivers": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "source_only": "python -B -S frontiers/cap_first_exit_lean_20261002/gate.py", + "execute": "python -B -S frontiers/cap_first_exit_lean_20261002/gate.py --execute", + "state": "DISCOVERED_NOT_RUN_IN_HANDOFF" + } + ], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/cap_first_exit_lean_20261002" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED" + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_smooth_realization_20261011", + "config": "frontiers/source_smooth_realization_20261011/lakefile.toml", + "package_name": "source_smooth_realization", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + } + ], + "observed_default_targets_at_original_cut": [ + "SourceSmoothControls" + ], + "role": "Actual smooth Gaussian source realization and source carrier.", + "existing_drivers": [], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_smooth_realization_20261011" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED", + "workflow_pointer": ".github/workflows/source-smooth-realization.yml", + "coverage_gap": "Historical workflow is scoped and includes superseded ceremony; no short consolidated federation driver mapped." + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_lifetime_realization_20261017", + "config": "frontiers/source_lifetime_realization_20261017/lakefile.toml", + "package_name": "source_lifetime_realization", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + } + ], + "observed_default_targets_at_original_cut": [ + "C291Inputs", + "SourceLifetimeControls", + "SourceLifetimeAxiomAudit" + ], + "role": "Literal source field/geometry and Lifetime interface bridge.", + "existing_drivers": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "source_only": "python -B -S frontiers/source_lifetime_realization_20261017/validate_static.py", + "state": "DISCOVERED_NOT_RUN_IN_HANDOFF", + "boundary": "Static mappings/identity validation; not kernel verification." + } + ], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_lifetime_realization_20261017" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED" + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/determinant_moment_20261025", + "config": "frontiers/determinant_moment_20261025/lakefile.toml", + "package_name": "universal_law_formal", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + } + ], + "observed_default_targets_at_original_cut": [ + "ResearchFormalCoreR1" + ], + "role": "Determinant/moment package; shares package name with formal but is a distinct root.", + "existing_drivers": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "source_only": "python -B -S frontiers/determinant_moment_20261025/gate.py", + "execute": "python -B -S frontiers/determinant_moment_20261025/gate.py --execute", + "state": "DISCOVERED_NOT_RUN_IN_HANDOFF" + } + ], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/determinant_moment_20261025" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED" + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_derivative_gaussian_20261025", + "config": "frontiers/source_derivative_gaussian_20261025/lakefile.toml", + "package_name": "source_derivative_gaussian", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [ + { + "name": "mathlib", + "git": "https://github.com/leanprover-community/mathlib4.git", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612" + } + ], + "observed_default_targets_at_original_cut": [ + "SourceDerivativeGaussian", + "ContactJetCovariance", + "SourceContactCovariance", + "SourceConfluentPins", + "SourceContactSchur", + "SourceDerivativeContinuity", + "ConfluentIntegralIdentities", + "SourceEndpointRegression", + "GaussianRegressionLimits", + "SourceEndpointParameters", + "SourceContactEndpointParameters", + "SourceConfluentLimits", + "SourcePhysicalEndpointKernel", + "SourceEndpointEstimates", + "SourceSmoothConditionalKernel", + "SourceSmoothPalm", + "GaussianWeightedMajorants", + "SourceConditionalMajorant", + "SourcePinCurvatureBounds", + "ScalarProductCurvatureBound", + "SourceCurvatureDecomposition", + "SourceWeightedCurvatureBound", + "SourcePinPreservingQuartic", + "SourceSmoothTopology", + "SourceRawPinConditioning", + "SourceQuarticCaptureAlgebra", + "SourceMorseIncidence", + "SourceSmoothParameterSpace", + "SourceLifetimePairFiniteness", + "SourceCompactTargetMoments", + "AdaptiveFoldScalarBarrier", + "AdaptiveFoldTransverseRidge", + "AdaptiveFoldBoundaryPath", + "SourceAdaptiveFoldChart", + "SourceAdaptiveFoldEstimates", + "SourceActualFoldDeath", + "SourceActualFoldTorus", + "SourceActualFoldH0", + "SourceFoldWeightedProbability", + "SourceGapPinCurvature", + "SourceAllTargetCurvatureResidual", + "SourceGapWeightedNumerator", + "SourceCompactGapNormalizer", + "SourceCompactFoldWeightedProbability", + "SourceActualFoldCandidate", + "SourceFinitePinKernel", + "SourceFiniteTrig", + "SourceRemoteJetWitness", + "SourceRemoteJetGaussian", + "SourceEndpointHessianWitness", + "SourceH0OlderClearance", + "SourceEndpointHessianGaussian", + "SourceTwoRemoteFirstJetWitness", + "SourceIntrinsicH0Interface", + "SourceTwoRemoteFirstJetGaussian", + "SourceIntrinsicH0WeightedProbability", + "SourceRawPinFreeCoordinates", + "SourceFramedConfluentCovariance", + "SourceGapConditionalMorseDistinct", + "SourceActualMorseLocalModel", + "SourceActualTorusSuperlevelLocalBasis", + "SourceActualTorusRegularSlab", + "SourceActualFiniteSuperlevelComponents", + "SourceActualQuotientSaddleCollar", + "SourceActualSaddleUppercuts", + "SourceActualRegularLocalCollar" + ], + "role": "Source derivative/conditioning/topology development, including exactly scoped stage67 contribution.", + "existing_drivers": [], + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_derivative_gaussian_20261025" + }, + "command": "lake build", + "provenance": "Generic existing Lake build command recorded in math-tooling G3; config supplies root/targets. No execution in this handoff." + }, + "final_federation_gate_status": "NOT_ESTABLISHED", + "current_stage67_registration": { + "target": "SourceActualLowerSeparation", + "status": "RECORDED_BUILD_EXIT0", + "end_utc": "2026-10-29T17:33:58.953065Z", + "evidence": "frontiers/source_derivative_gaussian_20261025/cbz/stage67/evidence/registered-lake-build/receipt.json", + "qualification": "Adds stage67 to original66 target cut; no fresh census/rebuild undertaken here." + } + }, + { + "repository": "d6g8k5htny-coder/main", + "path": "formal", + "config": "formal/lakefile.toml", + "package_name": "UniversalLaw", + "toolchain": "leanprover/lean4:v4.34.1", + "requirements": [], + "observed_default_targets_at_original_cut": [ + "UniversalLaw" + ], + "role": "Lean-core-only UniversalLaw pilot. Empty dependency manifest; no Mathlib dependency.", + "build_recipe": { + "cwd": { + "repository": "d6g8k5htny-coder/main", + "path": "formal" + }, + "command": "lake build", + "provenance": "Recorded generic Lake command with observed config root; not executed here." + }, + "coverage_gap": "Main-specific gate/selftest/kernel command not mapped by the Math tooling inventory. Canonical writer must bind actual main driver and all-declaration scope.", + "final_federation_gate_status": "NOT_ESTABLISHED" + } + ], + "historical_metadata_boundary": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_derivative_gaussian_20261025/evidence/catalog-history/historical-ten-module/published-package-metadata/lakefile.toml", + "role": "Historical ten-module metadata copy in each Math checkout; not a ninth active mathematical project.", + "execution": "NOT_RUN" + }, + "non_lake_sources_and_drivers": [ + { + "repository": "d6g8k5htny-coder/Math-", + "path": "companions/torus_filtration_20261011/replay.sh", + "state": "DISCOVERED_NOT_RUN", + "coverage_boundary": "No local lakefile. Explicit staged external Specifications.Field build and LEAN_PATH; generated controls and kernel modes require exact driver inventory.", + "runtime_root": "formal/ lake environment; companion root + generated .lake spec/input/output dirs", + "recorded_command": { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "bash companions/torus_filtration_20261011/replay.sh", + "provenance": ".github/workflows/torus-filtration.yml:48", + "state": "DECLARED_NOT_RUN_IN_HANDOFF" + } + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/regular_superlevel_geometry_20261020/c297_hosted_verify.py", + "state": "DISCOVERED_NOT_RUN", + "coverage_boundary": "Driver/input/evidence mapping remains a scoped coverage obligation.", + "runtime_root": "formal/ pinned dependencies; explicit project/ and negative-project/ modules, isolated object/evidence directory" + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "companions/d2_square_schur_20261006/replay.sh", + "state": "NEEDS_DRIVER_AUDIT", + "coverage_boundary": "Driver/input/evidence mapping remains a scoped coverage obligation." + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "companions/d2_atom_integral_20261006/replay.sh", + "state": "NEEDS_DRIVER_AUDIT", + "coverage_boundary": "Driver/input/evidence mapping remains a scoped coverage obligation." + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "companions/d2_moment_bridge_20261006/replay.sh", + "state": "NEEDS_DRIVER_AUDIT", + "coverage_boundary": "Driver/input/evidence mapping remains a scoped coverage obligation." + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/asymmetric_elder_bridge_20261017", + "state": "NEEDS_DRIVER_AND_HISTORICAL_RECEIPT_MAPPING", + "coverage_boundary": "Driver/input/evidence mapping remains a scoped coverage obligation." + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/compact_morse_elder_adapter_20261018", + "state": "NEEDS_DRIVER_AND_INPUT_SOURCE_MAPPING", + "coverage_boundary": "Retained inputs/ source copies, not automatically independent build roots." + }, + { + "repository": "d6g8k5htny-coder/Math-", + "path": "reviews/w3_side24_source_proposal_20261008/W3Scratch", + "state": "NEEDS_DRIVER_MAPPING", + "coverage_boundary": "Retained review scratch Lean source; not an independent Lake project or automatically CLOSED production code." + } + ], + "stage67": { + "repository": "d6g8k5htny-coder/Math-", + "module_path": "frontiers/source_derivative_gaussian_20261025/SourceActualLowerSeparation.lean", + "proof_index": "frontiers/source_derivative_gaussian_20261025/cbz/stage67/PROOF_INDEX.md", + "closure": "frontiers/source_derivative_gaussian_20261025/cbz/stage67/CLOSURE.json", + "status": "CLOSED_CONDITIONAL_KERNEL_THEOREM", + "public_target": "I4SourceActualLowerSeparation.actualSource_closedSuperlevel_componentInclusion_locally_injective", + "statement_boundary": "Positive original period/sample, literal global IsMorseDistinct and fixed c imply one delta>0 and injectivity of the same actual closed-superlevel component inclusion for every b in CLOSED[c-delta,c], with s=-c,t=-b. No actual fixture/nonvacuity witness or unconditional/Parent application is claimed.", + "owned_constants": { + "total": 5, + "public_Prop": 1, + "private_theorems": 4, + "owned_data_or_generated_remainder": 0 + }, + "approved_axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ], + "source_identity": { + "bytes": 14899, + "sha256_reused": "e72ed4f92e7867dc210b771e6afb4548cfad679e8b38795110fa6fd76a15e121" + }, + "object_identity": { + "bytes": 409960, + "sha256_reused": "c001bad5446351036112f0c78b264fd3ffc423dc7df7fc09f9431bdbdcac43cc", + "committed_or_promoted": false + }, + "observed_kernel": { + "start_utc": "2026-10-29T16:47:24.817525Z", + "end_utc": "2026-10-29T16:47:29.785445Z", + "entry_end_utc": "2026-10-29T16:47:29.806374Z", + "exit": 0, + "streams": "empty" + }, + "evidence": [ + "frontiers/source_derivative_gaussian_20261025/cbz/stage67/evidence/production006-strict/receipt.json", + "frontiers/source_derivative_gaussian_20261025/cbz/stage67/evidence/production-inventory002/receipt.json", + "frontiers/source_derivative_gaussian_20261025/cbz/stage67/evidence/production-final-kernel001/receipt.json", + "frontiers/source_derivative_gaussian_20261025/cbz/stage67/evidence/registered-lake-build/receipt.json" + ], + "reproduction_recipes": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_derivative_gaussian_20261025" + }, + "command": "lake build SourceActualLowerSeparation", + "boundary": "Exact package reproduction recipe from stage67 PROOF_INDEX; existing evidence is reused, no rerun requested." + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_derivative_gaussian_20261025" + }, + "command": "lake env lean -DwarningAsError=true cbz/stage67/evidence/Inventory.lean", + "boundary": "Exact package reproduction recipe from stage67 PROOF_INDEX; existing evidence is reused, no rerun requested." + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "frontiers/source_derivative_gaussian_20261025" + }, + "command": "lake env leanchecker SourceActualLowerSeparation", + "boundary": "Exact package reproduction recipe from stage67 PROOF_INDEX; existing evidence is reused, no rerun requested." + } + ], + "ordinary_quarantine": { + "id": "Q-MATH-SDGA-67-ORDINARY", + "status": "QUARANTINED", + "definition": "frontiers/source_derivative_gaussian_20261025/cbz/stage67/quarantine/Q-MATH-SDGA-67-ORDINARY/QUARANTINE.json", + "failed_source": "frontiers/source_derivative_gaussian_20261025/cbz/stage67/quarantine/Q-MATH-SDGA-67-ORDINARY/ActualLowerSeparationControls.lean", + "failed_receipt": "frontiers/source_derivative_gaussian_20261025/cbz/stage67/quarantine/Q-MATH-SDGA-67-ORDINARY/ordinary002-strict/receipt.json", + "boundary": "Attempted private finite-source normalization failed strict. No universal critical classification/inertia/eight-height/parity/torusDist/global-hm proof; same-delta positives, collision, mutation/negation and False-control qualification are absent. No ordinary object or production dependency.", + "resumption_cost": "Previously recorded6\u201312 producer hours plus2\u20134 control hours; estimate only, no new work authorized by this handoff." + }, + "final_cbz_gate_claim": false + }, + "claim_categories": [ + { + "kind": "CONVENTIONAL_PROSE", + "examples": [ + "frontiers/source_derivative_gaussian_20261025/geometric-palm-evidence/application/APPLICATION_PROOF.md", + "frontiers/source_derivative_gaussian_20261025/capture-application/PROOF.md", + "frontiers/source_derivative_gaussian_20261025/actual-adaptive-elder-application/PROOF.md" + ], + "boundary": "Retain conventional mathematics and exact prior reviews. Full geometric Campbell/area/Kac\u2013Rice, selected flow/elder once-counting/density and Parent application claims require an explicit formalization quarantine until their exact statement has kernel evidence. Older disclaimers can be superseded in particular subscopes; no wholesale re-review is implied." + }, + { + "kind": "DEFINITIONS_AND_INTERFACES", + "examples": [ + "specifications/lean_statements_20261010/REGISTER.json" + ], + "boundary": "def : Prop and interface structures are specifications/vocabulary, not axioms or proofs. The original structured register has171 claim rows;10 landing rows are separately retained. Underdetermined universal statements, predicates and genuinely proved theorems need distinct exact dispositions. Do not add desired conclusions as assumptions or weaken bounds." + }, + { + "kind": "EXACT_CERTIFICATE_VS_FLOAT_BOUND", + "examples": [ + "coefficients/side24_v1/PROOF.md", + "frontiers/cusp_coefficient_certified_20261001/certificate.py", + "frontiers/c2_exact_20261001/certificate.py" + ], + "boundary": "Exact rational-grid/symbolic evidence is distinct from binary64-certifying outputs and diagnostic floats. Source-explicit binary64 enclosure pipelines require isolation from mathematical certification under A3; source token matches alone are not violation verdicts or numerical-bound decisions." + }, + { + "kind": "ARCHIVE_FAILURE_CONTROL", + "boundary": "Original inventory retained1752 archive/evidence/incoming Lean groups. Preserve failed sources/controls and prove isolation from CLOSED imports; do not delete for green." + } + ], + "gates": [ + { + "gate": "G0", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Current contribution STATUS records an earlier56/56 selftest and39/39 checker-source mutants killed, followed by reported escaped-name/native-option defects under investigation. Changed-tool coverage/admission and federation-wide auditor selftests remain unresolved; the old run stays exact-scope evidence.", + "historically_discovered_commands": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python3 -m unittest discover -s formal/tests -v", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python3 -O -m unittest discover -s formal/tests -v", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S specifications/lean_statements_20261010/test_check.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -O -S specifications/lean_statements_20261010/test_check.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S specifications/lean_statements_20261010/test_check.py LeanHelpers", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S specifications/lean_statement_proofs_20261011/test_check.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -O -S specifications/lean_statement_proofs_20261011/test_check.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S specifications/lean_statement_proofs_20261011/test_check.py LeanHelpers", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python3 -B -S -m unittest discover -s tests -p test_required_formal_check.py -v", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + } + ], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G1", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "No complete repository/federation Layer-A run is recorded. Lexical inventories do not establish absence, soundness or G1 green. Cover embedded/generated source, archives, dependencies and actual CLOSED/quarantine isolation with an admitted auditor.", + "historically_discovered_commands": [], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G2", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Map every CLOSED declaration, including private/data/generated constants, to owning module and approved transitive axioms. Stage67 ALL5/std3 evidence is reusable; registered target lists do not prove whole-federation coverage.", + "historically_discovered_commands": [], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G3", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Cover all eight Math roots, Main core and non-Lake staged companions under one final source/pin binding. Stage67 registered build exit0 covers changed registration only, not final federation G3.", + "historically_discovered_commands": [], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G4", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Stage67 proper own-module replay is completed evidence. Federation all-CLOSED module census and bounded exact-module replay remain to be admitted; current STATUS describes a separate wrapper still being verified. Skip escapes/prefix assumptions cannot supply missing replay.", + "historically_discovered_commands": [], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G5", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Map all retained suites/frontier and companion tests to actual execution. Existing scoped passes remain reusable; final coherent full-regression run not established.", + "historically_discovered_commands": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S -m unittest discover -s tests -v", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -O -S -m unittest discover -s tests -v", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + } + ], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G6", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Map semantic and auditor mutation obligations to actual tools/scopes; preserve failure evidence. Historical scoped mutation passes do not establish final federation threshold.", + "historically_discovered_commands": [], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G7", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Resolve installed dependencies and cross-repository pins at final inputs. Config-declared Lean/Mathlib pins and source-ID strings are discovery evidence, not resolved remote consistency.", + "historically_discovered_commands": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S formal/gate.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S frontiers/determinant_moment_20261025/gate.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S frontiers/cap_first_exit_lean_20261002/gate.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S specifications/lean_statements_20261010/check.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S specifications/lean_statement_proofs_20261011/check.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S imports/hardening_ebedb780/verify.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python3 -B -S tools/required_formal_check.py receipt", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + } + ], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G8", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Canonical single writer must reconcile exact dispositions, evidence and status surfaces. Dated availability labels, specified Props and conventional review acceptance cannot be silently promoted to kernel CLOSED.", + "historically_discovered_commands": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S tools/landing_claims_check.py --verify-issues", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python3 -B -S tools/required_formal_check.py aggregate", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + }, + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "python -B -S tools/check_proof_reachability.py", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + } + ], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G9", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "No final tagged cache-free cold-start acceptance is recorded. Canonical STATUS must supply exact usable commands; no guessed runner is proposed here.", + "historically_discovered_commands": [], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G10", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Canonical writer owns full branch/PR/worktree/stash/tag cleanliness and integration. Original local census is an observation cut, not a current or final clean-Git claim.", + "historically_discovered_commands": [], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + }, + { + "gate": "G11", + "state": "FINAL_FEDERATION_GATE_NOT_ESTABLISHED", + "unmet_scope": "Canonical admission/documentation/self-verification and resource/version coverage for every mission tool remain required. This handoff is an inventory contribution, not a new tool registry.", + "historically_discovered_commands": [ + { + "cwd": { + "repository": "d6g8k5htny-coder/Math-", + "path": "." + }, + "command": "lake env lean --version", + "state": "RECORDED_CAPABILITY_NOT_EXECUTED_IN_HANDOFF" + } + ], + "command_boundary": "Package-local historical commands only; not an instruction to rerun unchanged evidence. Legacy external-review/quorum ceremony is superseded. Final commands belong to the canonical writer." + } + ], + "limitations": [ + "Lexical discovery scripts were unverified/noncertifying. Regex counts do not prove absence, soundness, complete coverage or G1 green.", + "Original inventories excluded .git/.lake/generated/cache bodies; Mathlib proof bodies were not audited. Dependencies and generated/embedded controls need separate admitted coverage.", + "All file/declaration/token/claim/pin exact locations remain in the private initial inventory already held by canonical writer; this bounded handoff does not republish it.", + "Original tooling notes that stage67 kernel was pending and that nine configs meant nine active projects are stale: current evidence closes stage67 conditionally, and one config is historical metadata.", + "No source, build, test, kernel, digest, Git/remote mutation, external post or new research was performed while preparing this handoff." + ] +} diff --git a/cbz/contributions/math514/kernel_replay/ExactReplay.lean b/cbz/contributions/math514/kernel_replay/ExactReplay.lean new file mode 100644 index 000000000..400f3853d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/ExactReplay.lean @@ -0,0 +1,33 @@ +/- +CBZ exact-module scheduling adapter for Lean 4.34.1. +The kernel operation is the installed Apache-2.0 LeanChecker implementation, +Copyright (c) 2023 Kim Morrison; authors Kim Morrison, Sebastian Ullrich. +No replay logic is copied here. See SPEC.md and upstream provenance in reports. +-/ +import LeanChecker + +open Lean + +/-- Invoked by the strict Python CLI in a fresh, resource-bounded process. + Importing LeanChecker imports the checker implementation, never the target. -/ +unsafe def cbzExactReplay : IO Unit := do + let some raw ← IO.getEnv "CBZ_KERNEL_REPLAY_MODULE" + | throw <| IO.userError "missing exact-module request" + let fields := raw.splitOn "." + unless !raw.isEmpty && fields.all (fun s => !s.isEmpty && + s.toList.all (fun c => c.isAlphanum || c == '_' || c == '\'')) do + throw <| IO.userError "invalid exact module name" + let target := raw.toName + if target.isAnonymous then throw <| IO.userError "anonymous module forbidden" + initSearchPath (← findSysroot) + let actual ← IO.FS.realPath (← findOLean target) + let some expected ← IO.getEnv "CBZ_KERNEL_REPLAY_OLEAN" + | throw <| IO.userError "missing expected olean binding" + unless actual.toString == expected do + throw <| IO.userError s!"resolved olean mismatch: {actual} != {expected}" + replayFromImports target + IO.println s!"CBZ_KERNEL_REPLAY_OK {raw}" + +-- Deliberately evaluated as a file, not `lean --run`: LeanChecker already +-- defines root `main`, whose prefix-expanding CLI must never be invoked here. +#eval cbzExactReplay diff --git a/cbz/contributions/math514/kernel_replay/GRADER_IDENTITY_FIX.md b/cbz/contributions/math514/kernel_replay/GRADER_IDENTITY_FIX.md new file mode 100644 index 000000000..434aee6ba --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/GRADER_IDENTITY_FIX.md @@ -0,0 +1,65 @@ +# Binding selected test bodies + +The runner freezes the actual class, ordinary function and code objects for each +selected test before execution. It derives module coverage from the actual module +dictionary, rather than user-provided directory listings. It checks those identities +before fixtures, at test starts, at body entry and at body completion. A changed +identity remains non-green even if a later fixture restores it. + +The supported population is standard unittest declarations with ordinary TestCase +construction and attribute dispatch, ordinary synchronous functions or bound methods, +and exactly None returns. Module `load_tests` hooks and callable suite factories are +refused before invocation. Custom constructors, allocation, metaclasses, attribute +dispatch and test-method descriptors are refused before instance construction. +Only exact builtin staticmethod/classmethod descriptors are admitted; subclasses +can override lookup and are refused. Special-member inspection uses static lookup. +Named selectors traverse ordinary module dictionaries and static class declarations; +proxy/descriptor factories are refused before lookup. Ordinary module, class and +individual-method selectors remain supported. + +Loading trusted Python modules still executes their imports. This is a bounded +trusted-runner/source-custody contract, not a sandbox for arbitrary Python, a proof +of assertion semantics, or authentication of fabricated consistent JSON. + +The actual RED controls preserve omitted second-body assertions: module hooks alias +methods or replace a class under the same name, constructors alias bodies before +snapshots, module __dir__ hides a class, and named/static-descriptor lookup replaces +a body before admission. Independent review discovered and retained the latter +boundaries before final admission. No test was removed. One existing layer-a test +now asserts the stricter complete two-declaration population and hook refusal, +rather than expecting an executed hook's selected subset. + +Seven new test methods per tool cover these cases and preserve ordinary positives, +body assertions, exact named selection, existing lifecycle/subtest/error controls +and the synchronous None-return profile. The kernel has 27 affected harness methods +per mode; the auditor has 19. These are composed, scoped receipts with targeted +refreshes after an actual predicate or test change. They are not new full-suite, +Lean, project, scanner-mutation or production-replay campaigns. Applicable prior +mathematical and ordinary-body evidence remains reusable. + +The new runner safeguards have 14 distinct themes per tool in each mode, across +four source generations: 8 initial themes, 2 construction/discovery themes, 1 named +selector theme and 3 exact-descriptor/static-inspection themes. Their 56 assertion- +kill observations are separate from production scanner/replay mutation cases; +reused earlier observations remain source-bound and their applicability is explicit. +Original REDs, AMEND reviews, intermediate passes and final controls are retained +under `evidence/grader-identity-fix/`. See `CURRENT_COMPOSED_ADMISSION.json`, +`OPTIMIZATION_PROVENANCE.json` and the review records there. + +For a future genuinely affected scope, from the complete tool directory: + +```sh +# Kernel tool +python3 -B -S run_tests.py --test test_mutation_harness.IdentityHarnessTests --output /absolute/new-evidence/identity.json +PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.IdentityHarnessTests --output /absolute/new-evidence/identity-optimized.json +# Layer-a tool +python3 -B -S mutation_test.py --internal-test-runner --test-root tests --test test_mutation_runner.IdentityHarnessRules --output /absolute/new-evidence/identity.json +PYTHONOPTIMIZE=1 python3 -B -S -O mutation_test.py --internal-test-runner --test-root tests --test test_mutation_runner.IdentityHarnessRules --output /absolute/new-evidence/identity-optimized.json +``` + +Use only the applicable pair for its tool, and use fresh output paths. Do not rerun +completed checks merely because of a clone, handoff or review. Historical development +controllers are retained provenance with frozen-source inputs, not automatic commands +against a later source version. Canonical registration and final federation coverage +remain the integrator's responsibility. No G1 repository audit, G2/G3/G4/full CBZ +claim follows from this repair. diff --git a/cbz/contributions/math514/kernel_replay/LAZY_BODY_FIX.md b/cbz/contributions/math514/kernel_replay/LAZY_BODY_FIX.md new file mode 100644 index 000000000..d3f597035 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/LAZY_BODY_FIX.md @@ -0,0 +1,9 @@ +# Synchronous None-return mutation grading + +Mutation grading supports ordinary synchronous unittest methods that return None. Generator, coroutine, async-generator and wraps-linked suspended method shapes are refused during pristine population discovery. Every non-None body return is ERROR, including falsey values and opaque iterables. Returned work is not consumed or awaited; only a fresh native coroutine may be closed without entering its body. Creating a suspended call object is not evidence that its deferred test body executed. + +The published predecessor at 7b50d2b4c433a8f3b5442925e1ac9ff664880166 awarded KILLED to a mixed generator method plus ordinary assertion while the generator-body sentinel was absent. The actual RED is retained in evidence/lazy-body/evidence/kernel-mixed-generator-red.json. Six new methods pass normally and optimized; the final return-guard mutant is assertion-killed in each mode. Earlier shape/decorator controls remain applicable and earlier type-only return acceptance is explicitly superseded. + +The current 60 methods are 31 wrapper + 9 real-Lean + 14 prior lifecycle + 6 new profile methods. Static direct-method AST inspection of the 54 predecessor methods establishes the synchronous/None-return applicability of completed evidence, excluding nested helper functions from their enclosing method shape. Prior 25 production mutations and mathematics are retained, not replayed. No new full G0, Lean/project run or hosted successor-head CI claim is made. + +The classifier and production driver are unchanged; only run_tests.py and tests/test_mutation_harness.py change. No additional runtime module or dependency was added. Full isolated report, frozen hashes, minimal/cumulative patches, RED/GREEN/source-mutant receipts and independent review are under evidence/lazy-body/. evidence/lazy-body/current-composed-receipt.json provides the exact split. Registry/ledger changes are contribution payloads for the canonical owner. diff --git a/cbz/contributions/math514/kernel_replay/LIFECYCLE_FIX.md b/cbz/contributions/math514/kernel_replay/LIFECYCLE_FIX.md new file mode 100644 index 000000000..013e40f04 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/LIFECYCLE_FIX.md @@ -0,0 +1,20 @@ +# Lifecycle-safe mutation grading + +The grader now requires an independently discovered exact selected parent-method population, one authorized body entry and exit per selected method, and exact direct or body-subtest assertion events. Setup, teardown, cleanup, class-fixture failures, missing/duplicate identities, unsupported or incomplete populations, skips, errors, expected failures, inconsistent/noninteger counts and foreign subtest parents remain non-green. Direct assertion callbacks require the exact exception escaping the selected method. Valid body subtests remain supported. + +Runner receipts are custody-bound execution evidence. The schema checks accounting and is not cryptographic authentication of adversarially fabricated consistent JSON. Source/runner/test custody remains necessary. Legacy summary-only JSON is refused; historical receipts are not retroactively assigned new metadata. + +Only `run_tests.py`, `mutations.py` and `tests/test_mutation_harness.py` changed. Production replay, the Lean driver, the31 wrapper and9 real-Lean methods, and all25 production mutation definitions are unchanged. Fourteen current harness methods replace the old single summary-only method; its source is preserved in `evidence/lifecycle/baseline/`. Current54-method evidence is a composition:14 fresh affected harness methods,31 unchanged wrapper methods and9 unchanged real-Lean methods. There was no new full54-method run or Lean/project proof replay. + +Fresh normal evidence is12 methods plus a separate population-listing method plus a later foreign-parent method; optimized evidence is13 plus the foreign-parent method, with child optimization inherited. Ten distinct grader safeguard source mutations were killed across13 warranted executions:8 initial,4 after dispatch/lifecycle changes (3 refreshed/1 new), and1 foreign-parent case. Five unchanged classifier controls were reused. These are separate from the retained19 resource-wrapper and6 earlier driver/import-trust mutation cases. See `evidence/lifecycle/evidence/kernel-delivery.json`, `evidence/lifecycle/evidence/independent-lifecycle-review.json` and the source-control receipts for exact versions/counts. + +Run only affected checks when changed source or a new obligation warrants them. From the complete tool directory, use a fresh external output path: + +```bash +python3 -B -S run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness-normal.json +PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness-optimized.json +``` + +`run_tests.py --list --test SELECTOR --output NEW.json` discovers canonical identities without running fixtures or bodies; import/loading still occurs. Existing full-suite and production mutation commands in README remain available for genuinely affected scope. Saved controllers under `evidence/lifecycle/` are version-bound execution provenance, not automatic commands against a future source revision; their original default outputs must not overwrite preserved receipts. Registered active runners and portable commands are in REGISTRY.json. + +The independent same-provider engineering review is clear against final source hashes. It supplies no provider-distinct scientific-review credit and no federation G0-G11/CBZ claim. G2, complete inventory/build provenance and final canonical admission remain separate. diff --git a/cbz/contributions/math514/kernel_replay/PUBLICATION.json b/cbz/contributions/math514/kernel_replay/PUBLICATION.json new file mode 100644 index 000000000..f71b92002 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/PUBLICATION.json @@ -0,0 +1,2696 @@ +{ + "schema_version": 2, + "destination_root": "cbz/contributions/math514/kernel_replay", + "published_parent": "15b534674ef9caf78b2ac42c8bebaa8f7faeb238", + "current_composed_admission": "evidence/final-review-identity/current-composed-admission.json", + "predecessor_publication": "evidence/pre-review-identity-metadata/PUBLICATION.json", + "files": [ + { + "source": "ExactReplay.lean", + "destination": "cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "bytes": 1537, + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "source": "GRADER_IDENTITY_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/GRADER_IDENTITY_FIX.md", + "bytes": 4396, + "sha256": "4e39a4c39b1d52f370a6f9826ba10c9914334de745541c9ca39695fa02b40123" + }, + { + "source": "LAZY_BODY_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/LAZY_BODY_FIX.md", + "bytes": 1970, + "sha256": "bfc30f9bca470fb5146d900759cceb3bfc6e5715442f91876adeb3cbf318c53e" + }, + { + "source": "LIFECYCLE_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/LIFECYCLE_FIX.md", + "bytes": 3436, + "sha256": "0919a78f08ae788c89d7d884a789c211b45657db2530e5d1e27470572fa00cc6" + }, + { + "source": "README.md", + "destination": "cbz/contributions/math514/kernel_replay/README.md", + "bytes": 13674, + "sha256": "6ed3fd9e32c50da0268444dbd1e52f5d9d81dc0b35cf5480d8f20b90970fefd1" + }, + { + "source": "REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/REGISTRY.json", + "bytes": 16990, + "sha256": "c5467b5d2110e74cf9591c04b03e3d48fe29ff2673bde947b52b81812c5d9656" + }, + { + "source": "RESOURCE_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/RESOURCE_FIX.md", + "bytes": 3883, + "sha256": "2dac2e6cb467589700e8fa479d7592f2309052f2b09ab4837a839ae27498f2c9" + }, + { + "source": "SPEC.md", + "destination": "cbz/contributions/math514/kernel_replay/SPEC.md", + "bytes": 9239, + "sha256": "92c1bedad20806ed8d964533576df70f5874146ae0d3c160db9d63408ec32349" + }, + { + "source": "STATUS_CORRECTION.md", + "destination": "cbz/contributions/math514/kernel_replay/STATUS_CORRECTION.md", + "bytes": 1462, + "sha256": "2e0f67f85a77e7e00f5a2ef7f7626118fa6682dc3dca76b1470707b92b395608" + }, + { + "source": "evidence/final-review-identity/SOURCE_COMPOSITION.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/final-review-identity/SOURCE_COMPOSITION.json", + "bytes": 2073, + "sha256": "4ae680e692f96730089a369457462066269a0386b50a595936813e39fbdad675" + }, + { + "source": "evidence/final-review-identity/current-composed-admission.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/final-review-identity/current-composed-admission.json", + "bytes": 3243, + "sha256": "5161ee5967a99038004caf114a3c158f86d0d3af9e46a9ca4427cf03a65094fa" + }, + { + "source": "evidence/fixture-g2-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/fixture-g2-rejection.json", + "bytes": 1795, + "sha256": "c727db806e98e7b6d053236ed54f20742862152f0e7f98a6262d68dec9457f83" + }, + { + "source": "evidence/g0-additional-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-additional-tests.json", + "bytes": 491, + "sha256": "d59244deb8d1b5d254c8196524fef7ae8f194b3719679e1f6ec2b96cfffba5aa" + }, + { + "source": "evidence/g0-applicable-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-applicable-tests.json", + "bytes": 1121, + "sha256": "78174abccb5d594df9001e0d28bedfd84575babe02d1bd91068bb6f24d1388a0" + }, + { + "source": "evidence/g0-initial-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-initial-mutations.json", + "bytes": 102138, + "sha256": "55dba09b0635241f44868995ef264e5d270d70ff610d9119303dc60ff56607c6" + }, + { + "source": "evidence/g0-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-mutations.json", + "bytes": 132722, + "sha256": "8deed12fc5a02ea8e61d4b3ac9d9fdd849ff0620d19b565f54f6919aa0819fd8" + }, + { + "source": "evidence/g0-resource-additional-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-additional-tests.json", + "bytes": 528, + "sha256": "0c0fa3d84abd760a197038e1ee90d00b23bd30d6574c964ea89fc3304e429865" + }, + { + "source": "evidence/g0-resource-applicable.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-applicable.json", + "bytes": 11993, + "sha256": "0b853bc0eb0ff2ac374a9a4782cfb8d3a7207e253180b7bd6aa911aefa171058" + }, + { + "source": "evidence/g0-resource-cleanup-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-cleanup-red.json", + "bytes": 14595, + "sha256": "616571de0d9377372fd48ce4c0e425cb69b38f164bf44df5b5f814d7f6576de6" + }, + { + "source": "evidence/g0-resource-memory-mutant-refresh.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json", + "bytes": 9714, + "sha256": "5addeb6e0c8d6f5f6afb1d9c42c623c6165adaaa29ab8fb3af2b42f18f5e5fc4" + }, + { + "source": "evidence/g0-resource-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-mutations.json", + "bytes": 177869, + "sha256": "d44239be7406c41c7fa26d0db419081e3d572a54b61b493c847945ba93e06445" + }, + { + "source": "evidence/g0-resource-preexec-test.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-preexec-test.json", + "bytes": 411, + "sha256": "ce04faf4ee8b2e3c8967d30dd4c341c013370641dc79b0644c53cb5e01825561" + }, + { + "source": "evidence/g0-resource-red-initial.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-red-initial.json", + "bytes": 23430, + "sha256": "13575852577af2a53dd232d190a58a520ecea9922caa53df6c83277d5dede6e7" + }, + { + "source": "evidence/g0-resource-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-red.json", + "bytes": 28193, + "sha256": "0a5efe4eddf98a21b11781edee16e4b5ea8533da1dabb3994c2559169a74fb56" + }, + { + "source": "evidence/g0-resource-wrapper-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-wrapper-tests.json", + "bytes": 3917, + "sha256": "97279cbc6f7b36950ae1f80a71f6e45b974fa938f91f36c7861a08d4d2495c5d" + }, + { + "source": "evidence/g0-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-tests.json", + "bytes": 3159, + "sha256": "0b3e0becb53748658be33635a7747a4e412bfdc56110161e8065f5329f97bfe7" + }, + { + "source": "evidence/grader-identity-fix/ALIASES.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/ALIASES.json", + "bytes": 95650, + "sha256": "3de4d65283761fec2595daeec17476339b52f943160bc852a4a7711d99893e5d" + }, + { + "source": "evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json", + "bytes": 2804, + "sha256": "1148a7eb63fd58a0f3ae4607d8776a2d5b7a47952020824c1dc6d88adab3ed70" + }, + { + "source": "evidence/grader-identity-fix/GUARD_EVIDENCE.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/GUARD_EVIDENCE.json", + "bytes": 36723, + "sha256": "8cb630de725662979702ef917edd840bbba5c6b4827f9c95226891ed8825e6a9" + }, + { + "source": "evidence/grader-identity-fix/historical-source/construction/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/run_tests.py", + "bytes": 19972, + "sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3" + }, + { + "source": "evidence/grader-identity-fix/historical-source/construction/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/tests/test_mutation_harness.py", + "bytes": 29255, + "sha256": "8d42a69f5b9a73705837111d59bbbe56c5f41ee84362ff1b006ea38226a37690" + }, + { + "source": "evidence/grader-identity-fix/historical-source/exact-descriptor/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/run_tests.py", + "bytes": 20838, + "sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb" + }, + { + "source": "evidence/grader-identity-fix/historical-source/exact-descriptor/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/tests/test_mutation_harness.py", + "bytes": 31704, + "sha256": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022" + }, + { + "source": "evidence/grader-identity-fix/historical-source/initial/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/run_tests.py", + "bytes": 17396, + "sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5" + }, + { + "source": "evidence/grader-identity-fix/historical-source/initial/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/tests/test_mutation_harness.py", + "bytes": 26914, + "sha256": "da9bb463c0675be7729067c8a46e55b5171293c15be598c5e891051818c49850" + }, + { + "source": "evidence/grader-identity-fix/historical-source/selector/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/run_tests.py", + "bytes": 20814, + "sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739" + }, + { + "source": "evidence/grader-identity-fix/historical-source/selector/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/tests/test_mutation_harness.py", + "bytes": 30218, + "sha256": "99d0bc18609f4966e7e8a12f4731cb13fb45a23d4689467da2c3fd564ef74030" + }, + { + "source": "evidence/grader-identity-fix/initial-preflight/EXISTING_APPLICABILITY.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/EXISTING_APPLICABILITY.json", + "bytes": 1534, + "sha256": "cf408ac54c9a94a7eb8a85a247711cb8482bb9a572cab53b2b0d0c13f6202b52" + }, + { + "source": "evidence/grader-identity-fix/initial-preflight/REPORT.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/REPORT.md", + "bytes": 2636, + "sha256": "b234d22b7ffc2279e073237a372270d7011afd5e74a5984483f1ea1ed5287054" + }, + { + "source": "evidence/grader-identity-fix/initial-preflight/RESULTS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/RESULTS.json", + "bytes": 14791, + "sha256": "a80dba831d717c0faae34cb6e872ef2dd1aa2b613686ce323e3846fc59c6b3af" + }, + { + "source": "evidence/grader-identity-fix/initial-preflight/SOURCE_BINDINGS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/SOURCE_BINDINGS.json", + "bytes": 421, + "sha256": "541a7ea8c8e87e53de347958a1e230df4d0697418b9e312b2cf1e82b6dc1a91e" + }, + { + "source": "evidence/grader-identity-fix/initial-preflight/preflight.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/preflight.py", + "bytes": 5605, + "sha256": "74aeaa2c2088dab64196dc91de3ba8e261235292675febf75d62c449f4a6bc5a" + }, + { + "source": "evidence/grader-identity-fix/raw/affected-normal-dev2.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.json", + "bytes": 32391, + "sha256": "ef08c5c93359f1337011243c26307dbd975ac6a996a73a25f6cac9d7afaf7096" + }, + { + "source": "evidence/grader-identity-fix/raw/affected-normal-dev2.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.log", + "bytes": 4394, + "sha256": "725a77d841094a7da932aa8e8b78cea49fe89192aa6448ac8de2f45d7b1a6bab" + }, + { + "source": "evidence/grader-identity-fix/raw/affected-optimized.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.json", + "bytes": 32391, + "sha256": "ef08c5c93359f1337011243c26307dbd975ac6a996a73a25f6cac9d7afaf7096" + }, + { + "source": "evidence/grader-identity-fix/raw/affected-optimized.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.log", + "bytes": 4394, + "sha256": "725a77d841094a7da932aa8e8b78cea49fe89192aa6448ac8de2f45d7b1a6bab" + }, + { + "source": "evidence/grader-identity-fix/raw/construction-discovery-normal.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.json", + "bytes": 6044, + "sha256": "5ae42b9455043a1ff4032ff876d5e26b732a7416f23a5098108d5908b1a019d4" + }, + { + "source": "evidence/grader-identity-fix/raw/construction-discovery-normal.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.log", + "bytes": 393, + "sha256": "d3e52344324e3f53688d70f09127a1e5e08d5b303daff3b1e7a0a2ea09b55e8c" + }, + { + "source": "evidence/grader-identity-fix/raw/construction-discovery-optimized.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.json", + "bytes": 6044, + "sha256": "5ae42b9455043a1ff4032ff876d5e26b732a7416f23a5098108d5908b1a019d4" + }, + { + "source": "evidence/grader-identity-fix/raw/construction-discovery-optimized.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.log", + "bytes": 393, + "sha256": "d3e52344324e3f53688d70f09127a1e5e08d5b303daff3b1e7a0a2ea09b55e8c" + }, + { + "source": "evidence/grader-identity-fix/raw/exact-descriptor-normal.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.json", + "bytes": 6619, + "sha256": "670b9c7966deb56347a6313f175055a3467eea95a5ee36bc36c7c729d104aa19" + }, + { + "source": "evidence/grader-identity-fix/raw/exact-descriptor-normal.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "evidence/grader-identity-fix/raw/exact-descriptor-optimized.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.json", + "bytes": 6619, + "sha256": "670b9c7966deb56347a6313f175055a3467eea95a5ee36bc36c7c729d104aa19" + }, + { + "source": "evidence/grader-identity-fix/raw/exact-descriptor-optimized.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "bytes": 3169, + "sha256": "baba96a43a9dcf624751479fc879661adfa617335a3ccdd98836a5a337e76b19" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stdout.log", + "bytes": 1652, + "sha256": "a4f61543cf899a8dfdff8aa239fc7d040323705951a89520afe425d9160048d5" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/receipt.json", + "bytes": 31884, + "sha256": "d8855927f2cf22b572cf6369dc0294b4b7eaf46dfcdc83a6b98630462cdffd12" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stdout.log", + "bytes": 23522, + "sha256": "4616dcaddf055a1ac9448ef53a2bf35a9cde861e5ee5edcc9cf108e48a909efb" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "bytes": 4031, + "sha256": "20b71d24fc69cc9ef47199f17441bff6c23451831954076a81d6ca810a665fbb" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stdout.log", + "bytes": 1648, + "sha256": "51227bb7ae6b35496b53be5ce03abd64feed48dd62f34e875d305d0d8e645d72" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "bytes": 8264, + "sha256": "257d42e9dfebc157d85648819e198e709c52bc5da95352778a1736df161e54f7" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stdout.log", + "bytes": 1537, + "sha256": "cdb58d50e19cd4c113d9471bcde70684cfad3a6e2e0f1cbd4c4b4820adb7113d" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "bytes": 3184, + "sha256": "c760c50c1fe4db6ea0c616580b4f8b3611e5f5a609f4046c163b8c3a93e9136c" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stdout.log", + "bytes": 1667, + "sha256": "8067689f8b357253818b932fdc296d97dd4f7378e149d817296aa26500d402ff" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "bytes": 15452, + "sha256": "dacc27276045f70447f6c4031cca240b1a1c091e8c3f0c17a879a1bb1689ee86" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stdout.log", + "bytes": 7807, + "sha256": "0e4ce00f228c0ddd70d1228469d0252b502ab1c02b5866ee2562449053f9fa55" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "bytes": 6797, + "sha256": "4c797eff30d6ec75211fe5dd9ac8724201d4eb1c323778208901774b295d74e1" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stdout.log", + "bytes": 4399, + "sha256": "2dc5e52a36522ba885f03b3fa2bbc4e0b249721e63b21def01f675631a618fb1" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "bytes": 13612, + "sha256": "82d9d9508e3cee208451ea30117a80859059acc544e0d45994cc607207fbf4e0" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stdout.log", + "bytes": 10208, + "sha256": "131cd115c6f7276371fcae16b569695615ebbc09acb44004f6d49da14791b57b" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/receipt.json", + "bytes": 3844, + "sha256": "6ba4cd787c000c83398716f4ab10780934bff389a904826e9785076d12e9a2b2" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stdout.log", + "bytes": 1767, + "sha256": "c06c22298a93324ef57ef5ec01306f4a95f0aee48c20c72f4b13501e82c1f0a6" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/receipt.json", + "bytes": 4393, + "sha256": "677b9414a3d5f79761dbe0c534bacae97a1a5560599fe0a95b24ce0aedf2203c" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stdout.log", + "bytes": 2305, + "sha256": "ba675913565db0ab300e877f4a68d86095e93bbb4ae4a506f6c21cd5cc9cf05a" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "bytes": 4123, + "sha256": "9368effe87b7026ee56326ac2bfbb02fb3846dcfaa30c46c9edc8f9eea671af2" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stdout.log", + "bytes": 2040, + "sha256": "0fca7743d1528fd0caeff923e3bd66d212e8faed96cce674084858e21cbbe6e8" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "bytes": 12652, + "sha256": "13c88c8a2be257315a5d0eeefbb8203d2c785d96032f26ed9ace6a4910db6064" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stdout.log", + "bytes": 5314, + "sha256": "64943c1cf2287c26b9e46c838cf887a38e3a6164e3aa1b1ac7c9808c047b8133" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "bytes": 3039, + "sha256": "764e27b223102f80c2f4205274f8e8497e223b34ab22671eaf9672a0ab07107d" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stdout.log", + "bytes": 1611, + "sha256": "8083dbdad1524a319d74f7f962438a1b872022cbef57c055e89bf17bee07ef9c" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "bytes": 11020, + "sha256": "3b5c89b611116d109077f4dbc355f35f2474206e7857cac415c899573ff67577" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stdout.log", + "bytes": 8017, + "sha256": "ab0a256a565772334158862c880ed6eb2c4fd3e477a722ebe0e29c638f1aa27d" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "bytes": 3172, + "sha256": "b3bd6e635e5808da0275afa316d76bf82ffdbc99ab45d6e747c81c997a5e76a8" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stdout.log", + "bytes": 1655, + "sha256": "ffdcec1225452ec36f4367fd6689162604ac819b0eee542d103c57a2311dc38d" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/receipt.json", + "bytes": 31926, + "sha256": "c9af0aac109c15da40cf8e58ae91a5a47c5e5336f9c2054493e430358deaaac6" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stdout.log", + "bytes": 23564, + "sha256": "9b1f13367b01981b6621f5f56351c007334c2534c4a38659bb3ce7b3a9aacdd7" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "bytes": 4034, + "sha256": "e1507d5e1e11c51a55307947473b1ac35aee030db5173b1fd28ac7cb8071cebb" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stdout.log", + "bytes": 1651, + "sha256": "338d8057ceafe2330215e1c4728445a5b5e982145c1f92acdb9e9dcf5cf3a1f5" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "bytes": 8267, + "sha256": "5dcd1dd848214054f34d3abafdcc889a8affb171239590d593a60088fd4d6c82" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stdout.log", + "bytes": 1540, + "sha256": "32d182607d4798e7ee4fc6467af278446bf57ae5e2bcf83f0863b19d7f3a8aff" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "bytes": 3187, + "sha256": "e72f8a78da3843b94a8730da8dc38ff8b3446d305ea88892052a1003b54cf067" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stdout.log", + "bytes": 1670, + "sha256": "afa6b46d7d1ebf295a4462312b0bbef457e45df02b40f15ecfd2352026a206cf" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "bytes": 15464, + "sha256": "70863c355a543fbcae70db28d3dec3c880b5362d2c819ada85908770e1c974cd" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stdout.log", + "bytes": 7819, + "sha256": "fcadb6913cdb9ee6347633157df98faa8813196e5d07575e2c11420809af981d" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "bytes": 6803, + "sha256": "8302b411e1d3d74371df57720be55a7aece8ed96595255c37273de9d959bd42c" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stdout.log", + "bytes": 4405, + "sha256": "393ee57739b21a4ffce0476c5aeb842646e71e13a4e6cf52a03f102d1acc76f8" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "bytes": 13624, + "sha256": "d57ddd5fd4a058f008282ceaa3d13ca3ed9b78f27f40b39bcee2cd197876db0c" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stdout.log", + "bytes": 10220, + "sha256": "31d647dcc331324b7acab5600088c237444f119d562ea8bff537f68599b660e6" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "bytes": 3847, + "sha256": "934289850dce49d3106fc172b98ed35a901f506da3c46955bfc9e753e6f56bb2" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stdout.log", + "bytes": 1770, + "sha256": "6342af0480511f4d6201f5861a444a4b986778645b4cfbbe1de7e0b842b4ce04" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "bytes": 4396, + "sha256": "e009453bc240aa4830374a0fc35353162eb21da5523a3f0ca9df7cd882abee16" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stdout.log", + "bytes": 2308, + "sha256": "8ceac458094bf4a89b9d1169c25f2b54b7ed9038903a630ac9dfeaff256c6894" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "bytes": 4126, + "sha256": "51ddf2022fddca741c937eba1b54370efbac5aa0a39db82785f79c88dd3d61e6" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stdout.log", + "bytes": 2043, + "sha256": "a21ef10e371c89af08b3b0fac8d4e0ff4ea36fcea557a6a69fda210e2225a79d" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "bytes": 12661, + "sha256": "ad124dd4a4d92d75633edf8cec56843779d60e1537c5524d63be033fdf8f0f65" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stdout.log", + "bytes": 5323, + "sha256": "445cb37e5df70fa30d7313c8a66a51aab7c52705a0144a01175cd3e3decb4b48" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "bytes": 3042, + "sha256": "e4288ddf0d8d153e013de44a785fd07caf32556257f6eeefc85391c6ddf4c1e6" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stdout.log", + "bytes": 1614, + "sha256": "e23b918b83fa66490ea9c70fc0e08c0572ffbdbc4f88264f7f7399f02c7a2c83" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "bytes": 11032, + "sha256": "66eb45a3af0f0b21e3af533dbaebd31d66af938f4509d56b7752720a04ff3dca" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stdout.log", + "bytes": 8029, + "sha256": "610f634f0f4f2aa74dc7290e412f7b82c22373560c5a00aea593ee122231e47e" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-green-dev1.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.json", + "bytes": 5895, + "sha256": "a7f4a7af083366d69778bdda1558d0c9144fff1611714fd778b0de321820b996" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-green-dev1.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.log", + "bytes": 909, + "sha256": "66aa685c3c966e1b016237b1b66e146cc7c3df5353081e3cba6888ae4ab3b51d" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/callable-factory.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/callable-factory.json", + "bytes": 1542, + "sha256": "91debcd2664f361620f9022e2e463d6a665cbe33091f88b341b652b99cdc2f73" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-code.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-code.json", + "bytes": 1645, + "sha256": "d9294cf98a8b07e7ca50081cb32aab048a1e7a9abb63a9ec478dd3b1ffbbe64a" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-function.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-function.json", + "bytes": 1631, + "sha256": "453f01a2114c10fe51b7460ecdf47eacaa2bf23df15f32a2f9768e8bee29c982" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-same-code-function.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-same-code-function.json", + "bytes": 1712, + "sha256": "be2054a390ef5857ab9fef9ae168925c80ecbb041da55add042dcd70e9aef820" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-0-class.json", + "bytes": 1753, + "sha256": "73c8656e79ec014fb77b2a2d48b16ab7e1cba6f2c930b9ce68661eeda0c2a176" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-class.json", + "bytes": 1787, + "sha256": "f7166beb5d6aac19dcaaa66476a98807609e320732bd3268b3173a362a7658ae" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-method.json", + "bytes": 1818, + "sha256": "94317118cbfca4a225fef23de4ef8827e300bcfe042d4277ca0de77143fb5e93" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-0-class.json", + "bytes": 1747, + "sha256": "68f7f9462cc595e582866d22f52bfc439f1c5bf2ea47b6fd5f73103f865382f0" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-class.json", + "bytes": 1781, + "sha256": "7aa1e19105036025ea93db923b7b9ed1f4da5f2c6f40bc31b79b0cd1ebfd01b3" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-method.json", + "bytes": 1812, + "sha256": "c946a8a6bf8beddfcb2b9e1808ea8da9f4274331b34d177f0379d9771604680b" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-0-class.json", + "bytes": 1749, + "sha256": "4102438de4c60abf62956014b723836c2128eb8e5b54312c5ade3e6d0e3eded1" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-class.json", + "bytes": 1783, + "sha256": "1e5a75009e9d2dda959a9e903d089659c1294ff82d48300ba2e7e03a9d05c32f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-method.json", + "bytes": 1814, + "sha256": "affbd2c0f7eb603ffa117285a72d13e649a77badabe4b1f26380d609571c22ae" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-0-class.json", + "bytes": 1529, + "sha256": "39993c6aae75f86d5b6c00dae881369e26b08e43a01fb01d167d27e00cf1993f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-class.json", + "bytes": 1563, + "sha256": "02eb4c17f327e5740897098a4c2ab7e21f5f1da9acef1e12f3902aa698a62376" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-method.json", + "bytes": 1585, + "sha256": "eae825469fa4f40a1422b3ab88fa1cdfcdd7c39ea06babe8c8bfcbdb02928a35" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-0-class.json", + "bytes": 1641, + "sha256": "64c376d874f70baf9331b7fdbcee41d8d4517f6253ae0d23906f80076e5ebfea" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-class.json", + "bytes": 1675, + "sha256": "6fdd1b0154ef6ce371ad4314d26a3b18254c41e345bcfd62edec0176bd7d6f27" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-method.json", + "bytes": 1703, + "sha256": "23bafadbd3e37d68402f81e19495a3a8cc0aaf6795bc0b4df83ebea47633d4f5" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-0-class.json", + "bytes": 1547, + "sha256": "14ac0dd7fcef00b9420b62058101b9ad8828e07c34191aac712de157b2874564" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-class.json", + "bytes": 1581, + "sha256": "1351a4f8c882251f22d1142549235a3b9431634740055ac4179d5c2c5d5d67cb" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-method.json", + "bytes": 1603, + "sha256": "2875d5768f2b66896378151e5e6080e6ecefd8c5202a56cd7e16f83bb7223c36" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-0-class.json", + "bytes": 1504, + "sha256": "c164d8c62332a2b03d1150d1e5c50b00af4ba2632effee7e9cfc37e0d1cec188" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-class.json", + "bytes": 1538, + "sha256": "4970b765c673a1e7b1fb29b7f0de5077b69833c847fb2eff5bb79dff39d3495d" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-method.json", + "bytes": 1560, + "sha256": "1c8d04426bec5220990affef00833910f3b117c4568a050da0b02b03e57b8948" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-0-class.json", + "bytes": 1526, + "sha256": "af9b03e6d97789bfecb3675b1b692cc5031a2f6083d262a1e4237a2fb7d1b034" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-class.json", + "bytes": 1560, + "sha256": "23566edd4bf88b6d8012de8788ad4ada66a56ec962323dc7a6bdef990c97bfbc" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-method.json", + "bytes": 1582, + "sha256": "e459d5fc86e5afbf7c72bd71335b79a404e07ea6c19c9d41ed5774f61d106cee" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-0-class.json", + "bytes": 1649, + "sha256": "7839167671f80747938ff9e173c9cb58d335982824c124a5aa0e9d3f7d778908" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-class.json", + "bytes": 1683, + "sha256": "1d1d9b797743727ab3735ab0bae4551b342d74393b7f4e4a4a4e4ccec2928dca" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-method.json", + "bytes": 1705, + "sha256": "63e777b4dfcf3d12f9a3c79b4aec0a161c66ef72d26f55bdf245600b7b16dbfa" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/custom-run.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/custom-run.json", + "bytes": 1499, + "sha256": "f38a2765abb6786b16868a6a86b63e7495fa271b209745897eaa90f14145c3b4" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/during-body-change.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/during-body-change.json", + "bytes": 3780, + "sha256": "0b889ebbce71f9941a5525fcc6a4f3805bca47e9c63dee218fc61bdb3b1ad043" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias-assertion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias-assertion.json", + "bytes": 1680, + "sha256": "77729f49b6dd4341a78c212a143f10b5d638dc72f2433e58f6092d78da37c882" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias.json", + "bytes": 1628, + "sha256": "0782f9aa240ce05d4a320265bb92c6baeee5a7311f0f7aecb9127c989c9cc9fa" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-omission.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-omission.json", + "bytes": 1636, + "sha256": "edaa32e199625a93f6f4c12c20a3fd553647c6a7d45e71bb44f5969acceb7c89" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-subclass.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-subclass.json", + "bytes": 1823, + "sha256": "d48fdf13b18fd711af63cdf1ecde9ff343b4a5babb21450b17f3db6fde849b64" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/instance-class-change.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/instance-class-change.json", + "bytes": 3613, + "sha256": "73a2e1402d3d8b46d336bab7f517d9ddfbc441051330918b0a18d6aadcd96da8" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/module-dir-cannot-hide.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/module-dir-cannot-hide.json", + "bytes": 3232, + "sha256": "cc9257d615b362fa1cbc44cb29631b07ecad2613e0955e08e5a91d17b9fb638a" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/named-assertion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-assertion.json", + "bytes": 2975, + "sha256": "4cad2e5423c6a28d7e57e247a25c643a6329c857fcc390e5fd420170f21c6bd6" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/named-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-class.json", + "bytes": 1990, + "sha256": "b1053be28226fe9a78c094ddf6389dcb6c7aa545c4bf8223e6c05b5483733a1f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/named-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-method.json", + "bytes": 1726, + "sha256": "6328579404eca91332a93d47c34e3901fb73d3068f62659bc9098279b97fb5f0" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-helper-descriptor.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-helper-descriptor.json", + "bytes": 1729, + "sha256": "ddeb1876b7b336f3d7c79273977bee9e30cd8f685773f15ae5d30a95a2df61fc" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-proxy.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-proxy.json", + "bytes": 1574, + "sha256": "c21fc843050fb58e378a8155de389881cac01ee878e28475458ddcc6dcda9e9f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/callable-factory.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/callable-factory.json", + "bytes": 1542, + "sha256": "aed3599ecf74fc44f3839d6d6fbbe3e5542ee6ddb78735b26a017c286018d9ee" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-code.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-code.json", + "bytes": 1645, + "sha256": "61f52349025228949b3fe71eb424b291e73fb81db710e6eda2a0d75b8f00659f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-function.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-function.json", + "bytes": 1631, + "sha256": "f26530c660c9f74c804cff821a5d4950c647fc339c1035b3784f145183bbd994" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-same-code-function.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-same-code-function.json", + "bytes": 1712, + "sha256": "54bb22a8ba6355d66ede52b922ef85606415d50c7b67bb774bae4b29c1119156" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-0-class.json", + "bytes": 1753, + "sha256": "230c93351318e0c3c7965bb992346c5e23cf5f537230030cb20fc20842952237" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-class.json", + "bytes": 1787, + "sha256": "378005e081fbc32e0886bf35589f9492c58a488acf3370cf299f5aa56972e13b" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-method.json", + "bytes": 1818, + "sha256": "1551400948c0ee107ad57bce53730f37a1969565295e2b3dc138016a5e0db04f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-0-class.json", + "bytes": 1747, + "sha256": "754013fb1bfeca8ef34491c0bbdaa7be43554d8bdf4cb8b5323201130ed2de48" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-class.json", + "bytes": 1781, + "sha256": "efffc43fcd250a9f31db4939d9f06e7dfed8d876c08add7908336fa812b270a2" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-method.json", + "bytes": 1812, + "sha256": "17402b540206b03e9d1b5e096d210a3377986a26520a53b04a40008536f28eab" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-0-class.json", + "bytes": 1749, + "sha256": "638ac93349adb742032f8f32ab81ad9215cda5f91aabe0937fe43fedb960bf57" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-class.json", + "bytes": 1783, + "sha256": "1a99ee3f830630ba49a4bbd94a1b4bddf11c4744bf64fcede759be6bbe3a2e2a" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-method.json", + "bytes": 1814, + "sha256": "de7bc982290b87e6d69f62bf4e5ada9fca70ce48e7a4a91bed6e49ce9145ca3c" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-0-class.json", + "bytes": 1529, + "sha256": "f1ee9fbc942ae21bd82aa3162419c1c7a6aa17e5c12d2021667279fe93948a1f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-class.json", + "bytes": 1563, + "sha256": "137f388511370628e546f119c649b7c8472c19edb280532b475f37529bd08a16" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-method.json", + "bytes": 1585, + "sha256": "b91c6867cfa36a059dd3f0ccb02181393301a2d6597e4c40cf66ad7295b25617" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-0-class.json", + "bytes": 1641, + "sha256": "9c1273e18caf9cbd490c23f417e60a7139dc6378ab091549979f5a46466ba380" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-class.json", + "bytes": 1675, + "sha256": "259d4d27bb8ee9d09178aa09e4cb803f757790aaca9880aa7fe7c5ca92768a47" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-method.json", + "bytes": 1703, + "sha256": "c24059a00a6fccd1e65d3f8a48d63ce0bdc1d8009ad40402ff4c6a7fca0e516b" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-0-class.json", + "bytes": 1547, + "sha256": "27589595653ac7ec6b767562e7c5f69731e6626deb620b11ff20346cfe54edf5" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-class.json", + "bytes": 1581, + "sha256": "4801aed97adb091e66db3494358e451aff98a16d9d23ef88a509bbbf4569be08" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-method.json", + "bytes": 1603, + "sha256": "6d30781fe4e919a09c89f7221aaa179e198e7b2d2c7800b3a0d7c5a353fb50da" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-0-class.json", + "bytes": 1504, + "sha256": "7868e623cbe07e5f1196b90a4a838bb8dbce7f6bf472cd8fd6c9d5613c6773d2" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-class.json", + "bytes": 1538, + "sha256": "325066764c5a8f4618d5e28f203c9cfd5313316f67be3f53ca5ea975cba9c446" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-method.json", + "bytes": 1560, + "sha256": "87a37505ff2a2e73645b24c95a531e7bccca48efc0b5c79cbe334b7107f64d10" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-0-class.json", + "bytes": 1526, + "sha256": "e07a0961959dbddf31f01ee002a8a5ec25a5f641594d2a28b8ffc8ce26a34ddc" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-class.json", + "bytes": 1560, + "sha256": "8aadea2b72c41d38e36572e81b4dca4d76c9cef0c4825ad82372d027724b589e" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-method.json", + "bytes": 1582, + "sha256": "a48194648ffc45aa479ba5b748e7d5ba2a6757bf6bbb0de24085c43f2ad9aad7" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-0-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-0-class.json", + "bytes": 1649, + "sha256": "25c65e90742ec22c8a0c24862b8db2cb3b4e5cf9d69a402d0de9e6f06aa68513" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-class.json", + "bytes": 1683, + "sha256": "160b975d57a68c73e9c062ecef67d92364d22baddf0a3134bcddc93f64d9ad4d" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-method.json", + "bytes": 1705, + "sha256": "1f882e75c745b7163043a0e717d10d1d541ded742002bf8af1929efc0a2cb486" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/custom-run.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/custom-run.json", + "bytes": 1499, + "sha256": "00f17e697805bd1b197a24d8dea698393c7a1e55cae7412b43dd67c67a2ee881" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/during-body-change.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/during-body-change.json", + "bytes": 3780, + "sha256": "e91d02378e503693931686531b548f36e4a0c8e555a40a16b7441c90e45ef362" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias-assertion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias-assertion.json", + "bytes": 1680, + "sha256": "aa5005ad341e991eb4c03268a9a59e496f7f00df07addf4a3277ab671809783f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias.json", + "bytes": 1628, + "sha256": "d38f5bbf84e8e8e0b98c87dbe7fb898b24ebfada3564e6c3782fe015d5f7a143" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-omission.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-omission.json", + "bytes": 1636, + "sha256": "2dde5c7d2b2f33f229af01946ac2a0a150c0b6339e3b98991f22e36f0054db52" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-subclass.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-subclass.json", + "bytes": 1823, + "sha256": "bc1b1bbe70e15bce95b5526658a1431fa30b9ca7847a4b9964d8d3e8cb499a44" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/instance-class-change.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/instance-class-change.json", + "bytes": 3613, + "sha256": "17a7e94d64f3eea5afddff1c8e17a4c27d2a1dac10e865659c6c66c151012dcd" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/module-dir-cannot-hide.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/module-dir-cannot-hide.json", + "bytes": 3232, + "sha256": "cae323d921b6f8994fd786a2563c3d067db6bb030fca19a6c64a5adb21d5d872" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-assertion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-assertion.json", + "bytes": 2975, + "sha256": "1c4fe671c7183bee2358c762b320a539569e137f9c48f00125c786d97fa41c3f" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-class.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-class.json", + "bytes": 1990, + "sha256": "6d18209298cb82e0b2fe64ee48b5588eb477d5de1b2ec1bdc0d0d5bf8e61bf40" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-method.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-method.json", + "bytes": 1726, + "sha256": "33426693360657f61e56327a84466a9045907109363c8e3feee2974a2e2a240d" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-helper-descriptor.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-helper-descriptor.json", + "bytes": 1729, + "sha256": "c1122f96870193882d3d8a43d99f03860854eb1c63f24f413a1feb34553b02e3" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-proxy.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-proxy.json", + "bytes": 1574, + "sha256": "e7622657654155c029fa22271844d8e4e7c924d0b439a3a416e3132b34f73dff" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-red.json", + "bytes": 23431, + "sha256": "56f6e703271d79b9f7ae13f4c8ea65b9b56ab17745aef693e2b0ea538a1cdbc7" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-refresh-normal.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.json", + "bytes": 2749, + "sha256": "3ba00e79be0fbee01f828085670ba7db19d1b6c737ad9e3cfd2f41690c921a7e" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-refresh-normal.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.log", + "bytes": 351, + "sha256": "c7569a570c82a0732f731bf4897ee6ce999cfb0dc3d7bde9ecb4c79a2f319535" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-refresh-optimized.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.json", + "bytes": 2749, + "sha256": "3ba00e79be0fbee01f828085670ba7db19d1b6c737ad9e3cfd2f41690c921a7e" + }, + { + "source": "evidence/grader-identity-fix/raw/identity-refresh-optimized.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.log", + "bytes": 351, + "sha256": "c7569a570c82a0732f731bf4897ee6ce999cfb0dc3d7bde9ecb4c79a2f319535" + }, + { + "source": "evidence/grader-identity-fix/raw/selector-descriptor-normal.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.json", + "bytes": 4882, + "sha256": "c6b965647f6aafe795bc53817b3f21f8fcc5854e252a2773298f2a0f51e23def" + }, + { + "source": "evidence/grader-identity-fix/raw/selector-descriptor-normal.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "evidence/grader-identity-fix/raw/selector-descriptor-optimized.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.json", + "bytes": 4882, + "sha256": "c6b965647f6aafe795bc53817b3f21f8fcc5854e252a2773298f2a0f51e23def" + }, + { + "source": "evidence/grader-identity-fix/raw/selector-descriptor-optimized.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "evidence/grader-identity-fix/review-probes/constructor-alias/RESULTS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/RESULTS.json", + "bytes": 2204, + "sha256": "ed28bd7aea01ffcb005e72c0519678c15b0a8f08b651b196deb30ea5bcf5bee7" + }, + { + "source": "evidence/grader-identity-fix/review-probes/constructor-alias/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/receipt.json", + "bytes": 1037, + "sha256": "241f8d5f7d0e4044a8c0fdaea64dc2301698d53c933e696f12294909134f732e" + }, + { + "source": "evidence/grader-identity-fix/review-probes/constructor-alias/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/run_tests.py", + "bytes": 17396, + "sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5" + }, + { + "source": "evidence/grader-identity-fix/review-probes/constructor-alias/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/review-probes/constructor-alias/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/stdout.log", + "bytes": 115, + "sha256": "91d15883dc781491f8a5d0c6b2cfc1c5e114a32f16bb10f2a27d915763b6fcca" + }, + { + "source": "evidence/grader-identity-fix/review-probes/constructor-alias/tests/test_constructor.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/tests/test_constructor.py", + "bytes": 488, + "sha256": "09e99756efd44899aa0cb96cc63ff2f7478735dbe8cab5b5c06bea03c3b2b862" + }, + { + "source": "evidence/grader-identity-fix/review-probes/constructor-alias/trace.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/trace.txt", + "bytes": 12, + "sha256": "f97a8f27a73b181cc6bf7fb6a09fb0c2203925d74ad8309144c33b5c0ea0a14f" + }, + { + "source": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/RESULTS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/RESULTS.json", + "bytes": 2316, + "sha256": "eef0a77e541b11d419aa52f3cb54bb8ad34e0cfc3949cada1ecaa83b4c6d3975" + }, + { + "source": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/receipt.json", + "bytes": 806, + "sha256": "7e68dfd3195a8b6a3ba1c5e28d1d5a78173d144699e36fd329b30601b551445b" + }, + { + "source": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/run_tests.py", + "bytes": 19972, + "sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3" + }, + { + "source": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/stdout.log", + "bytes": 64, + "sha256": "ff23c230ef51c48a5d731a1b4da9a9e4f70994c71af41ecbeec1ae77c2563a31" + }, + { + "source": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/tests/test_descriptor.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/tests/test_descriptor.py", + "bytes": 562, + "sha256": "c49611a85b9d6a0ac3bde70143bc66c3718cec1c267d659a8c42401cc307ccd0" + }, + { + "source": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/trace.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/trace.txt", + "bytes": 17, + "sha256": "5ec777d8cd0c97d9e738631bf3c0d513e644deef6a3453ce7f95fd4c7888f143" + }, + { + "source": "evidence/grader-identity-fix/review-probes/module-dir-omission/RESULTS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/RESULTS.json", + "bytes": 2111, + "sha256": "661e6b7046cdcd42ad40e8522caa9e187411eb2e3cf227cbf9e3eeed840c1a32" + }, + { + "source": "evidence/grader-identity-fix/review-probes/module-dir-omission/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/receipt.json", + "bytes": 824, + "sha256": "ac1bc6b53c5a1b3c4fecb21e288796d6ebc0f86b7a737a2973a841db319364e4" + }, + { + "source": "evidence/grader-identity-fix/review-probes/module-dir-omission/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/run_tests.py", + "bytes": 17396, + "sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5" + }, + { + "source": "evidence/grader-identity-fix/review-probes/module-dir-omission/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/review-probes/module-dir-omission/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/stdout.log", + "bytes": 68, + "sha256": "483c9a01f567ac49966f90770b4b2e3033ea57958690f787d598de096296413c" + }, + { + "source": "evidence/grader-identity-fix/review-probes/module-dir-omission/tests/test_module_dir.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/tests/test_module_dir.py", + "bytes": 442, + "sha256": "000f7e0f21e6895a40b759992937fa712b6de326b6d17c0522086135a9a6c533" + }, + { + "source": "evidence/grader-identity-fix/review-probes/module-dir-omission/trace.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/trace.txt", + "bytes": 6, + "sha256": "b640e840b19d378660b32fb51ae18d67dccb4a8596a29e7bd72c1b2ae5928f41" + }, + { + "source": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/RESULTS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/RESULTS.json", + "bytes": 2324, + "sha256": "6218fbfe350d4cd55cebff84cdcb90f5fcea2b1df96bca671e339ef574fdf0cf" + }, + { + "source": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/receipt.json", + "bytes": 1049, + "sha256": "415e176f7730a9efcfc3b955e020ec1aef4758b1ed250bd79339c906fcacc25e" + }, + { + "source": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/run_tests.py", + "bytes": 20814, + "sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739" + }, + { + "source": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stderr.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stdout.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stdout.log", + "bytes": 117, + "sha256": "d7bf22367949925953e7fd8378fbcc700a3c7cd2fe6f9d9ecb64988187afbac2" + }, + { + "source": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/tests/test_static_alias.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/tests/test_static_alias.py", + "bytes": 533, + "sha256": "db453ae68e561d99e25d2d5e2019b293dc33a4570cc7b9fe2e9665934e02b3c6" + }, + { + "source": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/trace.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/trace.txt", + "bytes": 23, + "sha256": "7704f2c598dc8f36e37fc0e6bd8d0193f2fda42a58dbb5a311727f44450e9560" + }, + { + "source": "evidence/grader-identity-fix/shared/BASELINE_BINDINGS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/BASELINE_BINDINGS.json", + "bytes": 1203, + "sha256": "b2e3b505f06b53dbf3cf78e20dfb44627e13cc49efa63267fce2d7bb1e02e3d4" + }, + { + "source": "evidence/grader-identity-fix/shared/EXACT_DESCRIPTOR_GUARD_MUTATIONS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/EXACT_DESCRIPTOR_GUARD_MUTATIONS.json", + "bytes": 16924, + "sha256": "4270aa8caacd7bf99220313011f0eaf6cfbf29d11e798f6fa9686d947c28125f" + }, + { + "source": "evidence/grader-identity-fix/shared/FINAL_EXACT_RUNTIME_BINDINGS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_EXACT_RUNTIME_BINDINGS.json", + "bytes": 430, + "sha256": "74cb3ca9cb33638dbe68c2aa1cd5327636e826030f94e5e0b3738a1277571a91" + }, + { + "source": "evidence/grader-identity-fix/shared/FINAL_RUNTIME_BINDINGS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_RUNTIME_BINDINGS.json", + "bytes": 430, + "sha256": "dc8dd1fc88e161541c175603c8c7170254764312d081cae56440750f5c299034" + }, + { + "source": "evidence/grader-identity-fix/shared/FOLLOWUP_GUARD_MUTATIONS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FOLLOWUP_GUARD_MUTATIONS.json", + "bytes": 11079, + "sha256": "98d94d858a285800aa80a8348661820c81152e6d0afdeae75a662e152704f43d" + }, + { + "source": "evidence/grader-identity-fix/shared/FROZEN_RUNTIME_BINDINGS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FROZEN_RUNTIME_BINDINGS.json", + "bytes": 430, + "sha256": "0f4187bb436e7efd8933309d372cfff083559742ac888f00072a5a0011f2de56" + }, + { + "source": "evidence/grader-identity-fix/shared/GUARD_MUTATIONS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/GUARD_MUTATIONS.json", + "bytes": 43482, + "sha256": "6b1aec98f57510cd79545105bf76f8a8ce7c13fd093e766f8c73e2c4c0c90e47" + }, + { + "source": "evidence/grader-identity-fix/shared/OPTIMIZATION_PROVENANCE.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/OPTIMIZATION_PROVENANCE.json", + "bytes": 2507, + "sha256": "dde86b3c91e03cfb11ae40eb3524ec00fe1cfa3fcafa33883315ce8b1bed782e" + }, + { + "source": "evidence/grader-identity-fix/shared/SELECTOR_GUARD_MUTATIONS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/SELECTOR_GUARD_MUTATIONS.json", + "bytes": 5834, + "sha256": "b6442e84be54f748ea79229c1ea37bb69d9de87331cd182835717710de0ab789" + }, + { + "source": "evidence/grader-identity-fix/shared/evidence-binding-review-final.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review-final.json", + "bytes": 11555, + "sha256": "926a0174ac97af1c17beb133e07c906cc51258df95da189a5666e30c1bf65c4d" + }, + { + "source": "evidence/grader-identity-fix/shared/evidence-binding-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review.json", + "bytes": 29197, + "sha256": "4ab1002a4e49a18f82017237036acfdde5571432c35013d1f98257478e289497" + }, + { + "source": "evidence/grader-identity-fix/shared/guard_mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations.py", + "bytes": 4336, + "sha256": "caefdde1a8e496c43cd15188e704d05ec94c91a64a6974b13e93f12f7d957d76" + }, + { + "source": "evidence/grader-identity-fix/shared/guard_mutations_exact_descriptors.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_exact_descriptors.py", + "bytes": 3698, + "sha256": "95bd1cd9ce9a46dd43cfc198ea3231a09ba3e5a148dd27a7eb5bfe1b0b7afd7f" + }, + { + "source": "evidence/grader-identity-fix/shared/guard_mutations_followup.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_followup.py", + "bytes": 4274, + "sha256": "333684e94c36693c189e70fc5395560b001375a1ebc0038d0b6b9c1809a4498b" + }, + { + "source": "evidence/grader-identity-fix/shared/guard_mutations_selector.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_selector.py", + "bytes": 4396, + "sha256": "b99161237ea5372440b6c2b21ce3d71e1b8e795bc3c366083a620608fc0527da" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review-final.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.json", + "bytes": 4100, + "sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review-final.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.md", + "bytes": 2030, + "sha256": "a3be1779e32b81a7f4c81fc292010a195278fa929069a70e50c4dbfd48d3f338" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review-followup.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.json", + "bytes": 2943, + "sha256": "f545ffe8142868a210c4cd9ecefaa2d032ff3cd86f81482248a589d5e88466ca" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review-followup.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.md", + "bytes": 1342, + "sha256": "d6378d62afa9e24e593336b12704555a57fc76443732a3bc6a7f2625a57a5717" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review-selector-boundary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.json", + "bytes": 2318, + "sha256": "f6154169afc683795686c8940851d39c2c32197c4813c2d9184e321d9ff604b6" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review-selector-boundary.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.md", + "bytes": 1006, + "sha256": "3a0cdb80184b51f4969b54af023981640805f87ff69a65f0eff85ab373a2f7f7" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.json", + "bytes": 3909, + "sha256": "d7f5d0d9482ef338969480474937d10578b1b35772f915d06ca3c4c1856a5e99" + }, + { + "source": "evidence/grader-identity-fix/shared/independent-review.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.md", + "bytes": 2215, + "sha256": "578b576a63c702f7b7aa8c1bf8065e239267c1f1ca7b38fb11f17d65ef5a6397" + }, + { + "source": "evidence/grader-identity-fix/shared/new_tests_template.py.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/new_tests_template.py.txt", + "bytes": 6366, + "sha256": "34092f278c57b85bf22ec8ea51fcd38eae6c507fe1f606a8541390bf13714277" + }, + { + "source": "evidence/grader-identity-fix/shared/source-partition-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/source-partition-review.json", + "bytes": 303, + "sha256": "478719b51147ee0d99677b432d6739244733e74f6f12ac484b0515cef2f8ac73" + }, + { + "source": "evidence/initial-import-shadow-failure.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-import-shadow-failure.json", + "bytes": 4973, + "sha256": "efed8408c8ecba2d81ec8496acb81d54f359c15a8171c91802f1264dbf4169f5" + }, + { + "source": "evidence/initial-low-address-limit-failures.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-low-address-limit-failures.json", + "bytes": 21801, + "sha256": "51a3fefd60b2e1602babcf89f281f90b60e20ac114f7dd041a31053757f37200" + }, + { + "source": "evidence/initial-real-symlink-replay.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-real-symlink-replay.json", + "bytes": 4898, + "sha256": "42bb613676de3564475648cccdc9c45438a2471601662242639c64320b9076f1" + }, + { + "source": "evidence/lazy-body/ARTIFACT_ORIGINS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/ARTIFACT_ORIGINS.json", + "bytes": 25131, + "sha256": "21497a7a9ca3ee7a0436acbd1388c87006afafe4c4e4305cc94e47ab0e0694c0" + }, + { + "source": "evidence/lazy-body/DOC_ADDITIONS.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/DOC_ADDITIONS.md", + "bytes": 1988, + "sha256": "849e7e531990352e431fc1d2878d6c27c8e0512899717e7805a210961de1be94" + }, + { + "source": "evidence/lazy-body/EVIDENCE_PATH_MAP.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/EVIDENCE_PATH_MAP.json", + "bytes": 6094, + "sha256": "41899274439c844df971b53c5e2362ab5478de97bce36db6489997b2ac55f805" + }, + { + "source": "evidence/lazy-body/REPORT.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/REPORT.md", + "bytes": 5226, + "sha256": "848e0712aa1905bd89034d8cc5cc57ebd4812864e8c3053193ad950f61778595" + }, + { + "source": "evidence/lazy-body/baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/mutations.py", + "bytes": 15771, + "sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd" + }, + { + "source": "evidence/lazy-body/baseline/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/run_tests.py", + "bytes": 9931, + "sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa" + }, + { + "source": "evidence/lazy-body/baseline/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/tests/test_mutation_harness.py", + "bytes": 11723, + "sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6" + }, + { + "source": "evidence/lazy-body/current-composed-receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/current-composed-receipt.json", + "bytes": 3507, + "sha256": "449ce944cd40757b5a49653a79c1e5ca5e1b02fc6fdf9ea1404adf1f2ed4f51d" + }, + { + "source": "evidence/lazy-body/evidence/baseline-sha256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/baseline-sha256.json", + "bytes": 530, + "sha256": "c3df58f59289f4631542eafe3dae9c0d21df99f2c2882bed2a0d870d936618a2" + }, + { + "source": "evidence/lazy-body/evidence/independent-lazy-body-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/independent-lazy-body-review.json", + "bytes": 6613, + "sha256": "8e6c0de322cb2296d2ac9bf472bcb29c3fcdfaa941541539e1fc467d5a47c933" + }, + { + "source": "evidence/lazy-body/evidence/kernel-delivery.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-delivery.json", + "bytes": 4719, + "sha256": "11fea899c7caa3065c8c1ca269cbf2ece6cc38e24cbd2da710646080c297d882" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-controls-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-green.log", + "bytes": 988, + "sha256": "da1bb41469fd4cd94d35f1f2d43d8af100b892960fbb1a6ad1f791c361a62432" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log", + "bytes": 988, + "sha256": "93f81b1d99ea70780edd1174a1a9139e6c7f3111476aa7d242f5d302cadaa17c" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-red.log", + "bytes": 26678, + "sha256": "1951bebd0b87067104b4fe3cb0e8c0f306ab0a6e1073e237af86332ff268cca8" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py", + "bytes": 10557, + "sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json", + "bytes": 13207, + "sha256": "4c75b2c284a9edbb5f630f1fbbbb2293136ef966331e3d22307eb02a41085631" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json", + "bytes": 11584, + "sha256": "80dfe0c201d2657856b4ed2abffee66281771f9742ce9de5771a3c1bef3535a0" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json", + "bytes": 10959, + "sha256": "44d415ab7ac37be454d05c12cec6295a0534001f7a32a830d37a2db455bb7814" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json", + "bytes": 13210, + "sha256": "e070d7f6d55d3aa529ed79583c629377ee9623af69f0680e9a03781d0a15aa06" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json", + "bytes": 11587, + "sha256": "652a371b954e50d7e01cf345f64bb0852584a89923a2760a169326ce1510ba53" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json", + "bytes": 10962, + "sha256": "1cbf59d063d01ba486d40c231753a5d6ac6c7a782b024afb79ce2bb940b883c5" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json", + "bytes": 3439, + "sha256": "17fc02e15f25ec9cb027bd01a8162e29515e391df1468555c542cf116ccf52b9" + }, + { + "source": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log", + "bytes": 291, + "sha256": "0405bd5d8c485b047b7c8fbfcad325d7bad8838cac651a12fc60b6ffbed3127a" + }, + { + "source": "evidence/lazy-body/evidence/kernel-mixed-generator-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-mixed-generator-red.json", + "bytes": 2036, + "sha256": "4c1a65899f1c5b88cd57758aed2450104325d3a9aa3171ad253b406b3b8ccb3f" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-profile-controls-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-green.log", + "bytes": 1172, + "sha256": "0a2db29755b11f1bfd6a442bcedead8ea641e077dd4b5e25d475183d1b8e1c78" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log", + "bytes": 1172, + "sha256": "6268639df35d6220ff5ccede714b65e3c53eb04889a994dd0746bd71fc724829" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py", + "bytes": 10420, + "sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json", + "bytes": 13286, + "sha256": "01e76fe7102f0a2d38b321f1138590958192cd856bfc8c27bb2ebe4a2379a2f0" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json", + "bytes": 13289, + "sha256": "034f846c1035aa2c80fa3bb633d2f49bfbc42de62024ce0cfbe2da9efa0483a5" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json", + "bytes": 1303, + "sha256": "65df0fae1366a05d94c0302ff2491ec5ef2f09d9b3d2dac525da36b15a51a19f" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log", + "bytes": 95, + "sha256": "91a124aae2c77dcb8286902b5afcc045536c6086b48381a04a19e236278e7c05" + }, + { + "source": "evidence/lazy-body/evidence/kernel-none-return-profile-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-profile-red.log", + "bytes": 9508, + "sha256": "edf2e042a7489afd6b14b2c6e92b4b66939292a157298a1a9e7148e90a656683" + }, + { + "source": "evidence/lazy-body/evidence/original-method-shape-applicability.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/original-method-shape-applicability.json", + "bytes": 31066, + "sha256": "16a4c32a9856e83df1e78b35930d5638f146504f1ec1ba95fbac78381072727a" + }, + { + "source": "evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py", + "bytes": 4115, + "sha256": "a8d893661a9c8f608c7ce34ac271b29d91135dcc5d179e3b9c107e40422630be" + }, + { + "source": "evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py", + "bytes": 4287, + "sha256": "587c79325b4bbf67f93568d3b8cc09029fdc481e873e93c61862d6f89281d521" + }, + { + "source": "evidence/lazy-body/kernel-lazy-body.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lazy-body.patch", + "bytes": 11176, + "sha256": "1773d4177ab064ea861c07856cc7401744487ceb945c0d553f20c94ec4f1fb0e" + }, + { + "source": "evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch", + "bytes": 38061, + "sha256": "f6638476a3fdc9593006a3c9e84f765bf25e9f54b362c0bf964c621c30a93f6e" + }, + { + "source": "evidence/lazy-body/published-parent/PUBLICATION.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/PUBLICATION.json", + "bytes": 31359, + "sha256": "2b7ebcff1daaf2e205fa7ce620d90a7ea6e59573a749c8c2d2765ec4edf911b4" + }, + { + "source": "evidence/lazy-body/published-parent/README.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/README.md", + "bytes": 10484, + "sha256": "b156fcdd8faf960999c20d7078d79a3cb535c8655db9742268c99f394ee62166" + }, + { + "source": "evidence/lazy-body/published-parent/REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/REGISTRY.json", + "bytes": 9663, + "sha256": "a611413890032fa60e7b2218314181cd970eaa5b76a86df44d01fc1c316b8297" + }, + { + "source": "evidence/lazy-body/published-parent/SPEC.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/SPEC.md", + "bytes": 5379, + "sha256": "61d57843fdc637603821f5e2722fba8b0bc67686ab247f29c0d125b5583642a6" + }, + { + "source": "evidence/lifecycle/DELIVERY_REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json", + "bytes": 9682, + "sha256": "c7cd71ca033d29f623efe020a4966b9f489319a8a2bc91c5e513adb2e2696228" + }, + { + "source": "evidence/lifecycle/baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/mutations.py", + "bytes": 11332, + "sha256": "5fd6fbbfd2aab463f1c2c017af942762ae798a67f3d1fc47001bc317b8fee0a0" + }, + { + "source": "evidence/lifecycle/baseline/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/run_tests.py", + "bytes": 1404, + "sha256": "b0a7f1c508462c21688de8d5ec70384d40f780c342814d97589f0b45f2d7620b" + }, + { + "source": "evidence/lifecycle/baseline/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py", + "bytes": 1243, + "sha256": "ca90d5c5c8e48d163d35b2170f2e7f08352863c23bd73f1b383a73a2dcc16ff3" + }, + { + "source": "evidence/lifecycle/evidence/independent-lifecycle-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json", + "bytes": 5018, + "sha256": "e9ad02a21799e314b5374d77cb6aef468e2561f92ee23d9b5e3fefe6e19df242" + }, + { + "source": "evidence/lifecycle/evidence/kernel-baseline-sha256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json", + "bytes": 1595, + "sha256": "839242ae4659709f9572b4cf9f06012b4d74e039ff2d1c3b2c422a4a33005002" + }, + { + "source": "evidence/lifecycle/evidence/kernel-controls-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log", + "bytes": 1997, + "sha256": "171f4fb72934006fc29bc75e482234148d8eed67077dbb6e179371ad93fa8baa" + }, + { + "source": "evidence/lifecycle/evidence/kernel-controls-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log", + "bytes": 2169, + "sha256": "93835d11aac0de286239faca85dc5d63b4f71118ba01e2a4a6154f91bd18b615" + }, + { + "source": "evidence/lifecycle/evidence/kernel-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log", + "bytes": 39211, + "sha256": "974f9047781ca8b429d091b77eb6e69c2581b0cdbe0bda46a21420f5767353ee" + }, + { + "source": "evidence/lifecycle/evidence/kernel-delivery.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json", + "bytes": 8482, + "sha256": "327156743cd6a19afa3603b46de4604e0e3fd373df8c7a907afebfd93e009c13" + }, + { + "source": "evidence/lifecycle/evidence/kernel-dispatch-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log", + "bytes": 2279, + "sha256": "c5cb3242587b83ef49764cab5dc2880ed1e1084fbb046ccc2d9176bda8f321d2" + }, + { + "source": "evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json", + "bytes": 4144, + "sha256": "f5486d2c4a4facfd60fa4423d2b6c1901259b63f77c492509278dd52f117c57b" + }, + { + "source": "evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json", + "bytes": 3957, + "sha256": "bc6fcb2f856b1abd2a591efe29b4f708fcab76e8f7c7026eb1f98b5f2cf403e4" + }, + { + "source": "evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json", + "bytes": 4637, + "sha256": "2c0258edad9ce69e4cc95fe3bc74a240d12fe24a1b9b44ec3d537777fa8ce661" + }, + { + "source": "evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py", + "bytes": 9834, + "sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9" + }, + { + "source": "evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json", + "bytes": 2352, + "sha256": "aa220c602f10c7830766e60e8de6bb9b541f24319f688f12ec8352320e8660fe" + }, + { + "source": "evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json", + "bytes": 5143, + "sha256": "13bfdabaceeeb6a42787f0c26d903947de73902504d73629b594e695d10a4d32" + }, + { + "source": "evidence/lifecycle/evidence/kernel-final-runner-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log", + "bytes": 157, + "sha256": "290e05136be930e5222f7e50bc9ccec4222ac850ef6a6492f174edb5739222b3" + }, + { + "source": "evidence/lifecycle/evidence/kernel-foreign-subtest-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log", + "bytes": 279, + "sha256": "3337102a6073cbd72fb0a61df7854e7455b8426edeccb979a4a81efce0728261" + }, + { + "source": "evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log", + "bytes": 279, + "sha256": "4fc0e3237fc63d1ccc278b57bc4273ee5bdb145bb22da01ca0479f3cdb826e3c" + }, + { + "source": "evidence/lifecycle/evidence/kernel-foreign-subtest-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log", + "bytes": 2325, + "sha256": "5e98cfa1e5d7947cfc684561200fe5dec096246ac11f0f5f6509e3bfd8557e67" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json", + "bytes": 9204, + "sha256": "93185f80485e4dee555da10032ddd757eef534d414049625958ceccdd0296a69" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json", + "bytes": 4508, + "sha256": "248cc91fd0c811a5f4dd8ef88599fc020bc19260cf5c5301f2c51b8709a09929" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json", + "bytes": 4976, + "sha256": "452c1a27c908af5be0ce4626e2061c3e691ce681da0572f3cd616ad1e0eb4da4" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py", + "bytes": 8474, + "sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json", + "bytes": 10299, + "sha256": "b3efe36ff2885f524b2b64131b0a3cd532b0c3b533d02ada5d77ff02f455125b" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json", + "bytes": 5314, + "sha256": "53d0580b382d2cb9481d250b74755e396045fc89b705bd03e7386d8e8446302f" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json", + "bytes": 9259, + "sha256": "18bbaabd7d9584b128b5944a23565173c63f57e1f43e7011d3c7bc390b449f4c" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json", + "bytes": 3747, + "sha256": "df89afbf409c23517c6adc10f05a3be910532cdaaf40fc2b405474df8b11e842" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json", + "bytes": 4345, + "sha256": "7305176ef9c79bddc152de57b075b84e8575de21bf557be74e60d65801ac91e9" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json", + "bytes": 5289, + "sha256": "6cbd7ecd15e86b6aabbdaef5745c94f5f3406a02e6ef9b7dd85973510609d165" + }, + { + "source": "evidence/lifecycle/evidence/kernel-harness-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log", + "bytes": 277, + "sha256": "c0ad54870a6a97b028980e57b5c0728c8a01fbe16a22dd861cde932a200835d1" + }, + { + "source": "evidence/lifecycle/evidence/kernel-lifecycle-method-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log", + "bytes": 2011, + "sha256": "dc6de5aab8c2d626de5f9730534359aaf047e1344a41f68bbc88370b5e1c157c" + }, + { + "source": "evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json", + "bytes": 4365, + "sha256": "ca918348f919ca788845f64d79b0769a5a03ce39a30ffd53dad5e6616f1fd206" + }, + { + "source": "evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py", + "bytes": 9931, + "sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa" + }, + { + "source": "evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json", + "bytes": 745, + "sha256": "df8a7754aad36b693a038d58a816e057091b1b0220b70c9af95ae1c2496007a0" + }, + { + "source": "evidence/lifecycle/evidence/kernel-parent-identity-mutant.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log", + "bytes": 45, + "sha256": "fccced21c7eaf917e3106ddfc916b539a5c339a4be79ae901f9c1bf3e94d7fd0" + }, + { + "source": "evidence/lifecycle/evidence/kernel-population-binding-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log", + "bytes": 908, + "sha256": "72f07a3d9b8c97ac3afc1aa366d76442e1d47d028b5e598be0a9365be3dd8ef9" + }, + { + "source": "evidence/lifecycle/evidence/kernel-population-listing-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log", + "bytes": 269, + "sha256": "075fdb533d31a636713bc9b0742e9f5efaa07703f8eb06e91e490c055ab9d485" + }, + { + "source": "evidence/lifecycle/evidence/kernel-setup-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json", + "bytes": 1038, + "sha256": "4bbb6076e1df6d98fa22a2d55628b9f86d5476e1219bf419157c346ff079cbbb" + }, + { + "source": "evidence/lifecycle/evidence/kernel-subtest-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log", + "bytes": 7289, + "sha256": "6982f7375c35792a5740a303f75626cb3b1f183044ea561622e1fe593d03b25d" + }, + { + "source": "evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py", + "bytes": 5784, + "sha256": "51f7c12bba3d058b666c013fff518aeb7fa70573de77b54d3993612e29604863" + }, + { + "source": "evidence/lifecycle/evidence/run_kernel_harness_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py", + "bytes": 5273, + "sha256": "e186270d37002f4766388f17bd083b50b57163d2c0d6b82f6a08722b1b279ebe" + }, + { + "source": "evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py", + "bytes": 5536, + "sha256": "a2bc1b4d8192306379f4495d966eece96cb4343f06edb5c445f4e89c78d85ea8" + }, + { + "source": "evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json", + "bytes": 7184, + "sha256": "0600afd1ed6d163f428104aa268801c0eba8218fdd3daf66439a732ab7c32075" + }, + { + "source": "evidence/lifecycle/kernel/REPORT.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REPORT.md", + "bytes": 5350, + "sha256": "fdc04c533f60c256189f431e9520b6ecad850edf4479b20c5cf7e2974b4f0c03" + }, + { + "source": "evidence/lifecycle/kernel/REVIEW.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt", + "bytes": 1939, + "sha256": "9b4bf9bef38993b3b9ad0d4faccedb7ab88ce9f5269ea91d3411e262ad8855e3" + }, + { + "source": "evidence/lifecycle/kernel/SUCCESSOR_SHA256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json", + "bytes": 942, + "sha256": "b9119fc61e433a29f14b0f26678ccff40eff02d65fc7b31b9cd9a0ea5975c7e4" + }, + { + "source": "evidence/lifecycle/kernel-first-generation.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-first-generation.patch", + "bytes": 30252, + "sha256": "fec302cc6ef2b346aa1c0aaff8cdba5573884370b1cedea19a94fda8b3b9f79b" + }, + { + "source": "evidence/lifecycle/kernel-parent-identity-followup.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch", + "bytes": 1709, + "sha256": "d49fd936219dbf73a3de6ae5566aee944e63d552b382cabaf7e034d11375bce0" + }, + { + "source": "evidence/lifecycle/kernel.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel.patch", + "bytes": 30814, + "sha256": "bf47d3399a2cc0fc5839a435854e080afdc4f603b84c8a686c70c14099e64a17" + }, + { + "source": "evidence/mutations/allow-artifact-symlink.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/allow-artifact-symlink.json", + "bytes": 11338, + "sha256": "c8bfac34246acd2900a6925392757211f66e53e351efcba265e026a79b5cec01" + }, + { + "source": "evidence/mutations/concurrent-module-processes.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/concurrent-module-processes.json", + "bytes": 13236, + "sha256": "977538c52fa7d341c091968f1036ae6f8230b404e593d24930d4050d21540001" + }, + { + "source": "evidence/mutations/empty-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/empty-coverage.json", + "bytes": 5590, + "sha256": "3ae7f5f12360e9a9ee9e8cbedb01049171b20c652b16cf1191dd8be9ceefdc9d" + }, + { + "source": "evidence/mutations/exported-part-only.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/exported-part-only.json", + "bytes": 11087, + "sha256": "328fd867ba5ec76ab9e45daa3a012d6c014957cb8799e1e9fe91c4fba13446b2" + }, + { + "source": "evidence/mutations/ignore-compiled-parts-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json", + "bytes": 6737, + "sha256": "960dae4fc277e3a07002819193dee24ab40c17186f2dba9cb8cc1f7b69a03c5b" + }, + { + "source": "evidence/mutations/ignore-completion-marker.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-completion-marker.json", + "bytes": 7438, + "sha256": "c144118043a400e9bc8bc39272fed976ad8238923cb6da3d6cd311f97b73274c" + }, + { + "source": "evidence/mutations/ignore-memory-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-memory-limit.json", + "bytes": 13369, + "sha256": "24f441d2ece746c4461fbd54067d45412d35647c36baf90863f792d73e6eb1bc" + }, + { + "source": "evidence/mutations/ignore-nonzero-exit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-nonzero-exit.json", + "bytes": 5561, + "sha256": "94891ea1f6b0477b39eb3b11d8fef6b19957db664d390b76216bd1190f352b7d" + }, + { + "source": "evidence/mutations/ignore-source-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-source-binding.json", + "bytes": 5569, + "sha256": "3f51af96105267731fa59a836d65d483d5952f33fcbaa80a0d53f279c1f2f77d" + }, + { + "source": "evidence/mutations/ignore-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-timeout.json", + "bytes": 5528, + "sha256": "974e1cd4a5af6b7e0cd3f1e6e14582d5fb5f6a2d1d51b50c27aa0958271ce697" + }, + { + "source": "evidence/mutations/ignore-tool-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-tool-binding.json", + "bytes": 5625, + "sha256": "d96a9f29ffb8af9208718568e699ec54ebb05bf8f5529e25a486bd67d3acef24" + }, + { + "source": "evidence/mutations/prefix-expansion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/prefix-expansion.json", + "bytes": 2095, + "sha256": "4f291ff664c51e4b16103e9fe91a4613a70adebc271ea8a671b3edf9baf33c8a" + }, + { + "source": "evidence/mutations/preload-target-self-reference.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/preload-target-self-reference.json", + "bytes": 11067, + "sha256": "26a448b4fba5ee7d4f0e71c566c54a19e704ba22ce40457908da33c504e4ed51" + }, + { + "source": "evidence/mutations/skip-kernel-replay.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/skip-kernel-replay.json", + "bytes": 11056, + "sha256": "a67667a9fa04a18289386bcfd5259b1ee8bc76851cf7f14fc746a062e60de9c2" + }, + { + "source": "evidence/mutations/truncate-module-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/truncate-module-coverage.json", + "bytes": 13752, + "sha256": "b24d1003434fd668304bb211b54791c8e43addb8b3cf8eee1fcdc0bcd16434a0" + }, + { + "source": "evidence/mutations/untrusted-checker-search-path.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/untrusted-checker-search-path.json", + "bytes": 2207, + "sha256": "1b6785e4a2a64aa10d7d6991e9135812785b05d30635a236fe29fcb11fe4db41" + }, + { + "source": "evidence/pre-review-identity-metadata/PUBLICATION.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/PUBLICATION.json", + "bytes": 44460, + "sha256": "bb0e9ced12720680178ff9517641ec1917c873ad8d1a0fb9292a87039e38b51a" + }, + { + "source": "evidence/pre-review-identity-metadata/README.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/README.md", + "bytes": 11400, + "sha256": "11d33b55820e85213708a9e429dbbffa67f9cdbe06cb7f8920ee35899b44e7ad" + }, + { + "source": "evidence/pre-review-identity-metadata/REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/REGISTRY.json", + "bytes": 12981, + "sha256": "94fb19a0cf04443873c99d620895df9e3d0a1c9b044bdb8535cb5adec1e4d936" + }, + { + "source": "evidence/pre-review-identity-metadata/SPEC.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/SPEC.md", + "bytes": 6309, + "sha256": "bbae2e56db3bb72bf329e760c8226386894e51e5b60423b6975f3dae9e90b2c2" + }, + { + "source": "evidence/real-BadPrivate.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-BadPrivate.json", + "bytes": 5056, + "sha256": "7b02c2721ff007ff732ff8df02378d5694b2e66bd5f0ec9dd369deda17757018" + }, + { + "source": "evidence/real-BadPublic.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-BadPublic.json", + "bytes": 5000, + "sha256": "063b0a4aafc60508b84a24a7cd1c72cfd44b3bbaab6af7875af70ea1f8a8245f" + }, + { + "source": "evidence/real-Good.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-Good.json", + "bytes": 4809, + "sha256": "3d7235b9907ac2cbbb51f551ea76d048d128bae4f464bf5f7e73179e11a9291e" + }, + { + "source": "evidence/real-UnapprovedAxiom.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-UnapprovedAxiom.json", + "bytes": 4941, + "sha256": "66a899b0efe864a74696bc7e0bb273cb33d93ba01e152289a82a709361d46e85" + }, + { + "source": "evidence/resource-baseline/kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/kernel_replay.py", + "bytes": 13298, + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "source": "evidence/resource-baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/mutations.py", + "bytes": 8522, + "sha256": "9826fe1eebd2406367e6db297e6e744b00fd3e3181a7e17d35fad0bf9f353d7f" + }, + { + "source": "evidence/resource-baseline/test_kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/test_kernel_replay.py", + "bytes": 7242, + "sha256": "8e0cb7916804dc5bc0e07b0f4a70bbb271e1a14c00b900519ac61e503ced97a6" + }, + { + "source": "evidence/resource-mutations/concurrent-module-processes.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json", + "bytes": 13476, + "sha256": "db4be58750d2a1fd546e6d71fcc3a669be4c162693300d89a0b9d39fac75ecab" + }, + { + "source": "evidence/resource-mutations/empty-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/empty-coverage.json", + "bytes": 8926, + "sha256": "27ab8cbf67aef0379c354d49014663c031af95198b4ed8b7a78e63c3457117e9" + }, + { + "source": "evidence/resource-mutations/ignore-compiled-parts-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json", + "bytes": 10073, + "sha256": "0a37d45c219c0de1df6f692c7f1dc2e8e639360cd0501af06663906291c08011" + }, + { + "source": "evidence/resource-mutations/ignore-completion-marker.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json", + "bytes": 10774, + "sha256": "b53acc688f426a645b0e4cbd4fb19971ed3df65f87b321863e6a1aa4df6ba061" + }, + { + "source": "evidence/resource-mutations/ignore-memory-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json", + "bytes": 9503, + "sha256": "24f2e28773683dabf8a5e29858830810e62d30a14b90067dc437616da5cc12bb" + }, + { + "source": "evidence/resource-mutations/ignore-nonzero-exit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json", + "bytes": 8897, + "sha256": "71812b54d7515c9eb04b6cdf62270884c54165706f28d3d906e8c8d73ddc529d" + }, + { + "source": "evidence/resource-mutations/ignore-source-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-source-binding.json", + "bytes": 8907, + "sha256": "3a9668b30a713f1a5c9a7f2d14c29b5e85a9738ad16a7c87db3f55e01554e934" + }, + { + "source": "evidence/resource-mutations/ignore-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-timeout.json", + "bytes": 15516, + "sha256": "6bcfc1c108a714c4612d8b7f344948c0f136ee05589fc0079f8ab81b447ebbee" + }, + { + "source": "evidence/resource-mutations/ignore-tool-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json", + "bytes": 8961, + "sha256": "dbe9b569376a0afd46a099b4338f1fad63e0d066b13a03a13d1e1a5925147d52" + }, + { + "source": "evidence/resource-mutations/resource-accept-boolean-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json", + "bytes": 2545, + "sha256": "ce8451ebce51842b2d2b1c2674e5fc937a80293cf8c57f39ef9b0ef2a0eb90dc" + }, + { + "source": "evidence/resource-mutations/resource-continue-after-unreaped-child.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json", + "bytes": 2536, + "sha256": "c7c6a79b9bb0c08c6a5e491ade932fb104fcd4a949f52b1c4c71bc86f6c91149" + }, + { + "source": "evidence/resource-mutations/resource-drop-process-exception-normalization.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json", + "bytes": 22513, + "sha256": "fe776bb953e02c46ce7d5fe9b36a9a92bdb7b5230be6af9a13d5fc7fd27db5ce" + }, + { + "source": "evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json", + "bytes": 2245, + "sha256": "65b05611475b10e1f382aa25ec48fa9e3f31a7ce91e30da5c2da365ed43611c6" + }, + { + "source": "evidence/resource-mutations/resource-ignore-memory-upper-bound.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json", + "bytes": 4086, + "sha256": "14f0c429973634c90ed189559041e8078afdc1c2bff42bc2050b2d8b49f21ff9" + }, + { + "source": "evidence/resource-mutations/resource-ignore-timeout-upper-bound.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json", + "bytes": 5808, + "sha256": "1288565bb1e0f9576cf07eed164fb04976deb62cf4ce7754c477d4da883773dd" + }, + { + "source": "evidence/resource-mutations/resource-overwrite-error-with-success.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json", + "bytes": 7198, + "sha256": "bd6d79751a4fd4121e0ef9ca25449130a66b8ec29efdfa1938eed5d62dccf94f" + }, + { + "source": "evidence/resource-mutations/resource-skip-abnormal-cleanup.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json", + "bytes": 2373, + "sha256": "cf5bd2fa1c35e0609ef51c0f3b06e2468a44960cd78e592a66717a346d462618" + }, + { + "source": "evidence/resource-mutations/resource-unbounded-cleanup-wait.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json", + "bytes": 7018, + "sha256": "97a3332405a163f4efb59e47e137926e2c6d9f898e8743ed196aa79bdc46b9b0" + }, + { + "source": "evidence/resource-mutations/truncate-module-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json", + "bytes": 17326, + "sha256": "83649b51562c4e7359ad093c62c62a5d6484c6ff0d00e6b3f61a2d80c1c9422d" + }, + { + "source": "independent-review.md", + "destination": "cbz/contributions/math514/kernel_replay/independent-review.md", + "bytes": 7107, + "sha256": "b919531111a625bdc2d283f4bc3f3c2242eead30c17e55cba6fff344789a7d3f" + }, + { + "source": "kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/kernel_replay.py", + "bytes": 16828, + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "source": "mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/mutations.py", + "bytes": 15771, + "sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd" + }, + { + "source": "resource-fix-report.json", + "destination": "cbz/contributions/math514/kernel_replay/resource-fix-report.json", + "bytes": 5777, + "sha256": "73ce8e9df8ab8e171bddd5a2d574463a46b63a4a1d96e2598b165ba20161722b" + }, + { + "source": "resource-fix-report.md", + "destination": "cbz/contributions/math514/kernel_replay/resource-fix-report.md", + "bytes": 3883, + "sha256": "2dac2e6cb467589700e8fa479d7592f2309052f2b09ab4837a839ae27498f2c9" + }, + { + "source": "resource-postfix-review.md", + "destination": "cbz/contributions/math514/kernel_replay/resource-postfix-review.md", + "bytes": 6745, + "sha256": "660d37c8e5c3374d8fee867182042c12d2fc863f2a0f63198e4b01b0c8ced8b2" + }, + { + "source": "run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/run_tests.py", + "bytes": 20838, + "sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb" + }, + { + "source": "tests/fixtures/BadPrivate.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean", + "bytes": 628, + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + { + "source": "tests/fixtures/BadPublic.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean", + "bytes": 604, + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + { + "source": "tests/fixtures/Good.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean", + "bytes": 359, + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + { + "source": "tests/fixtures/UnapprovedAxiom.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "bytes": 231, + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + { + "source": "tests/test_kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_kernel_replay.py", + "bytes": 18772, + "sha256": "2ccdd956379bf3ddbc479a10604a10db7c26acee96c54c869c7a6bafc0f2dfeb" + }, + { + "source": "tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_mutation_harness.py", + "bytes": 31704, + "sha256": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022" + }, + { + "source": "tests/test_real_lean.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_real_lean.py", + "bytes": 7288, + "sha256": "51ab210da908b4e3d74fe179c41a414abf4c53e88458db33f7934ae0010337d7" + }, + { + "source": "tool-report.json", + "destination": "cbz/contributions/math514/kernel_replay/tool-report.json", + "bytes": 9771, + "sha256": "2eabbb4f233bb5183dbbc084d8e03ae72c276e62e6444445d5a618373fe83a8c" + }, + { + "source": "tool-report.md", + "destination": "cbz/contributions/math514/kernel_replay/tool-report.md", + "bytes": 3946, + "sha256": "a6367b61f2a2bf3caa52ed237e2d55514499deb173ee6864c6f433cf9cd97d35" + } + ], + "status": "COMPLETE_LOGICAL_PAYLOAD_MAP", + "rule": "Preserve all predecessor paths and original failures. This map includes every other current logical payload path; component evidence is scoped and composed, not a new mathematical or hosted run.", + "files_map_scope": "Root populates all logical publication files except PUBLICATION.json itself; its enclosing Git tree/commit supplies that external binding and avoids a self-hash cycle.", + "source_root": ".", + "self_binding": "PUBLICATION.json is explicitly excluded from its own payload hash map. The resulting Git tree/commit and native publication receipts bind this file externally; no self-hash or publication/CI result is claimed here." +} diff --git a/cbz/contributions/math514/kernel_replay/README.md b/cbz/contributions/math514/kernel_replay/README.md new file mode 100644 index 000000000..d031b6044 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/README.md @@ -0,0 +1,81 @@ +# Bounded exact-module Lean kernel replay + +This adapter invokes the installed `LeanChecker.replayFromImports` once in each fresh Lean process. It removes the upstream CLI's prefix expansion and concurrent per-module tasks while preserving its kernel replay routine. It is a scoped G4 tool, not an independent proof checker or a complete CBZ gate suite. + +Requirements: Linux, Python 3 standard library, and a complete Lean 4.34.1 toolchain containing `bin/lean`, `lib/lean/LeanChecker.olean`, `lib/lean/Lean/Replay.olean`, and their corresponding installed source files. No Lake invocation, package download or native build is required. The driver is evaluated by plain `lean -j1 ExactReplay.lean`, because importing `LeanChecker` already imports upstream's root `main`; using `lean --run` would invoke its unsuitable CLI. + +Use absolute, canonical paths without symlinks for artifact roots and olean files/parts. The sysroot library takes precedence over supplied `LEAN_PATH` entries so a project cannot shadow the imported checker. Only explicit ASCII Lean module identifiers are accepted. Unknown arguments, including `--help`, fail; `python3 kernel_replay.py help` prints usage. + +From a fresh clone's repository root, use the published contribution path below. This example requires `elan` and an already installed Lean 4.34.1 toolchain selected by the repository's pinned toolchain setting. Without `elan`, set `LEAN=/absolute/lean-4.34.1/bin/lean` instead. Historical G0 receipts retain the actual author-workspace paths recorded when those checks ran; these portable usage examples do not rewrite that evidence. + +```bash +TOOL="$PWD/cbz/contributions/math514/kernel_replay" +LEAN="$(elan which lean)" + +# Include every module from the caller's independently complete owned-module inventory. +python3 "$TOOL/kernel_replay.py" prepare \ + --lean "$LEAN" \ + --lean-path /absolute/project/.lake/build/lib/lean \ + --lean-path /absolute/mathlib/.lake/build/lib/lean \ + --module ExactModule=/absolute/project/ExactModule.lean \ + --module AnotherModule=/absolute/project/AnotherModule.lean \ + --context /absolute/project/lean-toolchain \ + --context /absolute/project/lake-manifest.json \ + --output /absolute/evidence/replay-manifest.json + +python3 "$TOOL/kernel_replay.py" run /absolute/evidence/replay-manifest.json \ + --memory-mib 16384 --timeout-seconds 600 \ + --output /absolute/evidence/replay-report.json + +# The one-module convenience command uses the same manifest and replay checks. +python3 "$TOOL/kernel_replay.py" one ExactModule \ + --lean "$LEAN" --lean-path /absolute/project/.lake/build/lib/lean \ + --source /absolute/project/ExactModule.lean \ + --memory-mib 16384 --timeout-seconds 600 \ + --output /absolute/evidence/one-module-report.json +``` + +Repeat `--lean-path`, `--module`, and `--context` as needed. No glob, prefix expansion, implicit module or skip option exists. `prepare` binds every source, available exported/server/private olean part, executable and checker implementation. `run` checks exact nonempty coverage, validates bindings before/after execution, and waits for each process before starting the next. It requires exit zero and exactly one matching success marker. A failed child remains fatal to overall status even if other modules pass. Reports contain commands, times, bounds, hashes and output tails. CLI exit codes: 0 successful scoped replay/preparation, 1 non-green replay report, 2 malformed CLI/input/preparation failure. Preserve failed reports. + +Resource quantities are validated before spawning. Memory must be an integer from 64 MiB through `min(sys.maxsize, finite inherited RLIMIT_AS hard limit) // 1048576`; an unlimited inherited hard limit contributes no cap. This conservative Linux platform-integer ceiling excludes the unlimited sentinel, rejects values the child cannot install, and never silently clamps a request. Timeout must be an integer or float in `(0, min(floor(threading.TIMEOUT_MAX), 2147483)]` seconds. The second ceiling is the signed 32-bit poll-millisecond range rounded down to whole seconds. Booleans, nonfinite values and oversized integers are rejected without float conversion or a child process. Reports record the effective ceilings. + +Spawn and wait `OSError`, `SubprocessError`, `OverflowError` and `ValueError` become structured non-green reports. A timeout or abnormal wait sends SIGKILL to the process group, attempts a direct child kill if group signaling fails, and waits at most one second to reap. A normal killable child is reaped before scheduling continues. If the OS refuses signaling/reaping (for example an uninterruptible kernel wait), the adapter reports `ERROR` with the PID and cleanup diagnostics, then stops further modules; users must resolve that OS-level process. Finite cleanup cannot guarantee forced termination of an uninterruptible child. An error remains `ERROR` even if cleanup observes exit zero and a matching success marker. + +`--memory-mib` limits **virtual address space** with Linux `RLIMIT_AS`; it is not an RSS measurement or a replacement for the enclosing cgroup's physical memory limit. Tiny-driver diagnostics observed about 6.2 GiB virtual reservation and 614 MiB RSS. A 2 GiB address-space limit aborted during thread creation before checking; fixture replay passed with an explicit 8192 MiB cap. Individual real modules can still exceed memory or time bounds. The initial Math core exit-137 OOM at16GiB remains retained failed-run evidence. The canonical handoff already records a later successful same-source complete Math-core gate with `LEAN_NUM_THREADS=2` at8151; see [the immutable component receipt](https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json). Reuse that completed evidence: this adapter is a separately verified exact-scheduling option and does not require another Math-core replay. Its tiny fixtures alone do not establish every project module's resource requirement. + +The source and compiled hashes are separate bindings; G3 build evidence must establish that the compiled artifacts came from those sources. The report covers only declared targets and explicit context files. Supply all dependency bindings required by the intended evidence claim, and use a stable input tree. A hand-selected subset does not establish complete project coverage. Symlinked artifact roots/components/files/parts are rejected because upstream selects private/server siblings by lexical filename; canonicalizing a single file could otherwise bind different parts from those replayed. + +Upstream reads all available olean parts, uses the most private constant map, and checks safe total declarations in an **import-only** environment. It handles inductive declarations and checks the generated constructors/recursors. Its intentional exclusion of unsafe and partial definitions remains in effect. Imported dependencies require their own coverage/evidence. Kernel validity permits axioms; `g2_status` always remains `NOT_ASSESSED`. The included axiom fixture is kernel-valid and is rejected by a separate explicit fixture-policy check. That check illustrates the G2/G4 distinction; it is not a production all-declaration approved-axiom auditor. G2 is still a separate blocking obligation. + +## Current combined generation + +The [grader identity repair](GRADER_IDENTITY_FIX.md) follows the [lifecycle](LIFECYCLE_FIX.md) and [None-return](LAZY_BODY_FIX.md) repairs. The combined population is 67 methods: 31 wrapper, 9 real-Lean and 27 harness methods (20 predecessor + 7 new identity methods). The 27 affected harness methods per mode are covered by composed normal/optimized staged receipts and targeted refreshes after actual predicate or test changes; this is not a new final-source whole-27 or whole-67 run. The 40 unchanged wrapper/real-Lean methods retain applicable evidence. The 25 production replay mutation definitions and their completed evidence are unchanged and were not replayed. + +Current composition, exact final runtime hashes and the source-partition record are in `evidence/final-review-identity/current-composed-admission.json` and `SOURCE_COMPOSITION.json` beside it. The identity component's source-bound review is CLEAR. Its independent safeguards are separate from the 25 production mutations. Packaging creates no hosted CI, project proof replay, G2 approved-axiom policy or final federation gate result. Prior exact-source metadata is retained under `evidence/pre-review-identity-metadata/`. + + +Run G0 only for changed tooling or uncovered obligations; reuse applicable evidence on unchanged material. The resource-boundary repair changed the wrapper and its tests, so its affected checks are: + +```bash +export CBZ_TEST_LEAN="$LEAN" +python3 "$TOOL/run_tests.py" --output "$TOOL/evidence/g0-wrapper-current.json" \ + --test test_kernel_replay.WrapperTests --test test_mutation_harness.MutationHarnessTests +python3 "$TOOL/mutations.py" --group wrapper --output "$TOOL/evidence/g0-wrapper-mutations-current.json" +``` + +Resource generation evidence consists of 30 passing tests, two additional passing tests (one repeats the strengthened memory oracle), and one actual preexec-failure test: 32 distinct fresh tests, including 14 new resource tests. Nineteen current-source wrapper mutants were killed by actual assertion failures: ten original wrapper cases and nine new resource cases. The memory mutant was then rechecked only because its test oracle changed. These are separate from the preserved original 27-test/16-mutation receipts for wrapper SHA-256 `416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293`. The nine unchanged real-Lean tests and six real-driver/import-trust mutants retain their earlier applicable evidence; no real Lean fixture or project proof was replayed for this repair. See [RESOURCE_FIX.md](RESOURCE_FIX.md) and `evidence/g0-resource-applicable.json` for the exact evidence split. The default unfiltered runners still support a full suite when a new change warrants it. + +The real fixtures cover public/private proofs, data, inductives, exact-module behavior, installed-checker import trust and module-file symlink rejection. `BadPublic.lean` and `BadPrivate.lean` intentionally inject self-referential proofs through the public declaration API with fixture-local `debug.skipKernelTC`. They and `UnapprovedAxiom.lean` are quarantined test data, never closed mathematical modules. The exported-only and target-preloading mutants demonstrate why private parts and an import-only replay environment are required. Mutation copies are isolated and disposable; only complete custody-bound selected-body assertion evidence counts as a kill. Lifecycle assertions, errors, skips, empty/incomplete populations and timeouts are non-green harness outcomes. Initial survivors and erroneous historical adapter receipts are retained as failed tooling evidence, never certification. + +Ownership, gate boundaries, publication mapping and canonical registry/ledger payload are in `REGISTRY.json`. The canonical writer integrates that payload; this contribution does not edit shared canonical surfaces. + + +Mutation grading supports ordinary synchronous unittest methods that return None. A body or subtest AssertionError counts only when the innermost traceback frame outside unittest and its mock assertion helpers lies in the selected test's own module; an AssertionError raised inside the code under test is graded like any other crash, as ERROR. Generator, coroutine, async-generator and wraps-linked suspended method shapes are refused during pristine population discovery. Every non-None body return is ERROR, including falsey values and opaque iterables. Returned work is not consumed or awaited; only a fresh native coroutine may be closed without entering its body. Creating a suspended call object is not evidence that its deferred test body executed. + +Only the new profile obligation required fresh checks. Use the focused commands in REGISTRY.json when relevant; retain completed applicable evidence instead of replaying the original suite, 25 source mutants or Lean. Prior published/hosted results remain pinned to their tested heads. No new-head CI or CBZ result is asserted here. + +## Selected-declaration identity profile + +The [grader identity repair](GRADER_IDENTITY_FIX.md) freezes actual class, ordinary function and code objects before execution, including wraps-linked functions, and checks them before fixtures, at test starts, at body entry and at body completion. Module coverage comes from the actual module dictionary. Module `load_tests` hooks, callable suite factories, custom constructors/allocation/metaclasses/attribute dispatch and test-method descriptors are refused before construction or invocation. Only exact builtin staticmethod/classmethod descriptors are supported; named selectors traverse ordinary module dictionaries and static class declarations, refusing proxy/descriptor factories before lookup. Ordinary module, class and method selectors remain supported, with the existing synchronous None-return and exact assertion-provenance contracts. + +Trusted Python imports still execute. This bounded trusted-runner/source-custody profile is not a sandbox against arbitrary Python or authentication of fabricated consistent JSON. The final independent identity review is CLEAR for its exact source scope. Its 14 safeguard themes per tool in each mode yield 56 generation-bound assertion-kill observations across both tools: 32 + 8 + 4 + 12 across four source generations, not a fresh final-source 56-case campaign or production scanner/replay mutations. Earlier applicable observations and targeted refreshes remain separately bound. See `evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json`, its shared optimization/guard provenance and `shared/independent-review-final.json` (SHA256 f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4). diff --git a/cbz/contributions/math514/kernel_replay/REGISTRY.json b/cbz/contributions/math514/kernel_replay/REGISTRY.json new file mode 100644 index 000000000..90ff4eaae --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/REGISTRY.json @@ -0,0 +1,312 @@ +{ + "id": "cbz-kernel-exact-replay-v1", + "status": "COMPLETE_SCOPED_TOOL_REGISTRY_PAYLOAD", + "owner": "CBZ tooling / canonical writer integration", + "purpose": "Bounded serial exact-module scheduling of installed LeanChecker.replayFromImports, with target source/artifact bindings and fail-closed coverage/error handling.", + "associated_criteria": [ + "G0 auditor self-test/mutations", + "G4 scoped kernel replay", + "G11 complete documented tooling" + ], + "gates_not_claimed": [ + "G2 all-declaration approved-axiom audit", + "complete project G4 coverage", + "CBZ-0" + ], + "commands": { + "help": "python3 kernel_replay.py help", + "prepare": "python3 kernel_replay.py prepare --lean ABS_LEAN --lean-path ABS_OLEAN_ROOT --module NAME=ABS_SOURCE --output MANIFEST.json", + "run": "python3 kernel_replay.py run MANIFEST.json --memory-mib 16384 --timeout-seconds 600 --output REPORT.json", + "g0": "python3 run_tests.py --output evidence/g0-tests.json", + "mutations": "python3 mutations.py --output evidence/g0-mutations.json", + "g0_resource": "python3 run_tests.py --output evidence/g0-wrapper-current.json --test test_kernel_replay.WrapperTests --test test_mutation_harness.MutationHarnessTests", + "mutations_resource": "python3 mutations.py --group wrapper --output evidence/g0-wrapper-mutations-current.json", + "g0_lifecycle": "python3 -B -S run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness.json", + "g0_lifecycle_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness-optimized.json", + "g0_lazy_body_profile": "python3 -B -S run_tests.py --test test_mutation_harness.LazyBodyHarnessTests --output /absolute/new-evidence/lazy-body.json", + "g0_lazy_body_profile_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.LazyBodyHarnessTests --output /absolute/new-evidence/lazy-body-optimized.json" + }, + "self_verification": { + "status": "PASS_SCOPED_COMPOSED_IDENTITY", + "generation": "combined-review-identity-final", + "single_full_suite_claim": false, + "current_test_methods": 67, + "method_inventory_parts": { + "wrapper": 31, + "real_lean": 9, + "harness_predecessor": 20, + "harness_new_identity": 7 + }, + "fresh_affected_harness_methods_per_mode": 27, + "fresh_new_identity_methods": 7, + "fresh_modes": [ + "normal", + "optimized with inherited PYTHONOPTIMIZE=1" + ], + "reused_unchanged_wrapper_methods": 31, + "reused_unchanged_real_lean_methods": 9, + "production_mutations_applicable": 25, + "production_mutations_replayed": false, + "identity_safeguard_mutations": { + "themes_per_tool_per_mode": 14, + "observations_this_tool": 28, + "observations_both_tools": 56, + "stages_both_tools": [ + 32, + 8, + 4, + 12 + ], + "single_final_source_campaign": false, + "production_mutants": false + }, + "evidence": "evidence/final-review-identity/current-composed-admission.json", + "identity_review_status": "CLEAR_SCOPED_ENGINEERING", + "historical_lazy_body_generation": { + "status": "PASS_SCOPED_COMPOSED_NONE_RETURN_PROFILE", + "generation": "lazy-body-none-v4", + "single_full_suite_claim": false, + "current_test_methods": 60, + "fresh_affected_harness_methods": 6, + "fresh_modes": [ + "normal", + "optimized with inherited PYTHONOPTIMIZE=1" + ], + "reused_prior_lifecycle_methods": 14, + "reused_unchanged_wrapper_methods": 31, + "reused_unchanged_real_lean_methods": 9, + "fresh_final_none_return_guard_mutants": 1, + "fresh_final_guard_executions": 2, + "reused_unchanged_shape_and_decorator_guard_mutants": 2, + "initial_type_only_guard_generation": { + "distinct": 3, + "executions": 6, + "scope": "earlier type-only source; return-profile branch superseded; unchanged shape/decorator guards reused" + }, + "historical_production_mutations_applicable": 25, + "evidence": "evidence/lazy-body/current-composed-receipt.json", + "review": "evidence/lazy-body/evidence/independent-lazy-body-review.json", + "historical_lifecycle_generation": { + "status": "PASS_SCOPED_COMPOSED_LIFECYCLE_REPAIR", + "generation": "lifecycle-v3", + "single_full_suite_claim": false, + "current_test_methods": 54, + "fresh_affected_harness_methods": 14, + "reused_unchanged_wrapper_methods": 31, + "reused_unchanged_real_lean_methods": 9, + "fresh_distinct_grader_safeguard_mutants": 10, + "safeguard_mutant_executions_across_source_generations": 13, + "historical_production_mutations_applicable": 25, + "evidence": "evidence/lifecycle/evidence/kernel-delivery.json", + "review": "evidence/lifecycle/evidence/independent-lifecycle-review.json", + "historical_resource_generation": { + "status": "PASS_RESOURCE_BOUNDARY_G0", + "generation": "resource-boundary-v2", + "fresh_distinct_tests": 32, + "new_resource_tests": 14, + "fresh_test_invocations": 33, + "single_full_suite_claim": false, + "test_evidence": [ + "evidence/g0-resource-wrapper-tests.json", + "evidence/g0-resource-additional-tests.json", + "evidence/g0-resource-preexec-test.json", + "evidence/g0-resource-applicable.json" + ], + "reused_unchanged_real_lean_tests": 9, + "mutations": { + "fresh_planned": 19, + "fresh_executed": 19, + "fresh_killed": 19, + "new_resource_cases": 9, + "original_wrapper_cases": 10, + "reused_unchanged_real_cases": 6, + "memory_oracle_refresh": "evidence/g0-resource-memory-mutant-refresh.json", + "evidence": "evidence/g0-resource-mutations.json", + "threshold": 1 + }, + "prior_generation": { + "production_wrapper_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "verification": { + "status": "PASS", + "applicable_tests": 27, + "test_evidence": [ + "evidence/g0-tests.json", + "evidence/g0-additional-tests.json", + "evidence/g0-applicable-tests.json" + ], + "mutations": { + "planned": 16, + "executed": 16, + "killed": 16, + "threshold": 1, + "evidence": "evidence/g0-mutations.json" + } + } + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately.", + "source_bindings": { + "run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "kernel_replay.py": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "ExactReplay.lean": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + "identity_review": { + "path": "evidence/grader-identity-fix/shared/independent-review-final.json", + "sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4" + } + }, + "limits_and_boundaries": [ + "RLIMIT_AS bounds virtual address space, not RSS; enclosing cgroup physical limit remains separate. Fixture cap8192MiB; no assertion every project module fits.", + "Only explicit nonempty module list; caller independently establishes full owned-module inventory and dependency evidence.", + "Installed sysroot import precedence; no symlinked search roots/artifact components/module files/parts.", + "G3 independently binds source to compiled output. G2 remains NOT_ASSESSED by replay.", + "Unsafe and partial exclusions are upstream behavior.", + "Resource bounds reject bool, huge/nonfinite timeouts and unrepresentable/inherited-hard-limit memory caps before spawn; see SPEC.md.", + "Explicit Popen lifecycle normalizes spawn/wait resource exceptions. Kill/reap wait is bounded to one second; unreaped PID is reported ERROR and stops later modules. OS-uninterruptible processes cannot be promised forced termination.", + "Mutation grading supports only ordinary synchronous Python function/bound-method bodies that return None. Every wraps-linked shape must be non-generator/non-coroutine/non-async-generator; every non-None return is ERROR without evaluating or advancing it.", + "Selected declaration identity and loading profile must satisfy GRADER_IDENTITY_FIX.md. Module population hooks and arbitrary callable factories are unsupported; no fabricated trusted-runner or hostile Python sandbox claim." + ], + "quarantined_test_data": [ + { + "path": "tests/fixtures/BadPublic.lean", + "boundary": "Intentional self-referential theorem inserted with fixture-local skipKernelTC; only negative tests, never closed code." + }, + { + "path": "tests/fixtures/BadPrivate.lean", + "boundary": "Same intentional malformed body with genuine private visibility; only negative tests." + }, + { + "path": "tests/fixtures/UnapprovedAxiom.lean", + "boundary": "Explicit unapproved false axiom; kernel pass is expected while independent fixture axiom policy rejects." + } + ], + "ledger_payload": { + "phase": 2, + "layer": "B", + "action": "Refuse suspended test-function shapes and every non-None body return; compose six new normal/optimized harness controls with applicable prior lifecycle, replay and source-mutant evidence.", + "rationale": "Upstream prefix expansion launches concurrent per-module tasks with no CLI jobs flag. The original OOM is historical; canonical947 records a later successful same-source complete Math core gate with two threads. This adapter supplies exact serial scheduling, input binding and finite adversarial controls independently.", + "reversibility": "New isolated contribution files only; no mathematical source, branch, Git, remote or canonical-surface mutation by this task.", + "evidence": [ + "evidence/g0-applicable-tests.json", + "evidence/g0-mutations.json", + "tool-report.json", + "RESOURCE_FIX.md", + "resource-fix-report.json", + "evidence/g0-resource-applicable.json", + "LIFECYCLE_FIX.md", + "evidence/lifecycle/evidence/kernel-delivery.json", + "evidence/lifecycle/evidence/independent-lifecycle-review.json", + "LAZY_BODY_FIX.md", + "evidence/lazy-body/current-composed-receipt.json", + "evidence/lazy-body/evidence/independent-lazy-body-review.json" + ] + }, + "publication": { + "source_root": ".", + "destination_root": "cbz/contributions/math514/kernel_replay", + "excluded": [ + "**/__pycache__/**", + "**/*.pyc", + "evidence/compiled-fixtures/**", + "evidence/tmp*/**", + "evidence/mutant-*/**", + "evidence/RuntimeDiagnostic.lean" + ], + "mapping_file": "PUBLICATION.json", + "predecessor_metadata": "evidence/pre-review-identity-metadata/", + "historical_predecessor_source_root": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files" + }, + "canonical_math_core_resolution": { + "observed_by_this_window_utc": "2026-10-29T18:50:42.767390+00:00", + "source_commit": "8151f592918a845bf19eb8eafaf8444540a32734", + "canonical_handoff_cut": "94747663830ca6645ea27c8820058168c08cf170", + "status_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/STATUS.md", + "receipt_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json", + "reported_resource_configuration": "LEAN_NUM_THREADS=2", + "component_scope": "Math core:116 owned constants,63 public theorem targets,26853 dependency closure; onlypropext/Classical.choice/Quot.sound; fullcomponentgate/adversecontrols recorded", + "project_proof_replayed_for_this_correction": false, + "adapter_production_code_or_tests_changed": false, + "adapter_27_tests_16_mutants_reused": true, + "federation_CBZ_claim": false, + "record_context": "Historical documentation-only correction at cd3a0021; adapter-unchanged/reused-27-16 fields describe that cut. The later resource-boundary source change has separate self_verification evidence above." + }, + "resource_repair_review": { + "finding": "https://github.com/d6g8k5htny-coder/main/pull/696#discussion_r4416529549", + "status": "PASS_SAME_PROVIDER_ENGINEERING_REVIEW", + "prior_published_head": "cd3a0021a16437567ceda8c9a0f0525677042de2", + "project_math_replayed": false, + "report": "resource-postfix-review.md", + "sha256": "660d37c8e5c3374d8fee867182042c12d2fc863f2a0f63198e4b01b0c8ced8b2", + "provider_distinct_scientific_review": "NOT_ASSESSED_BY_THIS_ENGINEERING_REVIEW" + }, + "lifecycle_repair": { + "description": "LIFECYCLE_FIX.md", + "source_sha256": { + "run_tests.py": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "tests/test_mutation_harness.py": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6" + }, + "metadata_authentication_boundary": "Trusted source-bound runner; accounting schema does not authenticate adversarially fabricated consistent JSON.", + "original_summary_only_fixture_preserved": "evidence/lifecycle/baseline/", + "record_context": "Historical published lifecycle predecessor at 7b50d2b4c433a8f3b5442925e1ac9ff664880166; retain these source-bound hashes. Current runtime hashes are under self_verification.source_bindings and identity_repair.source_sha256; lazy_body_profile is a historical component generation." + }, + "lazy_body_profile": { + "description": "LAZY_BODY_FIX.md", + "published_parent": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "source_sha256": { + "run_tests.py": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "tests/test_mutation_harness.py": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114" + }, + "unchanged_classifier_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "supported_shapes": "ordinary synchronous Python functions and bound methods, including every advertised __wrapped__ link", + "required_return": "None by identity; falsey/non-None values also rejected", + "suspended_work_policy": "Never iterate or await a return; close only a native CORO_CREATED coroutine for disposal without body execution.", + "applicability": "evidence/lazy-body/evidence/original-method-shape-applicability.json", + "mathematics_or_original_mutants_replayed": false + }, + "identity_repair": { + "description": "GRADER_IDENTITY_FIX.md", + "evidence_root": "evidence/grader-identity-fix/", + "source_parent": "15b534674ef9caf78b2ac42c8bebaa8f7faeb238", + "source_bindings_receipt": "evidence/final-review-identity/current-composed-admission.json", + "source_bindings_status": "FINAL_ROOT_COMPOSITION_BOUND", + "review_status": "CLEAR_SCOPED_ENGINEERING", + "scope": "Selected class/function/code identity and supported standard loading population; no arbitrary-hostile-Python sandbox claim.", + "source_sha256": { + "run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "kernel_replay.py": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "ExactReplay.lean": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + "review": { + "path": "evidence/grader-identity-fix/shared/independent-review-final.json", + "sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4" + }, + "component_receipt": "evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json" + }, + "oracle_assertion_origin_landing": { + "description": "p696 v2 landing refresh of composed admission and real-Lean 4.34.1 fixture receipts, replayed linearly onto main f3f1b517. Engineering only.", + "scientific_claim": "NONE", + "credit": 0, + "evidence": "evidence/final-review-identity/current-composed-admission.json", + "runner_receipts": "evidence/oracle-assertion-origin/", + "observed_selected_methods": 68, + "production_mutations_replayed": false, + "project_proof_replayed": false, + "historical_self_verification_retained": true, + "tip_sync_main": "f3f1b517b0821ffdd8e08f472d91a304e625f420", + "replayed_patch_commit": "994c1217e51970f94076be0ba84c8818c5c82bf3", + "replayed_patch_tree": "9b27926bf3f36891105a2894ec8c5cc36dd1aa86", + "prior_am_tree": "3d3d58285e606752e94f7c64f5d6c591f53c4cfa", + "full_tree_matches_prior_am": false, + "merge_commit_onto_tip": false + } +} diff --git a/cbz/contributions/math514/kernel_replay/RESOURCE_FIX.md b/cbz/contributions/math514/kernel_replay/RESOURCE_FIX.md new file mode 100644 index 000000000..23decfef5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/RESOURCE_FIX.md @@ -0,0 +1,19 @@ +# Resource-boundary repair + +The P2 finding on [PR 696](https://github.com/d6g8k5htny-coder/main/pull/696#discussion_r4416529549) applied to the published cd3a0021 wrapper: arbitrary memory integers could fail in preexec, large finite waits could overflow, and implicit process cleanup could wait without a bound. This repair validates quantities before spawn, normalizes subprocess resource errors, and owns cleanup explicitly. + +Memory is an integer from 64 MiB to the smaller of the signed platform byte ceiling and a finite inherited hard RLIMIT_AS, converted down to MiB. Timeout is an int/float greater than zero and at most min(floor(threading.TIMEOUT_MAX), 2147483) seconds; the second limit is the signed 32-bit poll-millisecond range rounded down. Bool, huge integers and nonfinite values fail before a child starts. No value is silently clamped. + +Timeout or abnormal wait kills the process group, attempts direct child signaling when group signaling fails, then waits at most one second to reap and may poll without blocking. A normal killable child is reaped before continuing. An unreaped PID produces ERROR and stops later modules. The report retains PID and diagnostics because finite cleanup cannot force an OS-uninterruptible child to exit. ERROR stays non-green even if cleanup observes exit zero plus a valid marker. + +Fresh evidence is split across `evidence/g0-resource-wrapper-tests.json` (30 tests), `g0-resource-additional-tests.json` (2 tests, including one strengthened existing memory test), and `g0-resource-preexec-test.json` (1 actual preexec failure): **32 distinct fresh tests, 33 invocations, 14 new resource tests**. The additional CLI test verifies oversized bounds yield exit 1 and an emitted non-green report. The memory oracle checks actual soft/hard RLIMIT_AS in the parent; it does not depend on a child Python assertion. + +`evidence/g0-resource-mutations.json` records **19/19 current-source assertion kills**: ten original wrapper cases plus nine new resource cases. Only the memory-limit mutant was refreshed after its test oracle changed, in `g0-resource-memory-mutant-refresh.json`. Errors, skips and timeouts do not count as kills. The original sixteen cases remain defined. + +The original 27-test/16-mutation generation remains in its existing receipts, with its exact changed source bytes preserved under `evidence/resource-baseline/`. Those receipts are not relabeled as new runs. Nine unchanged real-Lean tests and six unchanged real-driver/import-trust mutant receipts are reused: driver, fixture code, normal command/cwd/env, path/part checks and checker precedence are unchanged. `evidence/g0-resource-applicable.json` records the exact IDs and source hashes. The composition yields 41 distinct applicable tests and 25 distinct mutation cases, not a single fresh run of either total. + +Clean RED probes first demonstrated 18 assertion failures in ten tests and five in two further tests against the original wrapper. An earlier probe with two test-indexing errors is retained as failed development evidence. No real Lean fixture was compiled/replayed and no project math gate was repeated. Mathematical completion and provider-distinct process review remain separate obligations. + +The canonical Math-core gate already passed on source8151 with two threads at canonical947; see [STATUS_CORRECTION.md](STATUS_CORRECTION.md). The initial OOM is historical failed-run evidence. G2, full-project coverage and full CBZ remain separate. + +Current wrapper SHA-256: `27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce`. Prior wrapper SHA-256: `416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293`. [Focused engineering review](resource-postfix-review.md) passed with no blocking findings. It is a separate same-provider review; provider-distinct scientific review and hosted checks remain separate process obligations. diff --git a/cbz/contributions/math514/kernel_replay/SPEC.md b/cbz/contributions/math514/kernel_replay/SPEC.md new file mode 100644 index 000000000..62383a0f2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/SPEC.md @@ -0,0 +1,43 @@ +# Exact-module kernel replay specification + +This tool repairs resource scheduling for Lean 4.34.1's installed `LeanChecker.replayFromImports`. It does not replace the kernel or change mathematical source. Owner: CBZ tooling agent; registry payload is `REGISTRY.json` for the canonical writer. + +The Lean driver imports `LeanChecker`, initializes the search path with `findSysroot`, and calls the exported official unsafe IO routine exactly once. It never imports the target into its driver environment. The official routine reads exported/server/private parts, builds an environment containing only the target's imports, then replays the constants from the most private available part. This preserves upstream handling of inductives, constructors, recursors and proof bodies. Its intentional unsafe/partial-definition exclusion remains upstream behavior. + +The Python CLI accepts only declared arguments; no prefix expansion, default anonymous target, ignored dash flags, concurrency option or empty target set exists. `prepare` creates a manifest from explicit `--module NAME=SOURCE` selections. `run` validates exact expected coverage and all bindings, then starts and waits for one Lean process at a time. Each process has an explicit address-space limit and wall timeout. Any missing module, source/part mutation, nonzero exit, timeout, absent/mismatched completion marker, changed tool binding or coverage mismatch is non-green. A report records every requested module, observed return code, exact command, hashes, resource bounds, times and output. A failed run never claims G4 success. + +The manifest binds source bytes and compiled bytes independently; it does not prove that source produced those bytes. G3 build evidence must establish that relationship. The report binds only declared target artifacts and explicit extra context bindings; it does not claim to bind an undeclared full dependency closure. The manifest's explicit expected list must come from the caller's independently complete owned-module inventory; preparing a subset cannot establish full-project coverage. + +Trust/path invariant: installed sysroot library precedence pins the driver's checker import. Artifact search roots, selected module filenames and all sibling part paths must be canonical and contain no symlinks. This conservative restriction prevents binding canonical destination siblings while the official routine reads lexical search-path siblings. Limits bound virtual address space, not RSS; an 8192 MiB cap is used for actual fixtures, and no claim is made that every project module fits. + +Kernel validity permits axioms. A successful replay is not G2 approved-axiom certification and is not full CBZ. G2 remains an independent blocking gate. Fixtures include a quarantined unapproved axiom and an intentionally corrupted theorem body solely as negative tool tests. + +G0 acceptance: strict CLI, exact target, sequential processes, no empty/missing/duplicate coverage, fatal child failure, limits/timeouts, source/part/tool binding changes, public/private/inductive fixture with three real olean parts, malformed public and private proof bodies rejected, unapproved axiom replay accepted while an independent fixture axiom check rejects it. Mutation testing must kill relevant wrapper/driver defects and report actual counts. No heavy project replay is required to self-test this tool. + +Resource-boundary generation (P2 repair): memory is an exact integer in `[64, min(sys.maxsize, finite inherited RLIMIT_AS hard limit) // 1048576]` MiB. The unlimited hard-limit sentinel contributes no cap. Timeout is an exact int/float type in `(0, min(floor(threading.TIMEOUT_MAX), 2147483)]` seconds; 2147483 is the signed 32-bit poll-millisecond range rounded down. Bool, NaN/infinity and oversized values are rejected before process creation and before converting a huge int to float. Both ceilings and the one-second cleanup wait budget appear in the report. + +The wrapper owns Popen explicitly and never invokes its implicit unbounded context-manager cleanup. Spawn/wait resource exceptions (`OSError`, `SubprocessError`, `OverflowError`, `ValueError`) are structured errors. Timeout/error cleanup signals the process group, falls back to child signaling on a group error, and uses a one-second reap wait plus nonblocking poll. Cleanup failure leaves a non-green ERROR with the PID and diagnostics, and stops subsequent modules. A finite wait cannot force an OS-uninterruptible child to exit. Only an ordinary completed wait can promote a result to PASS/FAIL; neither timeout nor ERROR can become PASS from exit-zero/marker observations during cleanup. Existing coverage, binding, private-part, replay, and G2 semantics remain unchanged. + + +## Mutation grader lifecycle contract + +See LIFECYCLE_FIX.md. Kills require a pristine externally bound exact selected parent-method population and one authorized body entry/exit per method, direct escaping AssertionError identity or matched body-subtest assertion events, and exact integer count/event consistency. Lifecycle errors/assertions, false or incomplete identities, foreign subtest parents, missing metadata, skips/expected failures and synthetic summaries are ERROR. Fully fabricated consistent JSON remains outside the trusted runner/source-custody boundary. Historical source-bound body-trace evidence is retained separately from new receipts. + + +## Synchronous None-return test-body profile + +Mutation grading supports ordinary synchronous unittest methods that return None. Generator, coroutine, async-generator and wraps-linked suspended method shapes are refused during pristine population discovery. Every non-None body return is ERROR, including falsey values and opaque iterables. Returned work is not consumed or awaited; only a fresh native coroutine may be closed without entering its body. Creating a suspended call object is not evidence that its deferred test body executed. + +All 54 predecessor methods are ordinary synchronous methods with no direct valued return or suspension; the static source-applicability report is in evidence/lazy-body/evidence/original-method-shape-applicability.json. Existing lifecycle/error/subtest and externally bound population obligations remain in force. No additional runtime module, dependency or receipt schema is introduced. + +## Selected-declaration identity profile + +The [grader identity repair](GRADER_IDENTITY_FIX.md) freezes actual class, ordinary function and code objects before execution, including wraps-linked functions, and checks them before fixtures, at test starts, at body entry and at body completion. Module coverage comes from the actual module dictionary. Module `load_tests` hooks, callable suite factories, custom constructors/allocation/metaclasses/attribute dispatch and test-method descriptors are refused before construction or invocation. Only exact builtin staticmethod/classmethod descriptors are supported; named selectors traverse ordinary module dictionaries and static class declarations, refusing proxy/descriptor factories before lookup. Ordinary module, class and method selectors remain supported, with the existing synchronous None-return and exact assertion-provenance contracts. + +Trusted Python imports still execute. This bounded trusted-runner/source-custody profile is not a sandbox against arbitrary Python or authentication of fabricated consistent JSON. The final independent identity review is CLEAR for its exact source scope. Its 14 safeguard themes per tool in each mode yield 56 generation-bound assertion-kill observations across both tools: 32 + 8 + 4 + 12 across four source generations, not a fresh final-source 56-case campaign or production scanner/replay mutations. Earlier applicable observations and targeted refreshes remain separately bound. See `evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json`, its shared optimization/guard provenance and `shared/independent-review-final.json` (SHA256 f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4). + +## Current combined generation + +The [grader identity repair](GRADER_IDENTITY_FIX.md) follows the [lifecycle](LIFECYCLE_FIX.md) and [None-return](LAZY_BODY_FIX.md) repairs. The combined population is 67 methods: 31 wrapper, 9 real-Lean and 27 harness methods (20 predecessor + 7 new identity methods). The 27 affected harness methods per mode are covered by composed normal/optimized staged receipts and targeted refreshes after actual predicate or test changes; this is not a new final-source whole-27 or whole-67 run. The 40 unchanged wrapper/real-Lean methods retain applicable evidence. The 25 production replay mutation definitions and their completed evidence are unchanged and were not replayed. + +Current composition, exact final runtime hashes and the source-partition record are in `evidence/final-review-identity/current-composed-admission.json` and `SOURCE_COMPOSITION.json` beside it. The identity component's source-bound review is CLEAR. Its independent safeguards are separate from the 25 production mutations. Packaging creates no hosted CI, project proof replay, G2 approved-axiom policy or final federation gate result. Prior exact-source metadata is retained under `evidence/pre-review-identity-metadata/`. diff --git a/cbz/contributions/math514/kernel_replay/STATUS_CORRECTION.md b/cbz/contributions/math514/kernel_replay/STATUS_CORRECTION.md new file mode 100644 index 000000000..7ba531ab8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/STATUS_CORRECTION.md @@ -0,0 +1,7 @@ +# Math-core status correction + +The initial resource failure is preserved, but it is not the current component result. The canonical handoff already records a successful complete Math-core gate on8151 with LEAN_NUM_THREADS=2. The immutable receipt records116 owned constants,63 public theorem targets,26853 closure constants, the three approved axioms, unchanged dependency observations and rejected adverse controls. + +Source: https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json . Canonical STATUS: https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/STATUS.md . This window read the existing receipt on2026-10-29T18:50:42.767390+00:00; it did not run another proof/kernel check. The earlier wording that this project OOM remained unclosed was information lag and is corrected in README, registry and reports. Original source text remains recoverable in parent0c6f9e3. + +At the documentation-only correction cut cd3a0021, adapter production code, fixtures and tests were unchanged and the completed27-test/16-mutation evidence was reused. The later P2 resource-boundary repair changes the wrapper/tests and has separate fresh evidence in RESOURCE_FIX.md; unchanged real-Lean evidence remains reusable. Current-head hosted CI must be distinguished from the eight successes observed on0c6f9e3. Full federation G0-G11 and other projects remain separate. diff --git a/cbz/contributions/math514/kernel_replay/evidence/final-review-identity/SOURCE_COMPOSITION.json b/cbz/contributions/math514/kernel_replay/evidence/final-review-identity/SOURCE_COMPOSITION.json new file mode 100644 index 000000000..c6290fbe5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/final-review-identity/SOURCE_COMPOSITION.json @@ -0,0 +1,35 @@ +{ + "scope": "Reviewed source composition and registered-method inventory only; no tests/math reexecuted", + "bases": { + "kernel_replay": "15b534674ef9caf78b2ac42c8bebaa8f7faeb238", + "layer_a": "19b8e20a698775bef1813c5ceac91e2be9119bde" + }, + "method_counts": { + "kernel_replay": 67, + "layer_a": 110 + }, + "layer_a_active_mutation_definitions": 68, + "all_current_mutation_anchors_unique": true, + "source_partition_check": "Completed in preceding composition command before its overbroad nested-fixture census assertion; only census scope corrected", + "identity_functions_classes_AST_exact": true, + "manifest_68_MUTATIONS_literal_exact": true, + "identity_review_sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4", + "sources": { + "kernel_replay": { + "run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "kernel_replay.py": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "ExactReplay.lean": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + "layer_a": { + "auditor.py": "309935e125195ae8093ffeb691f9d4c16f6c69e3dbb74b453ed6d50e05be1619", + "source_checks.py": "6d68a5cb61e41823e0919f13418935f0baef25f41a0d36fb0ec06457e45f4ae0", + "mutation_test.py": "9146cd183a8fcdc93623de20596966b118f3a9e5403d94f74f6be0fe46e4e731", + "tests/test_auditor.py": "73e0b36fe95774af04b433f2de748911625a4ed10cf9f5f46c86249f19707ddc", + "tests/test_mutation_runner.py": "9ecf6dbdc0cf30ecf1b9c4f72d6cda21bc8bfe4eac3a5383ebe4e8b1e93a2866", + "canonical_lean.py": "9ed661b1490f73c4dc3664a33ed688e937c1c7d8fecfb4d48c5349fa41823818" + } + }, + "driver_scope_correction": "Earlier provisional source list used nonexistent KernelReplay.lean; actual unchanged driver ExactReplay.lean is explicitly bound here. No Lean/test execution." +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/final-review-identity/current-composed-admission.json b/cbz/contributions/math514/kernel_replay/evidence/final-review-identity/current-composed-admission.json new file mode 100644 index 000000000..7cc20080f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/final-review-identity/current-composed-admission.json @@ -0,0 +1,372 @@ +{ + "schema_version": 1, + "record_kind": "SOURCE_BOUND_COMPOSED_COMPONENT_EVIDENCE", + "tool": "kernel_replay", + "generation": "p696-v2-oracle-assertion-origin-landing-f3f1b517", + "status": "PASS_SCOPED_ENGINEERING_REFRESH", + "scientific_claim": "NONE", + "credit": 0, + "new_mathematical_checks": 0, + "project_proof_replayed": false, + "production_mutant_rerun": false, + "full_suite_rerun_this_landing": true, + "full_suite_scope": "run_tests.py discovery of this contribution only; not a project proof replay and not mutations.py", + "g2_production_audit": "NOT_ASSESSED", + "hosted_CI": "NOT_ASSESSED_BY_THIS_RECEIPT", + "federation_CBZ_claim": false, + "actual_repository_G1": "NOT_APPLICABLE", + "note": "Engineering integrate of p696 v2 replayed linearly onto main f3f1b517. Counts below are observations from the commands listed on this checkout. The predecessor identity review stays bound to the predecessor source hashes and is not a review of this patch. Historical canonical real-*.json and fixture-g2-rejection.json bytes were retained; refreshed fixture reports are copies under evidence/oracle-assertion-origin/real-fixtures/. No scientific claim.", + "source_bindings": { + "run_tests.py": "e361824fdf82d12cafdd264167f9a33add20bdcae21847f837168bbd5b240191", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "kernel_replay.py": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "tests/test_mutation_harness.py": "84fc026cf8891bd1902ff591765ba5b9d535d2be244c0f3a90f0774e1bdf915e", + "ExactReplay.lean": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + "changed_from_predecessor": [ + "run_tests.py", + "tests/test_mutation_harness.py" + ], + "unchanged_from_predecessor": [ + "ExactReplay.lean", + "kernel_replay.py", + "mutations.py" + ], + "environment": { + "python": "3.12.3", + "lean": "Lean (version 4.34.1, x86_64-unknown-linux-gnu, commit 5045d0056413266e57c625dcd7c365b10e377c52, Release)", + "CBZ_TEST_LEAN": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "working_directory": "cbz/contributions/math514/kernel_replay" + }, + "commands": { + "population_list": "python3 -B -S run_tests.py --list --output evidence/oracle-assertion-origin/population-list.json", + "harness_normal": "python3 -B -S run_tests.py --test test_mutation_harness.MutationHarnessTests --output evidence/oracle-assertion-origin/harness-normal.json", + "harness_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.MutationHarnessTests --output evidence/oracle-assertion-origin/harness-optimized.json", + "real_lean_normal": "python3 -B -S run_tests.py --test test_real_lean.RealLeanTests --output evidence/oracle-assertion-origin/real-lean-normal.json", + "real_lean_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_real_lean.RealLeanTests --output evidence/oracle-assertion-origin/real-lean-optimized.json", + "suite_normal": "python3 -B -S run_tests.py --output evidence/oracle-assertion-origin/suite-normal.json", + "suite_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --output evidence/oracle-assertion-origin/suite-optimized.json" + }, + "command_exits": { + "population_list": 0, + "harness_normal": 0, + "harness_optimized": 0, + "real_lean_normal": 0, + "real_lean_optimized": 0, + "suite_normal": 0, + "suite_optimized": 0 + }, + "observed_population": { + "selected_ids": 68, + "invalid_population": [], + "parts": { + "test_kernel_replay.WrapperTests": 31, + "test_mutation_harness.IdentityHarnessTests": 7, + "test_mutation_harness.LazyBodyHarnessTests": 6, + "test_mutation_harness.MutationHarnessTests": 15, + "test_real_lean.RealLeanTests": 9 + } + }, + "runs": { + "harness_normal": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "tests_run": 15, + "successful": true, + "skipped": 0, + "errors": 0, + "assertion_failures": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "subtests": 53, + "lifecycle_failures": 0, + "selected_ids": 15, + "sha256": "28470ffc9ffd055e84f5e1b7c34675962b83b57f710501d0ffd52e452881dbdb" + }, + "harness_optimized": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "tests_run": 15, + "successful": true, + "skipped": 0, + "errors": 0, + "assertion_failures": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "subtests": 53, + "lifecycle_failures": 0, + "selected_ids": 15, + "sha256": "28470ffc9ffd055e84f5e1b7c34675962b83b57f710501d0ffd52e452881dbdb" + }, + "real_lean_normal": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "tests_run": 9, + "successful": true, + "skipped": 0, + "errors": 0, + "assertion_failures": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "subtests": 0, + "lifecycle_failures": 0, + "selected_ids": 9, + "sha256": "a1063cc5f6bcd9fee6292561b1080211e68d34e6d4bbfbda637b8059a1d7169d" + }, + "real_lean_optimized": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "tests_run": 9, + "successful": true, + "skipped": 0, + "errors": 0, + "assertion_failures": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "subtests": 0, + "lifecycle_failures": 0, + "selected_ids": 9, + "sha256": "a1063cc5f6bcd9fee6292561b1080211e68d34e6d4bbfbda637b8059a1d7169d" + }, + "suite_normal": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "tests_run": 68, + "successful": true, + "skipped": 0, + "errors": 0, + "assertion_failures": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "subtests": 135, + "lifecycle_failures": 0, + "selected_ids": 68, + "sha256": "df68040c64f6bae87cbceb3bf1067006863e917fa894049743a61aafaf5fab59" + }, + "suite_optimized": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "tests_run": 68, + "successful": true, + "skipped": 0, + "errors": 0, + "assertion_failures": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "subtests": 135, + "lifecycle_failures": 0, + "selected_ids": 68, + "sha256": "df68040c64f6bae87cbceb3bf1067006863e917fa894049743a61aafaf5fab59" + } + }, + "real_lean_fixture_receipts": { + "historical_canonical_files_retained": true, + "historical_sha256": { + "evidence/real-Good.json": "3d7235b9907ac2cbbb51f551ea76d048d128bae4f464bf5f7e73179e11a9291e", + "evidence/real-BadPublic.json": "063b0a4aafc60508b84a24a7cd1c72cfd44b3bbaab6af7875af70ea1f8a8245f", + "evidence/real-BadPrivate.json": "7b02c2721ff007ff732ff8df02378d5694b2e66bd5f0ec9dd369deda17757018", + "evidence/real-UnapprovedAxiom.json": "66a899b0efe864a74696bc7e0bb273cb33d93ba01e152289a82a709361d46e85", + "evidence/fixture-g2-rejection.json": "c727db806e98e7b6d053236ed54f20742862152f0e7f98a6262d68dec9457f83" + }, + "normal": { + "real-Good.json": { + "ok": true, + "module": "Good", + "status": "PASS", + "returncode": 0, + "g2_status": "NOT_ASSESSED", + "sha256": "a0311a6b8e8316856c34126228c4002be4124c1eb1850fafdb35d24773d402ff" + }, + "real-BadPublic.json": { + "ok": false, + "module": "BadPublic", + "status": "FAIL", + "returncode": 1, + "g2_status": "NOT_ASSESSED", + "sha256": "57640997837f664febdc918f10754bc01394a70266666510aa2a46a842d64b67" + }, + "real-BadPrivate.json": { + "ok": false, + "module": "BadPrivate", + "status": "FAIL", + "returncode": 1, + "g2_status": "NOT_ASSESSED", + "sha256": "bf94c4d4fd0a8346df174443a3864c321b88bfbf46a8771aafd77afb32174868" + }, + "real-UnapprovedAxiom.json": { + "ok": true, + "module": "UnapprovedAxiom", + "status": "PASS", + "returncode": 0, + "g2_status": "NOT_ASSESSED", + "sha256": "1eba422b294fe1e52d5ab73958d1fcd27ccca371307103a559bd7553058169d7" + }, + "fixture-g2-rejection.json": { + "returncode": 1, + "scope": "one explicit unapproved fixture axiom; not a production all-declaration G2 auditor", + "sha256": "773c94586129e658181d6520ca9b8f615be604f2a56db0f57b266d1bebd61b4b" + } + }, + "optimized": { + "real-Good.json": { + "ok": true, + "module": "Good", + "status": "PASS", + "returncode": 0, + "g2_status": "NOT_ASSESSED", + "sha256": "8eed675ce9efb3de26f72239955f2a3491f58906f77821f7388ae3fd7f85aa7b" + }, + "real-BadPublic.json": { + "ok": false, + "module": "BadPublic", + "status": "FAIL", + "returncode": 1, + "g2_status": "NOT_ASSESSED", + "sha256": "d696af6d0a125b4eee164c21cc1d94f69666f2df4676a05ef3f29140531d2124" + }, + "real-BadPrivate.json": { + "ok": false, + "module": "BadPrivate", + "status": "FAIL", + "returncode": 1, + "g2_status": "NOT_ASSESSED", + "sha256": "f772349ff240bb3f95eb09b47b5e556e8336f9764e36995a113026feb8b703f2" + }, + "real-UnapprovedAxiom.json": { + "ok": true, + "module": "UnapprovedAxiom", + "status": "PASS", + "returncode": 0, + "g2_status": "NOT_ASSESSED", + "sha256": "ccd52e44ce60d6c7cabfdc3c29d5b34c31472e2f34fcfd08b698a8712fd46615" + }, + "fixture-g2-rejection.json": { + "returncode": 1, + "scope": "one explicit unapproved fixture axiom; not a production all-declaration G2 auditor", + "sha256": "773c94586129e658181d6520ca9b8f615be604f2a56db0f57b266d1bebd61b4b" + } + } + }, + "evidence_sha256": { + "evidence/oracle-assertion-origin/harness-normal.json": "28470ffc9ffd055e84f5e1b7c34675962b83b57f710501d0ffd52e452881dbdb", + "evidence/oracle-assertion-origin/harness-optimized.json": "28470ffc9ffd055e84f5e1b7c34675962b83b57f710501d0ffd52e452881dbdb", + "evidence/oracle-assertion-origin/population-list.json": "670553200700b8c6189e5cfb21ff78385469b948f34fba286d68b147abbec959", + "evidence/oracle-assertion-origin/real-fixtures/normal/fixture-g2-rejection.json": "773c94586129e658181d6520ca9b8f615be604f2a56db0f57b266d1bebd61b4b", + "evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPrivate.json": "bf94c4d4fd0a8346df174443a3864c321b88bfbf46a8771aafd77afb32174868", + "evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPublic.json": "57640997837f664febdc918f10754bc01394a70266666510aa2a46a842d64b67", + "evidence/oracle-assertion-origin/real-fixtures/normal/real-Good.json": "a0311a6b8e8316856c34126228c4002be4124c1eb1850fafdb35d24773d402ff", + "evidence/oracle-assertion-origin/real-fixtures/normal/real-UnapprovedAxiom.json": "1eba422b294fe1e52d5ab73958d1fcd27ccca371307103a559bd7553058169d7", + "evidence/oracle-assertion-origin/real-fixtures/optimized/fixture-g2-rejection.json": "773c94586129e658181d6520ca9b8f615be604f2a56db0f57b266d1bebd61b4b", + "evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPrivate.json": "f772349ff240bb3f95eb09b47b5e556e8336f9764e36995a113026feb8b703f2", + "evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPublic.json": "d696af6d0a125b4eee164c21cc1d94f69666f2df4676a05ef3f29140531d2124", + "evidence/oracle-assertion-origin/real-fixtures/optimized/real-Good.json": "8eed675ce9efb3de26f72239955f2a3491f58906f77821f7388ae3fd7f85aa7b", + "evidence/oracle-assertion-origin/real-fixtures/optimized/real-UnapprovedAxiom.json": "ccd52e44ce60d6c7cabfdc3c29d5b34c31472e2f34fcfd08b698a8712fd46615", + "evidence/oracle-assertion-origin/real-lean-normal.json": "a1063cc5f6bcd9fee6292561b1080211e68d34e6d4bbfbda637b8059a1d7169d", + "evidence/oracle-assertion-origin/real-lean-optimized.json": "a1063cc5f6bcd9fee6292561b1080211e68d34e6d4bbfbda637b8059a1d7169d", + "evidence/oracle-assertion-origin/suite-normal.json": "df68040c64f6bae87cbceb3bf1067006863e917fa894049743a61aafaf5fab59", + "evidence/oracle-assertion-origin/suite-optimized.json": "df68040c64f6bae87cbceb3bf1067006863e917fa894049743a61aafaf5fab59" + }, + "predecessor_admission": { + "path": "evidence/final-review-identity/current-composed-admission.json", + "sha256_before_this_refresh": "5161ee5967a99038004caf114a3c158f86d0d3af9e46a9ca4427cf03a65094fa", + "source_parent_commit": "15b534674ef9caf78b2ac42c8bebaa8f7faeb238", + "status": "PASS_SCOPED_COMPOSED_COMPONENTS", + "current_method_inventory": 67, + "identity_review": { + "path": "evidence/grader-identity-fix/shared/independent-review-final.json", + "sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4", + "verdict": "CLEAR_SCOPED_ENGINEERING" + }, + "applicability": "Bound to predecessor source hashes only. Not a review of p696 v2.", + "record": { + "schema_version": 1, + "record_kind": "SOURCE_BOUND_COMPOSED_COMPONENT_EVIDENCE", + "tool": "kernel_replay", + "source_parent": { + "commit": "15b534674ef9caf78b2ac42c8bebaa8f7faeb238", + "repository": "d6g8k5htny-coder/main" + }, + "status": "PASS_SCOPED_COMPOSED_COMPONENTS", + "source_bindings": { + "run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "kernel_replay.py": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "ExactReplay.lean": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + "identity_review": { + "path": "evidence/grader-identity-fix/shared/independent-review-final.json", + "sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4", + "verdict": "CLEAR_SCOPED_ENGINEERING" + }, + "current_method_inventory": 67, + "full_suite_rerun": false, + "production_mutant_rerun": false, + "new_Lean_runs": 0, + "new_mathematical_checks": 0, + "hosted_CI": "NOT_ASSESSED_BY_METADATA", + "actual_repository_G1": "NOT_APPLICABLE", + "identity_component": { + "document": "GRADER_IDENTITY_FIX.md", + "receipt": "evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json", + "new_methods": 7, + "affected_methods_per_mode": 27, + "source_bindings": { + "run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022" + }, + "review_status": "CLEAR_SCOPED_ENGINEERING", + "safeguards": { + "distinct_themes_per_tool": 14, + "observations_this_tool": 28, + "observations_both_tools": 56, + "stage_sizes_both_tools": [ + 32, + 8, + 4, + 12 + ], + "all_assertion_killed": true, + "zero_errors": true, + "rule": "Earlier source-bound observations reused after specific predicate/ordinary-source applicability; not a single final-source full campaign", + "production_scanner_or_replay_mutants": false + } + }, + "predecessor_metadata": "evidence/pre-review-identity-metadata/", + "method_inventory_parts": { + "wrapper_reused": 31, + "real_lean_reused": 9, + "harness_prior": 20, + "harness_new_identity": 7 + }, + "unchanged_production_mutation_definitions": 25, + "source_binding_origin": "evidence/final-review-identity/SOURCE_COMPOSITION.json", + "source_binding_scope": "Actual combined changed/runtime sources listed in Root source-composition-final.json; other retained source-parent objects and predecessor evidence remain exact. This is scoped composition, not a fresh full-suite run.", + "source_composition_record": "evidence/final-review-identity/SOURCE_COMPOSITION.json", + "composition_partition": { + "identity_functions_classes_AST_exact": true, + "manifest_68_MUTATIONS_literal_exact": "NOT_APPLICABLE", + "evidence": "evidence/final-review-identity/SOURCE_COMPOSITION.json" + }, + "source_composition_record_sha256": "4ae680e692f96730089a369457462066269a0386b50a595936813e39fbdad675" + } + }, + "source_composition_predecessor": { + "path": "evidence/final-review-identity/SOURCE_COMPOSITION.json", + "sha256": "4ae680e692f96730089a369457462066269a0386b50a595936813e39fbdad675", + "retained_unchanged": true + }, + "not_run_this_landing": [ + "python3 mutations.py --output evidence/g0-mutations.json", + "python3 mutations.py --group wrapper --output evidence/g0-wrapper-mutations-current.json", + "project Math-core replay" + ], + "tip_sync": { + "method": "git rebase --onto f3f1b517 81acc060 445cc38f. A direct cherry-pick of 445cc38f onto f3f1b517 conflicted modify/delete because the contribution is absent from main. The rebase replayed the seven contribution commits, including the patch, with no merge commit. The replayed patch diff matches the original am diff. The full tree diverged from 3d3d5828 because main moved. kernel_replay path content matches the prior am commit.", + "main": "f3f1b517b0821ffdd8e08f472d91a304e625f420", + "replayed_patch_commit": "994c1217e51970f94076be0ba84c8818c5c82bf3", + "replayed_patch_parent": "0e685ca7d5408b8e09fb055fab66a6e514da7b4c", + "replayed_patch_tree": "9b27926bf3f36891105a2894ec8c5cc36dd1aa86", + "prior_am_commit": "445cc38f11cc637f3fd739382885f4aa88a1b1d0", + "prior_am_tree": "3d3d58285e606752e94f7c64f5d6c591f53c4cfa", + "patch_diff_matches_prior_am": true, + "kernel_replay_path_matches_prior_am_commit": true, + "full_tree_matches_prior_am": false, + "linear": true, + "merge_commit_onto_tip": false + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/fixture-g2-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/fixture-g2-rejection.json new file mode 100644 index 000000000..872a24d26 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/fixture-g2-rejection.json @@ -0,0 +1,6 @@ +{ + "returncode": 1, + "stdout": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:4:0: error: don't know how to synthesize implicit argument `\u03b1`\n @discard CommandElabM ?kResultTy\u271d ReaderT.instFunctorOfMonad do\n let __do_lift \u2190 getEnv\n match __do_lift.find? `unapprovedKernelReplayFixture with\n | some (ConstantInfo.axiomInfo val) =>\n Lean.throwError (toMessageData \"G2 fixture policy: unapproved axiom unapprovedKernelReplayFixture\")\n | x => Lean.throwError (toMessageData \"fixture missing its axiom\")\ncontext:\n\u22a2 Type\n/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:6:6: error: don't know how to synthesize implicit argument `\u03b1`\n @Lean.throwError CommandElabM ?kResultTy\u271d instMonadCommandElabM\n { toMonadExceptOf := instMonadExceptOfExceptionCommandElabM, toMonadRef := instMonadRefCommandElabM,\n toAddErrorMessageContext := instAddErrorMessageContextCommandElabM }\n (toMessageData \"fixture missing its axiom\")\ncontext:\nx\u271d : Option ConstantInfo\n\u22a2 Type\n/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:7:2: error: don't know how to synthesize implicit argument `\u03b1`\n @Lean.throwError CommandElabM ?kResultTy\u271d instMonadCommandElabM\n { toMonadExceptOf := instMonadExceptOfExceptionCommandElabM, toMonadRef := instMonadRefCommandElabM,\n toAddErrorMessageContext := instAddErrorMessageContextCommandElabM }\n (toMessageData \"G2 fixture policy: unapproved axiom unapprovedKernelReplayFixture\")\ncontext:\nval\u271d : AxiomVal\n\u22a2 Type\n", + "stderr": "", + "scope": "one explicit unapproved fixture axiom; not a production all-declaration G2 auditor" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-additional-tests.json b/cbz/contributions/math514/kernel_replay/evidence/g0-additional-tests.json new file mode 100644 index 000000000..b2a013e6e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-additional-tests.json @@ -0,0 +1,10 @@ +{ + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_cli_prepare_and_run (test_real_lean.RealLeanTests.test_cli_prepare_and_run) ... ok\n\n----------------------------------------------------------------------\nRan 2 tests in 2.566s\n\nOK\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-applicable-tests.json b/cbz/contributions/math514/kernel_replay/evidence/g0-applicable-tests.json new file mode 100644 index 000000000..669169271 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-applicable-tests.json @@ -0,0 +1,30 @@ +{ + "status": "PASS", + "applicable_tests": 27, + "single_full_suite_claim": false, + "evidence_reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: completed applicable verification reused on unchanged material; new tests only were executed after the 25-test run", + "runs": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-tests.json", + "sha256": "0b3e0becb53748658be33635a7747a4e412bfdc56110161e8065f5329f97bfe7", + "tests_run": 25, + "successful": true + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-additional-tests.json", + "sha256": "d59244deb8d1b5d254c8196524fef7ae8f194b3719679e1f6ec2b96cfffba5aa", + "tests_run": 2, + "successful": true + } + ], + "production_bindings": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-initial-mutations.json b/cbz/contributions/math514/kernel_replay/evidence/g0-initial-mutations.json new file mode 100644 index 000000000..6f70f7a15 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-initial-mutations.json @@ -0,0 +1,324 @@ +{ + "threshold": 1.0, + "planned": 15, + "executed": 15, + "killed": 11, + "ok": false, + "results": [ + { + "name": "empty-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "95cb37da9bd7fdff57bc10ad88650005fbb533df9a16e806b5016f85c531bc0e", + "tests": { + "tests_run": 15, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-rnfhctcx/kernel_replay/tests/test_kernel_replay.py\", line 56, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 15 tests in 0.579s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-rnfhctcx/kernel_replay/tests/test_kernel_replay.py\", line 56, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 15 tests in 0.579s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-source-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "SURVIVED", + "returncode": 0, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "f17c766aedc6b692bf335c75e6b2b9089f7c6faeb291d30fb7d2025f19d02e1f", + "tests": { + "tests_run": 15, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 15 tests in 0.602s\n\nOK\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 15 tests in 0.602s\n\nOK\n", + "stderr": "" + }, + { + "name": "ignore-compiled-parts-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "SURVIVED", + "returncode": 0, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "849115415a6393d1be2f0004c62560ba883a0194a655c2fc78a0ff1a24b49af4", + "tests": { + "tests_run": 15, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 15 tests in 0.647s\n\nOK\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 15 tests in 0.647s\n\nOK\n", + "stderr": "" + }, + { + "name": "ignore-tool-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "SURVIVED", + "returncode": 0, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "c33b134b765880bf9a44f5de5ef70116d8106ccee3384be70435a510de437273", + "tests": { + "tests_run": 15, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 15 tests in 0.572s\n\nOK\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 15 tests in 0.572s\n\nOK\n", + "stderr": "" + }, + { + "name": "ignore-nonzero-exit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "e4cb749f1a696ee01da2e2589cdb2fa21f41a93e9376d94997a6fc3182fe8d61", + "tests": { + "tests_run": 15, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-5pski8pn/kernel_replay/tests/test_kernel_replay.py\", line 94, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 15 tests in 0.608s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-5pski8pn/kernel_replay/tests/test_kernel_replay.py\", line 94, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 15 tests in 0.608s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-completion-marker", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "7fb5be84f00c04c541ad6390bed149da413288a99481d8b586736e5073097663", + "tests": { + "tests_run": 15, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-w8vl7zvo/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-w8vl7zvo/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 15 tests in 0.644s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-w8vl7zvo/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-w8vl7zvo/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 15 tests in 0.644s\n\nFAILED (failures=2)\n", + "stderr": "" + }, + { + "name": "ignore-timeout", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "4c35b7d33bbd4b54222ae9b5bfbaecd056aa31c8d6b37823175435fcb61c3227", + "tests": { + "tests_run": 15, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-csuy2t7p/kernel_replay/tests/test_kernel_replay.py\", line 105, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 15 tests in 5.461s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-csuy2t7p/kernel_replay/tests/test_kernel_replay.py\", line 105, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 15 tests in 5.461s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-memory-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "a74024c8f8274bf67ea7c032bf35ac1ccf339decf5f10227fb142cb48fe4ffdf", + "tests": { + "tests_run": 15, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/tests/test_kernel_replay.py\", line 109, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:41.390010+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:41.392941+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7684, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T17:48:41.408953+00:00', 'elapsed_seconds': 0.016012048000447976}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/kernel_replay.py', 'sha256': 'a74024c8f8274bf67ea7c032bf35ac1ccf339decf5f10227fb142cb48fe4ffdf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:41.410509+00:00'}\n\n----------------------------------------------------------------------\nRan 15 tests in 0.638s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/tests/test_kernel_replay.py\", line 109, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:41.390010+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:41.392941+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7684, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T17:48:41.408953+00:00', 'elapsed_seconds': 0.016012048000447976}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/evidence/tmpouxlmv5r/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/kernel_replay.py', 'sha256': 'a74024c8f8274bf67ea7c032bf35ac1ccf339decf5f10227fb142cb48fe4ffdf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4fafuyml/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:41.410509+00:00'}\n\n----------------------------------------------------------------------\nRan 15 tests in 0.638s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "truncate-module-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "267a06a2525dcad19fe561c6f10a4107702bb9c9b076c0c0b0b91e19272a8637", + "tests": { + "tests_run": 15, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/tests/test_kernel_replay.py\", line 119, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:42.277111+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:42.280128+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7699, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:42.395394+00:00', 'elapsed_seconds': 0.11527025799932744}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/fake-lean', 'sha256': 'c522e76ab713e5867f9cdbed62b922cba0722a792ab2be0bcb65a231de851f70'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/kernel_replay.py', 'sha256': '267a06a2525dcad19fe561c6f10a4107702bb9c9b076c0c0b0b91e19272a8637'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:42.397212+00:00'}\n\n----------------------------------------------------------------------\nRan 15 tests in 0.542s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/tests/test_kernel_replay.py\", line 119, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:42.277111+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:42.280128+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7699, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:42.395394+00:00', 'elapsed_seconds': 0.11527025799932744}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/fake-lean', 'sha256': 'c522e76ab713e5867f9cdbed62b922cba0722a792ab2be0bcb65a231de851f70'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/evidence/tmpj6_4f7t2/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/kernel_replay.py', 'sha256': '267a06a2525dcad19fe561c6f10a4107702bb9c9b076c0c0b0b91e19272a8637'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-b_rb_39m/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:42.397212+00:00'}\n\n----------------------------------------------------------------------\nRan 15 tests in 0.542s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "concurrent-module-processes", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "a68bd0da5012a093b4ae1e12f37a684e8cdf75d6f18e35f5d82002add9db790b", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/tests/test_kernel_replay.py\", line 119, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:42.755648+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:42.763935+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7707, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:42.881348+00:00', 'elapsed_seconds': 0.11741518799954065}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:42.764336+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7708, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T17:48:42.802750+00:00', 'elapsed_seconds': 0.03841593000015564}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean', 'sha256': '0b1542fe62148efa7222a473306c75259afe2389698b2654b62512c61ee7f634'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/kernel_replay.py', 'sha256': 'a68bd0da5012a093b4ae1e12f37a684e8cdf75d6f18e35f5d82002add9db790b'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:42.883915+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.138s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/tests/test_kernel_replay.py\", line 119, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:42.755648+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:42.763935+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7707, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:42.881348+00:00', 'elapsed_seconds': 0.11741518799954065}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:42.764336+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 7708, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T17:48:42.802750+00:00', 'elapsed_seconds': 0.03841593000015564}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/fake-lean', 'sha256': '0b1542fe62148efa7222a473306c75259afe2389698b2654b62512c61ee7f634'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/evidence/tmp2lzuz_6s/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/kernel_replay.py', 'sha256': 'a68bd0da5012a093b4ae1e12f37a684e8cdf75d6f18e35f5d82002add9db790b'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-j0g7nf03/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:42.883915+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.138s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "skip-kernel-replay", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/tests/test_real_lean.py\", line 45, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:44.410997+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:44.414276+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}], 'pid': 7754, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:44.682764+00:00', 'elapsed_seconds': 0.2684936320001725}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/kernel_replay.py', 'sha256': '1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/ExactReplay.lean', 'sha256': '77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:44.684845+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 1.714s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/tests/test_real_lean.py\", line 45, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:44.410997+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:44.414276+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}], 'pid': 7754, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:44.682764+00:00', 'elapsed_seconds': 0.2684936320001725}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/kernel_replay.py', 'sha256': '1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-eyxl58t1/kernel_replay/ExactReplay.lean', 'sha256': '77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:44.684845+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 1.714s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "prefix-expansion", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "472a0c92ab568d849ba0d0e52f16347f3512e7f6cfcd6d89d78b9f582b9a0763", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... FAIL\n\n======================================================================\nFAIL: test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-6lyg0nng/kernel_replay/tests/test_real_lean.py\", line 80, in test_exact_module_no_prefix_glob\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 2.036s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... FAIL\n\n======================================================================\nFAIL: test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-6lyg0nng/kernel_replay/tests/test_real_lean.py\", line 80, in test_exact_module_no_prefix_glob\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 2.036s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "untrusted-checker-search-path", + "file": "kernel_replay.py", + "test": "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac", + "mutated_sha256": "3604b9067943b83f67397d0a75dc8f0d82b745c26db54caed22189070c19017f", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... FAIL\n\n======================================================================\nFAIL: test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ksesh1z2/kernel_replay/tests/test_real_lean.py\", line 86, in test_user_lean_path_cannot_shadow_checker\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 1.333s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... FAIL\n\n======================================================================\nFAIL: test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ksesh1z2/kernel_replay/tests/test_real_lean.py\", line 86, in test_user_lean_path_cannot_shadow_checker\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 1.333s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "exported-part-only", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "outcome": "SURVIVED", + "returncode": 0, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "443d9ae2a760b4587461eab2d21896628344a620987d4e9de760c643ff315be2", + "tests": { + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 1 test in 3.027s\n\nOK\n" + }, + "stdout": "test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... ok\n\n----------------------------------------------------------------------\nRan 1 test in 3.027s\n\nOK\n", + "stderr": "" + }, + { + "name": "preload-target-self-reference", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/tests/test_real_lean.py\", line 45, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:52.592596+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:52.595946+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}], 'pid': 8045, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:54.929546+00:00', 'elapsed_seconds': 2.3336091460005264}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/kernel_replay.py', 'sha256': '1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/ExactReplay.lean', 'sha256': '930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:54.932220+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 3.507s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/tests/test_real_lean.py\", line 45, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:48:52.592596+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:48:52.595946+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}], 'pid': 8045, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:48:54.929546+00:00', 'elapsed_seconds': 2.3336091460005264}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': 'd7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': '5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/kernel_replay.py', 'sha256': '1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-fknjt366/kernel_replay/ExactReplay.lean', 'sha256': '930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:48:54.932220+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 3.507s\n\nFAILED (failures=1)\n", + "stderr": "" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-mutations.json b/cbz/contributions/math514/kernel_replay/evidence/g0-mutations.json new file mode 100644 index 000000000..04eaca51c --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-mutations.json @@ -0,0 +1,345 @@ +{ + "threshold": 1.0, + "planned": 16, + "executed": 16, + "killed": 16, + "ok": true, + "results": [ + { + "name": "empty-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "c20b4aaacfaae0fc4acc45a2d697e16a5670173889a99129d1068baed8551d2b", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ajs_md7p/kernel_replay/tests/test_kernel_replay.py\", line 56, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 17 tests in 0.585s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ajs_md7p/kernel_replay/tests/test_kernel_replay.py\", line 56, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 17 tests in 0.585s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "allow-artifact-symlink", + "file": "kernel_replay.py", + "test": "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "78a0d048f9b362aed5b7243a59da04a2160234461213627800516b5b7c71e296", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... FAIL\n\n======================================================================\nFAIL: test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/test_real_lean.py\", line 107, in test_real_private_body_cannot_hide_behind_olean_symlink\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:14.818262+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:14.821967+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9725, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:15.897498+00:00', 'elapsed_seconds': 1.0755437139996502}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/symlink-negative'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/kernel_replay.py', 'sha256': '78a0d048f9b362aed5b7243a59da04a2160234461213627800516b5b7c71e296'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:15.899916+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.133s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... FAIL\n\n======================================================================\nFAIL: test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/test_real_lean.py\", line 107, in test_real_private_body_cannot_hide_behind_olean_symlink\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:14.818262+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:14.821967+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9725, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:15.897498+00:00', 'elapsed_seconds': 1.0755437139996502}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/symlink-negative'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/kernel_replay.py', 'sha256': '78a0d048f9b362aed5b7243a59da04a2160234461213627800516b5b7c71e296'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:15.899916+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.133s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-source-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "6c74d8bc5d4fb8958540b617e540d89962348b85701c58550b7fa8c5b588cd52", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-bltslxh5/kernel_replay/tests/test_kernel_replay.py\", line 96, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-bltslxh5/kernel_replay/tests/test_kernel_replay.py\", line 96, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-compiled-parts-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "580dc617d2ba08c0d0d4d4f15b9dcf930c88730388d89d2dfd97a614d1b6c711", + "tests": { + "tests_run": 17, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 110, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 103, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 110, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 103, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=2)\n", + "stderr": "" + }, + { + "name": "ignore-tool-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "a5f42c9dffd884cc72c5b29ab522f8f7c1554c75fd7aef898b56ef543ebdafd7", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u95lytlt/kernel_replay/tests/test_kernel_replay.py\", line 117, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.588s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u95lytlt/kernel_replay/tests/test_kernel_replay.py\", line 117, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.588s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-nonzero-exit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "25fc542a9e5be4e71c2bb0f13dacf9778fb3ce696affe2c6c94b22509243cfeb", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-3988xbim/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.597s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-3988xbim/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.597s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-completion-marker", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "45a0b4cdd1a062270ca2a3dc3f96937fd0b754020adf1298c04f77cd1a9432af", + "tests": { + "tests_run": 17, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.587s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.587s\n\nFAILED (failures=2)\n", + "stderr": "" + }, + { + "name": "ignore-timeout", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "d5259e8dfc1f567b5bff1a4489056a2020ab1bfa350ebb01abd22130276e2dd5", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-7ab4sdae/kernel_replay/tests/test_kernel_replay.py\", line 132, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 17 tests in 5.408s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-7ab4sdae/kernel_replay/tests/test_kernel_replay.py\", line 132, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 17 tests in 5.408s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-memory-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "1dfb7f0795deba49cd263f4322550f9bb0176a3e59e86ddc59d6afe63fe8d775", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:24.878644+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:24.882815+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9806, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T17:52:24.899440+00:00', 'elapsed_seconds': 0.0166251620003095}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/kernel_replay.py', 'sha256': '1dfb7f0795deba49cd263f4322550f9bb0176a3e59e86ddc59d6afe63fe8d775'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:24.901171+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.594s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:24.878644+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:24.882815+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9806, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T17:52:24.899440+00:00', 'elapsed_seconds': 0.0166251620003095}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/kernel_replay.py', 'sha256': '1dfb7f0795deba49cd263f4322550f9bb0176a3e59e86ddc59d6afe63fe8d775'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:24.901171+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.594s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "truncate-module-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "7c87381f4be61e4fdc490b5bd003937d19e0a708fd3e6fad827c6dbaa72b6e74", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:25.657979+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:25.661857+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9821, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:25.776863+00:00', 'elapsed_seconds': 0.11500879599952896}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', 'sha256': 'ae3646e87b900b7be8f82899f997899973befa59e18ad3307b55b4db59012183'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/kernel_replay.py', 'sha256': '7c87381f4be61e4fdc490b5bd003937d19e0a708fd3e6fad827c6dbaa72b6e74'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:25.779229+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.523s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:25.657979+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:25.661857+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9821, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:25.776863+00:00', 'elapsed_seconds': 0.11500879599952896}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', 'sha256': 'ae3646e87b900b7be8f82899f997899973befa59e18ad3307b55b4db59012183'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/kernel_replay.py', 'sha256': '7c87381f4be61e4fdc490b5bd003937d19e0a708fd3e6fad827c6dbaa72b6e74'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:25.779229+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.523s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "concurrent-module-processes", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "694cb0cf895869bb5e8d77a43ca8cce0b14e8e3c35b66780421914f17e52818f", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:26.138025+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144168+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9829, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:26.260348+00:00', 'elapsed_seconds': 0.11618071599968971}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144547+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9830, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T17:52:26.179114+00:00', 'elapsed_seconds': 0.03456953000022622}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', 'sha256': 'f387a1660d42da50856a5ba7784fe8846871072f5dec3ceae866a878bf49ea18'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/kernel_replay.py', 'sha256': '694cb0cf895869bb5e8d77a43ca8cce0b14e8e3c35b66780421914f17e52818f'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:26.262959+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.133s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:26.138025+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144168+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9829, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:26.260348+00:00', 'elapsed_seconds': 0.11618071599968971}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144547+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9830, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T17:52:26.179114+00:00', 'elapsed_seconds': 0.03456953000022622}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', 'sha256': 'f387a1660d42da50856a5ba7784fe8846871072f5dec3ceae866a878bf49ea18'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/kernel_replay.py', 'sha256': '694cb0cf895869bb5e8d77a43ca8cce0b14e8e3c35b66780421914f17e52818f'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:26.262959+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.133s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "skip-kernel-replay", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:27.400980+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:27.405583+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 9863, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:27.675154+00:00', 'elapsed_seconds': 0.26957460299945524}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean', 'sha256': '77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:27.677429+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 1.338s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:27.400980+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:27.405583+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 9863, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:27.675154+00:00', 'elapsed_seconds': 0.26957460299945524}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean', 'sha256': '77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:27.677429+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 1.338s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "prefix-expansion", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "472a0c92ab568d849ba0d0e52f16347f3512e7f6cfcd6d89d78b9f582b9a0763", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... FAIL\n\n======================================================================\nFAIL: test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-knm94682/kernel_replay/tests/test_real_lean.py\", line 81, in test_exact_module_no_prefix_glob\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 1.919s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... FAIL\n\n======================================================================\nFAIL: test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-knm94682/kernel_replay/tests/test_real_lean.py\", line 81, in test_exact_module_no_prefix_glob\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 1.919s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "untrusted-checker-search-path", + "file": "kernel_replay.py", + "test": "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "6820debaca0a9a0e1ac0c6b4f0922096eb23957042ff98792a1329532569d658", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... FAIL\n\n======================================================================\nFAIL: test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-l16hub7o/kernel_replay/tests/test_real_lean.py\", line 87, in test_user_lean_path_cannot_shadow_checker\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 2.543s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... FAIL\n\n======================================================================\nFAIL: test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-l16hub7o/kernel_replay/tests/test_real_lean.py\", line 87, in test_user_lean_path_cannot_shadow_checker\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 2.543s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "exported-part-only", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "443d9ae2a760b4587461eab2d21896628344a620987d4e9de760c643ff315be2", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/test_real_lean.py\", line 52, in test_private_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:34.568213+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:34.576467+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9982, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:36.527793+00:00', 'elapsed_seconds': 1.951343576999534}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean', 'sha256': '443d9ae2a760b4587461eab2d21896628344a620987d4e9de760c643ff315be2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:36.531572+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 4.079s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/test_real_lean.py\", line 52, in test_private_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:34.568213+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:34.576467+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9982, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:36.527793+00:00', 'elapsed_seconds': 1.951343576999534}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean', 'sha256': '443d9ae2a760b4587461eab2d21896628344a620987d4e9de760c643ff315be2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:36.531572+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 4.079s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "preload-target-self-reference", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:37.672043+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:37.675603+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 10021, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:39.001302+00:00', 'elapsed_seconds': 1.3257151409998187}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean', 'sha256': '930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:39.003923+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.388s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:37.672043+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:37.675603+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 10021, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:39.001302+00:00', 'elapsed_seconds': 1.3257151409998187}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean', 'sha256': '930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:39.003923+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.388s\n\nFAILED (failures=1)\n", + "stderr": "" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-additional-tests.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-additional-tests.json new file mode 100644 index 000000000..d39f7601c --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-additional-tests.json @@ -0,0 +1,10 @@ +{ + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_resource_oversized_cli_arguments_emit_non_green_report (test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\n\n----------------------------------------------------------------------\nRan 2 tests in 0.118s\n\nOK\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-applicable.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-applicable.json new file mode 100644 index 000000000..042a6d815 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-applicable.json @@ -0,0 +1,217 @@ +{ + "generation": "resource-boundary-v2", + "status": "PASS_AFFECTED_CHECKS_WITH_EXPLICIT_REUSE", + "single_full_suite_claim": false, + "fresh_distinct_tests": 32, + "fresh_invocations": 33, + "new_resource_methods": 14, + "fresh_runs": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-wrapper-tests.json", + "sha256": "97279cbc6f7b36950ae1f80a71f6e45b974fa938f91f36c7861a08d4d2495c5d", + "tests_run": 30, + "test_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.MutationHarnessTests.test_only_clean_assertion_failure_is_a_kill" + ], + "successful": true, + "errors": 0, + "assertion_failures": 0 + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-additional-tests.json", + "sha256": "0c0fa3d84abd760a197038e1ee90d00b23bd30d6574c964ea89fc3304e429865", + "tests_run": 2, + "test_ids": [ + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report" + ], + "successful": true, + "errors": 0, + "assertion_failures": 0 + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-preexec-test.json", + "sha256": "ce04faf4ee8b2e3c8967d30dd4c341c013370641dc79b0644c53cb5e01825561", + "tests_run": 1, + "test_ids": [ + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured" + ], + "successful": true, + "errors": 0, + "assertion_failures": 0 + } + ], + "fresh_test_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.MutationHarnessTests.test_only_clean_assertion_failure_is_a_kill" + ], + "reused_real_lean_tests": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "reused_test_count": 9, + "combined_distinct_applicable_tests": 41, + "combined_count_is_not_a_fresh_full_run": true, + "prior_generation": { + "wrapper_source": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + "tests_source": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/test_kernel_replay.py", + "sha256": "8e0cb7916804dc5bc0e07b0f4a70bbb271e1a14c00b900519ac61e503ced97a6" + }, + "mutations_source": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/mutations.py", + "sha256": "9826fe1eebd2406367e6db297e6e744b00fd3e3181a7e17d35fad0bf9f353d7f" + }, + "applicable_test_count": 27, + "mutation_count": 16, + "test_receipt": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-applicable-tests.json", + "sha256": "78174abccb5d594df9001e0d28bedfd84575babe02d1bd91068bb6f24d1388a0" + }, + "mutation_receipt": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-mutations.json", + "sha256": "8deed12fc5a02ea8e61d4b3ac9d9fdd849ff0620d19b565f54f6919aa0819fd8" + } + }, + "mutations": { + "fresh_receipt": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-mutations.json", + "sha256": "d44239be7406c41c7fa26d0db419081e3d572a54b61b493c847945ba93e06445" + }, + "fresh_planned": 19, + "fresh_executed": 19, + "fresh_killed": 19, + "original_wrapper_cases_rerun": 10, + "new_resource_cases": 9, + "original_real_cases_reused": [ + "allow-artifact-symlink", + "skip-kernel-replay", + "prefix-expansion", + "untrusted-checker-search-path", + "exported-part-only", + "preload-target-self-reference" + ], + "memory_oracle_refresh": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json", + "sha256": "5addeb6e0c8d6f5f6afb1d9c42c623c6165adaaa29ab8fb3af2b42f18f5e5fc4" + }, + "distinct_applicable_cases": 25, + "not_a_single_fresh_25_case_run": true + }, + "source_bindings": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/mutations.py", + "sha256": "5fd6fbbfd2aab463f1c2c017af942762ae798a67f3d1fc47001bc317b8fee0a0" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/run_tests.py", + "sha256": "b0a7f1c508462c21688de8d5ec70384d40f780c342814d97589f0b45f2d7620b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py", + "sha256": "2ccdd956379bf3ddbc479a10604a10db7c26acee96c54c869c7a6bafc0f2dfeb" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_real_lean.py", + "sha256": "51ab210da908b4e3d74fe179c41a414abf4c53e88458db33f7934ae0010337d7" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_mutation_harness.py", + "sha256": "ca90d5c5c8e48d163d35b2170f2e7f08352863c23bd73f1b383a73a2dcc16ff3" + } + ], + "reuse_rationale": "ExactReplay.lean, real Lean tests/fixtures, normal child command/cwd/env, checker precedence, module/part resolution, bindings, and G2 separation are unchanged. Changed resource validation/lifecycle paths have fresh wrapper tests and mutants. Owner AGENTS.md forbids repeating applicable completed evidence merely for handoff; provider review is a separate process obligation.", + "red_receipts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-red-initial.json", + "sha256": "13575852577af2a53dd232d190a58a520ecea9922caa53df6c83277d5dede6e7" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-red.json", + "sha256": "0a5efe4eddf98a21b11781edee16e4b5ea8533da1dabb3994c2559169a74fb56" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-cleanup-red.json", + "sha256": "616571de0d9377372fd48ce4c0e425cb69b38f164bf44df5b5f814d7f6576de6" + } + ], + "red_interpretation": "Initial ten-test probe included two test indexing errors and is retained as non-green development evidence. After fixing test assertions, the same ten tests gave 18 assertion failures/zero errors; two further cleanup/scheduling tests gave five assertion failures/zero errors against pre-repair wrapper.", + "project_or_real_lean_replayed": false +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-cleanup-red.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-cleanup-red.json new file mode 100644 index 000000000..f008a81e2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-cleanup-red.json @@ -0,0 +1,10 @@ +{ + "tests_run": 2, + "assertion_failures": 5, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... FAIL\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... \n test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='OverflowError') ... FAIL\n test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='ValueError') ... FAIL\n test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='SubprocessError') ... FAIL\n test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='OSError') ... FAIL\n\n======================================================================\nFAIL: test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 209, in run_one\n result['returncode'] = p.wait()\n ^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1198, in _execute_mock_call\n raise effect\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1198, in _execute_mock_call\n raise effect\nsubprocess.TimeoutExpired: Command 'fake-child' timed out after 0.05 seconds\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 312, in test_resource_unreaped_child_stops_further_modules\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: TimeoutExpired: Command 'fake-child' timed out after 0.05 seconds\n\n======================================================================\nFAIL: test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nsubprocess.TimeoutExpired: Command 'fake-child' timed out after 0.05 seconds\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 209, in run_one\n result['returncode'] = p.wait()\n ^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nOverflowError: cleanup rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 328, in test_resource_cleanup_exceptions_remain_structured\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: cleanup rejected\n\n======================================================================\nFAIL: test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 330, in test_resource_cleanup_exceptions_remain_structured\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:20:16.291054+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/tmpy7a2b1fj'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/tmpy7a2b1fj/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/tmpy7a2b1fj/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'error': 'ValueError: cleanup rejected', 'ended': '2026-10-29T19:20:16.294422+00:00'}\n\n======================================================================\nFAIL: test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nsubprocess.TimeoutExpired: Command 'fake-child' timed out after 0.05 seconds\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 209, in run_one\n result['returncode'] = p.wait()\n ^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nsubprocess.SubprocessError: cleanup rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 328, in test_resource_cleanup_exceptions_remain_structured\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: SubprocessError: cleanup rejected\n\n======================================================================\nFAIL: test_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 331, in test_resource_cleanup_exceptions_remain_structured\n self.assertEqual(r['results'][0]['status'], 'ERROR')\nAssertionError: 'FAIL' != 'ERROR'\n- FAIL\n+ ERROR\n\n\n----------------------------------------------------------------------\nRan 2 tests in 0.033s\n\nFAILED (failures=5)\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json new file mode 100644 index 000000000..65743197e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json @@ -0,0 +1,31 @@ +{ + "group": "wrapper", + "threshold": 1.0, + "planned": 1, + "executed": 1, + "killed": 1, + "ok": true, + "results": [ + { + "name": "ignore-memory-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "40396c532f2e078a1065f797066b6381f6e0870cc1112f168346c996926acc5c", + "tests": { + "tests_run": 30, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_oversized_cli_arguments_emit_non_green_report (test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ypfpxmzo/kernel_replay/tests/test_kernel_replay.py\", line 141, in test_memory_limit_applied\n self.assertEqual(json.loads(r['results'][0]['stdout'].splitlines()[0]), [268435456, 268435456])\nAssertionError: Lists differ: [-1, -1] != [268435456, 268435456]\n\nFirst differing element 0:\n-1\n268435456\n\n- [-1, -1]\n+ [268435456, 268435456]\n\n----------------------------------------------------------------------\nRan 30 tests in 0.885s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_oversized_cli_arguments_emit_non_green_report (test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ypfpxmzo/kernel_replay/tests/test_kernel_replay.py\", line 141, in test_memory_limit_applied\n self.assertEqual(json.loads(r['results'][0]['stdout'].splitlines()[0]), [268435456, 268435456])\nAssertionError: Lists differ: [-1, -1] != [268435456, 268435456]\n\nFirst differing element 0:\n-1\n268435456\n\n- [-1, -1]\n+ [268435456, 268435456]\n\n----------------------------------------------------------------------\nRan 30 tests in 0.885s\n\nFAILED (failures=1)\n", + "stderr": "" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-mutations.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-mutations.json new file mode 100644 index 000000000..793580b25 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-mutations.json @@ -0,0 +1,409 @@ +{ + "group": "wrapper", + "threshold": 1.0, + "planned": 19, + "executed": 19, + "killed": 19, + "ok": true, + "results": [ + { + "name": "empty-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "fab7d6f4688abfc56181700067c53e7152fa9b0fe1ca87e372867e47cd57ade5", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-8uany7kh/kernel_replay/tests/test_kernel_replay.py\", line 60, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 29 tests in 0.804s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-8uany7kh/kernel_replay/tests/test_kernel_replay.py\", line 60, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 29 tests in 0.804s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-source-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "46708ef633af87ba8b09e08d2872321c0cf92f56e89e3524d742be4c6acac863", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e90afnto/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.838s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e90afnto/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.838s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-compiled-parts-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "4d0fb6586bb1a99743253c16d9f03a93267d89e0d839840788579cab6e3d656c", + "tests": { + "tests_run": 29, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 114, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 107, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.828s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 114, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 107, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.828s\n\nFAILED (failures=2)\n", + "stderr": "" + }, + { + "name": "ignore-tool-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "61e1c6d88b89b278e2cf11050f690f07aff317f8ca0e171a7dd96c312f323c30", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e9ykv7r0/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.756s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e9ykv7r0/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.756s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-nonzero-exit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "1587885f66c677c16db9006a59da836aee9830a01498b64d594d72f240a94e5d", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z48a7pck/kernel_replay/tests/test_kernel_replay.py\", line 125, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.798s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z48a7pck/kernel_replay/tests/test_kernel_replay.py\", line 125, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.798s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "ignore-completion-marker", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "562005c53e106abcf10f65548ae529e419de532508e44e78ad5c5403334f1797", + "tests": { + "tests_run": 29, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.810s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.810s\n\nFAILED (failures=2)\n", + "stderr": "" + }, + { + "name": "ignore-timeout", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "73e1605365c724893d10def4a498e589c6d3660109d0ecddb7a17612f54305b5", + "tests": { + "tests_run": 29, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... FAIL\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 268, in test_resource_timeout_kills_and_reaps_real_child\n self.assertLess(time.monotonic() - started, 3)\nAssertionError: 30.030747823999263 not less than 3\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 246, in run_one\n result['returncode'] = p.wait(timeout=None)\n ^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 29 tests in 35.624s\n\nFAILED (failures=3)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... FAIL\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 268, in test_resource_timeout_kills_and_reaps_real_child\n self.assertLess(time.monotonic() - started, 3)\nAssertionError: 30.030747823999263 not less than 3\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 246, in run_one\n result['returncode'] = p.wait(timeout=None)\n ^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 29 tests in 35.624s\n\nFAILED (failures=3)\n", + "stderr": "" + }, + { + "name": "ignore-memory-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "40396c532f2e078a1065f797066b6381f6e0870cc1112f168346c996926acc5c", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/tests/test_kernel_replay.py\", line 140, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:11.690239+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:11.693397+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16572, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T19:22:11.709442+00:00', 'elapsed_seconds': 0.016046875000029104}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/kernel_replay.py', 'sha256': '40396c532f2e078a1065f797066b6381f6e0870cc1112f168346c996926acc5c'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:11.711205+00:00'}\n\n----------------------------------------------------------------------\nRan 29 tests in 0.807s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/tests/test_kernel_replay.py\", line 140, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:11.690239+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:11.693397+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16572, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T19:22:11.709442+00:00', 'elapsed_seconds': 0.016046875000029104}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/evidence/tmpr9jf9zt0/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/kernel_replay.py', 'sha256': '40396c532f2e078a1065f797066b6381f6e0870cc1112f168346c996926acc5c'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akt56d_8/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:11.711205+00:00'}\n\n----------------------------------------------------------------------\nRan 29 tests in 0.807s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "truncate-module-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "f5d1bb661f8cf1f1f74843ca2311d6c8329634b9ef192cbcac4c412b3c8ccad7", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:12.720398+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:12.725178+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16591, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:12.841048+00:00', 'elapsed_seconds': 0.11587254999903962}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', 'sha256': 'd0bcb30fdab06b8f9e9bdd2851d756fc425325aecf62b02507e26f4488e437fa'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/kernel_replay.py', 'sha256': 'f5d1bb661f8cf1f1f74843ca2311d6c8329634b9ef192cbcac4c412b3c8ccad7'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:12.843538+00:00'}\n\n----------------------------------------------------------------------\nRan 29 tests in 0.696s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:12.720398+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:12.725178+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16591, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:12.841048+00:00', 'elapsed_seconds': 0.11587254999903962}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', 'sha256': 'd0bcb30fdab06b8f9e9bdd2851d756fc425325aecf62b02507e26f4488e437fa'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/kernel_replay.py', 'sha256': 'f5d1bb661f8cf1f1f74843ca2311d6c8329634b9ef192cbcac4c412b3c8ccad7'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:12.843538+00:00'}\n\n----------------------------------------------------------------------\nRan 29 tests in 0.696s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "concurrent-module-processes", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "d726f822ad28fd6e5eeb8e8488384d727301a09a1440e96959483736466fc48d", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:13.418366+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422372+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16604, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T19:22:13.457196+00:00', 'elapsed_seconds': 0.03482715499922051}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422799+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16603, 'stdout': 'CBZ_KERNEL_REPLAY_OK Other\\n', 'stdout_bytes': 27, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:13.538870+00:00', 'elapsed_seconds': 0.116069076999338}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', 'sha256': '48d1ba9ee3f82fa48adccf0ae77ec4bf0c07fa26844ba59584f9cdfccc7c6201'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/kernel_replay.py', 'sha256': 'd726f822ad28fd6e5eeb8e8488384d727301a09a1440e96959483736466fc48d'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:13.541349+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.131s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:13.418366+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422372+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16604, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T19:22:13.457196+00:00', 'elapsed_seconds': 0.03482715499922051}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422799+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16603, 'stdout': 'CBZ_KERNEL_REPLAY_OK Other\\n', 'stdout_bytes': 27, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:13.538870+00:00', 'elapsed_seconds': 0.116069076999338}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', 'sha256': '48d1ba9ee3f82fa48adccf0ae77ec4bf0c07fa26844ba59584f9cdfccc7c6201'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/kernel_replay.py', 'sha256': 'd726f822ad28fd6e5eeb8e8488384d727301a09a1440e96959483736466fc48d'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:13.541349+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.131s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "resource-ignore-memory-upper-bound", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "3a8223fde7a462b57c68fca074079d7af491c94621908eadfc27983cde12f970", + "tests": { + "tests_run": 1, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... \n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401) ... FAIL\n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.018s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... \n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401) ... FAIL\n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.018s\n\nFAILED (failures=2)\n", + "stderr": "" + }, + { + "name": "resource-ignore-inherited-memory-hard-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "8a5eee11955335be652e96c167c8ac26e4b225e3d85da23057538f4331e35748", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jzujgrqe/kernel_replay/tests/test_kernel_replay.py\", line 178, in test_resource_memory_hard_limit_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.014s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jzujgrqe/kernel_replay/tests/test_kernel_replay.py\", line 178, in test_resource_memory_hard_limit_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.014s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "resource-ignore-timeout-upper-bound", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "549382446fb2f7efdd12e560a6e5c535014fe3213ce9d1b84a8a987ffb63f736", + "tests": { + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... \n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 199, in test_resource_timeout_upper_bounds_before_spawn\n self.assertIn('timeout_seconds', r.get('error', ''))\nAssertionError: 'timeout_seconds' not found in 'OverflowError: int too large to convert to float'\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=3)\n" + }, + "stdout": "test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... \n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 199, in test_resource_timeout_upper_bounds_before_spawn\n self.assertIn('timeout_seconds', r.get('error', ''))\nAssertionError: 'timeout_seconds' not found in 'OverflowError: int too large to convert to float'\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=3)\n", + "stderr": "" + }, + { + "name": "resource-accept-boolean-timeout", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "02d4d36f864cc378e5232e9a720204f05a7ee01e260ee6b99d7059913d738c45", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... \n test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True) ... FAIL\n\n======================================================================\nFAIL: test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ury5k8a7/kernel_replay/tests/test_kernel_replay.py\", line 188, in test_resource_boolean_arguments_rejected\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.022s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... \n test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True) ... FAIL\n\n======================================================================\nFAIL: test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ury5k8a7/kernel_replay/tests/test_kernel_replay.py\", line 188, in test_resource_boolean_arguments_rejected\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.022s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "resource-drop-process-exception-normalization", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676", + "tests": { + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... \n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError') ... FAIL\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.190330+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'SubprocessError: spawn rejected', 'ended': '2026-10-29T19:22:14.194061+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.194481+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'OverflowError: spawn rejected', 'ended': '2026-10-29T19:22:14.197812+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.198095+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'ValueError: spawn rejected', 'ended': '2026-10-29T19:22:14.201405+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.025s\n\nFAILED (failures=3)\n" + }, + "stdout": "test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... \n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError') ... FAIL\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.190330+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'SubprocessError: spawn rejected', 'ended': '2026-10-29T19:22:14.194061+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.194481+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'OverflowError: spawn rejected', 'ended': '2026-10-29T19:22:14.197812+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.198095+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'ValueError: spawn rejected', 'ended': '2026-10-29T19:22:14.201405+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.025s\n\nFAILED (failures=3)\n", + "stderr": "" + }, + { + "name": "resource-unbounded-cleanup-wait", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "5eef14c78353a2bbf8269bf8ff627c04965d5c54542e3fab29cb0dd3d5284100", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 255, in run_one\n result['returncode'], result['cleanup'] = cleanup_child(p)\n ^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 207, in cleanup_child\n returncode = p.wait()\n ^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 255, in run_one\n result['returncode'], result['cleanup'] = cleanup_child(p)\n ^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 207, in cleanup_child\n returncode = p.wait()\n ^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "resource-skip-abnormal-cleanup", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "db1b708ce6f94bfb124904a7b69a9d3feb55c5659f10be7d1d2f8b48c4aab70c", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-dx6rpbq9/kernel_replay/tests/test_kernel_replay.py\", line 297, in test_resource_unreapable_child_cleanup_is_bounded\n self.assertEqual(result['status'], 'ERROR')\nAssertionError: 'TIMEOUT' != 'ERROR'\n- TIMEOUT\n+ ERROR\n\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-dx6rpbq9/kernel_replay/tests/test_kernel_replay.py\", line 297, in test_resource_unreapable_child_cleanup_is_bounded\n self.assertEqual(result['status'], 'ERROR')\nAssertionError: 'TIMEOUT' != 'ERROR'\n- TIMEOUT\n+ ERROR\n\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n", + "stderr": "" + }, + { + "name": "resource-overwrite-error-with-success", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "d45a3249fd12b9d952b6a61cefdffa089230779a948d80a8dfe83339b2b766b6", + "tests": { + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... \n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError') ... FAIL\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.030s\n\nFAILED (failures=4)\n" + }, + "stdout": "test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... \n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError') ... FAIL\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.030s\n\nFAILED (failures=4)\n", + "stderr": "" + }, + { + "name": "resource-continue-after-unreaped-child", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "471565b98a54f7476c9db79944679fba89e527dfeb76ad809079036913ec6333", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z9qkpxv4/kernel_replay/tests/test_kernel_replay.py\", line 314, in test_resource_unreaped_child_stops_further_modules\n self.assertEqual(len(r['results']), 1, 'must stop serial scheduling when child cleanup failed')\nAssertionError: 2 != 1 : must stop serial scheduling when child cleanup failed\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z9qkpxv4/kernel_replay/tests/test_kernel_replay.py\", line 314, in test_resource_unreaped_child_stops_further_modules\n self.assertEqual(len(r['results']), 1, 'must stop serial scheduling when child cleanup failed')\nAssertionError: 2 != 1 : must stop serial scheduling when child cleanup failed\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=1)\n", + "stderr": "" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-preexec-test.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-preexec-test.json new file mode 100644 index 000000000..000527b9f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-preexec-test.json @@ -0,0 +1,10 @@ +{ + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_resource_real_preexec_failure_is_structured (test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured) ... ok\n\n----------------------------------------------------------------------\nRan 1 test in 0.012s\n\nOK\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-red-initial.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-red-initial.json new file mode 100644 index 000000000..73151d4cc --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-red-initial.json @@ -0,0 +1,10 @@ +{ + "tests_run": 10, + "assertion_failures": 16, + "errors": 2, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... \n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401) ... FAIL\n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13) ... FAIL\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... FAIL\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... \n test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True) ... FAIL\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... \n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... \n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError') ... ERROR\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OSError') ... FAIL\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... \n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError') ... ERROR\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError') ... FAIL\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... FAIL\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... FAIL\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nERROR: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(r['results'][0]['status'], 'ERROR')\n ~~~~~~~~~~~~^^^\nIndexError: list index out of range\n\n======================================================================\nERROR: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertEqual(r['results'][0]['status'], 'ERROR')\n ~~~~~~~~~~~~^^^\nIndexError: list index out of range\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 178, in test_resource_memory_hard_limit_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 188, in test_resource_boolean_arguments_rejected\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 235, in run_manifest\n if not isinstance(timeout_seconds, (int, float)) or not math.isfinite(timeout_seconds) or timeout_seconds <= 0:\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nOverflowError: int too large to convert to float\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 196, in test_resource_timeout_upper_bounds_before_spawn\n r = self.resource_report(m, timeout=timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: int too large to convert to float\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 202, in run_one\n with subprocess.Popen(cmd, cwd=ROOT, env=env, stdout=stdout, stderr=stderr,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1198, in _execute_mock_call\n raise effect\nsubprocess.SubprocessError: spawn rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 212, in test_resource_spawn_exceptions_are_structured_errors\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: SubprocessError: spawn rejected\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 202, in run_one\n with subprocess.Popen(cmd, cwd=ROOT, env=env, stdout=stdout, stderr=stderr,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1198, in _execute_mock_call\n raise effect\nOverflowError: spawn rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 212, in test_resource_spawn_exceptions_are_structured_errors\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: spawn rejected\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(r['results'][0]['status'], 'ERROR')\nAssertionError: 'FAIL' != 'ERROR'\n- FAIL\n+ ERROR\n\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nOverflowError: wait rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 230, in test_resource_wait_errors_cannot_become_success\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: wait rejected\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nsubprocess.SubprocessError: wait rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 230, in test_resource_wait_errors_cannot_become_success\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: SubprocessError: wait rejected\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertEqual(r['results'][0]['status'], 'ERROR')\nAssertionError: 'FAIL' != 'ERROR'\n- FAIL\n+ ERROR\n\n\n======================================================================\nFAIL: test_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 252, in wait\n raise OverflowError('injected platform wait overflow')\nOverflowError: injected platform wait overflow\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 257, in test_resource_wait_error_kills_and_reaps_real_child\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: injected platform wait overflow\n\n======================================================================\nFAIL: test_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 271, in test_resource_timeout_kills_and_reaps_real_child\n self.assertTrue(result.get('cleanup', {}).get('reaped'))\nAssertionError: None is not true\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 295, in test_resource_unreapable_child_cleanup_is_bounded\n self.assertEqual(result['status'], 'ERROR')\nAssertionError: 'FAIL' != 'ERROR'\n- FAIL\n+ ERROR\n\n\n----------------------------------------------------------------------\nRan 10 tests in 0.431s\n\nFAILED (failures=16, errors=2)\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-red.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-red.json new file mode 100644 index 000000000..d634fe051 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-red.json @@ -0,0 +1,10 @@ +{ + "tests_run": 10, + "assertion_failures": 18, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... \n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401) ... FAIL\n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13) ... FAIL\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... FAIL\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... \n test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True) ... FAIL\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... \n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... \n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OSError') ... FAIL\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... \n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError') ... FAIL\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... FAIL\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... FAIL\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 178, in test_resource_memory_hard_limit_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 188, in test_resource_boolean_arguments_rejected\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 235, in run_manifest\n if not isinstance(timeout_seconds, (int, float)) or not math.isfinite(timeout_seconds) or timeout_seconds <= 0:\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nOverflowError: int too large to convert to float\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 196, in test_resource_timeout_upper_bounds_before_spawn\n r = self.resource_report(m, timeout=timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: int too large to convert to float\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 202, in run_one\n with subprocess.Popen(cmd, cwd=ROOT, env=env, stdout=stdout, stderr=stderr,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1198, in _execute_mock_call\n raise effect\nsubprocess.SubprocessError: spawn rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 212, in test_resource_spawn_exceptions_are_structured_errors\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: SubprocessError: spawn rejected\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 202, in run_one\n with subprocess.Popen(cmd, cwd=ROOT, env=env, stdout=stdout, stderr=stderr,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1198, in _execute_mock_call\n raise effect\nOverflowError: spawn rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 212, in test_resource_spawn_exceptions_are_structured_errors\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: spawn rejected\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:19:51.826543+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/tmpgiu7bbzw'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/tmpgiu7bbzw/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/tmpgiu7bbzw/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'error': 'ValueError: spawn rejected', 'ended': '2026-10-29T19:19:51.830936+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 215, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(r['results'][0]['status'], 'ERROR')\nAssertionError: 'FAIL' != 'ERROR'\n- FAIL\n+ ERROR\n\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nOverflowError: wait rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 231, in test_resource_wait_errors_cannot_become_success\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: wait rejected\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 233, in test_resource_wait_errors_cannot_become_success\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:19:51.843490+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/tmp0b39fcyg'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/tmp0b39fcyg/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/tmp0b39fcyg/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'error': 'ValueError: wait rejected', 'ended': '2026-10-29T19:19:51.847131+00:00'}\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1202, in _execute_mock_call\n raise result\nsubprocess.SubprocessError: wait rejected\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 231, in test_resource_wait_errors_cannot_become_success\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: SubprocessError: wait rejected\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 234, in test_resource_wait_errors_cannot_become_success\n self.assertEqual(r['results'][0]['status'], 'ERROR')\nAssertionError: 'FAIL' != 'ERROR'\n- FAIL\n+ ERROR\n\n\n======================================================================\nFAIL: test_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 241, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/kernel_replay.py\", line 206, in run_one\n result['returncode'] = p.wait(timeout=timeout_seconds)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 254, in wait\n raise OverflowError('injected platform wait overflow')\nOverflowError: injected platform wait overflow\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 259, in test_resource_wait_error_kills_and_reaps_real_child\n r = self.resource_report(m)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: OverflowError: injected platform wait overflow\n\n======================================================================\nFAIL: test_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 273, in test_resource_timeout_kills_and_reaps_real_child\n self.assertTrue(result.get('cleanup', {}).get('reaped'))\nAssertionError: None is not true\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py\", line 297, in test_resource_unreapable_child_cleanup_is_bounded\n self.assertEqual(result['status'], 'ERROR')\nAssertionError: 'FAIL' != 'ERROR'\n- FAIL\n+ ERROR\n\n\n----------------------------------------------------------------------\nRan 10 tests in 0.417s\n\nFAILED (failures=18)\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-resource-wrapper-tests.json b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-wrapper-tests.json new file mode 100644 index 000000000..150f9cec1 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-resource-wrapper-tests.json @@ -0,0 +1,10 @@ +{ + "tests_run": 30, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\ntest_only_clean_assertion_failure_is_a_kill (test_mutation_harness.MutationHarnessTests.test_only_clean_assertion_failure_is_a_kill) ... ok\n\n----------------------------------------------------------------------\nRan 30 tests in 0.811s\n\nOK\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/g0-tests.json b/cbz/contributions/math514/kernel_replay/evidence/g0-tests.json new file mode 100644 index 000000000..a435cc2b7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/g0-tests.json @@ -0,0 +1,10 @@ +{ + "tests_run": 25, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\ntest_only_clean_assertion_failure_is_a_kill (test_mutation_harness.MutationHarnessTests.test_only_clean_assertion_failure_is_a_kill) ... ok\ntest_driver_missing_request_and_binding_rejected (test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected) ... ok\ntest_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... ok\ntest_good_public_private_inductive_all_parts (test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts) ... ok\ntest_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... ok\ntest_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... ok\ntest_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... ok\ntest_unapproved_axiom_kernel_valid_but_independent_policy_rejects (test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects) ... ok\ntest_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... ok\n\n----------------------------------------------------------------------\nRan 25 tests in 7.975s\n\nOK\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/ALIASES.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/ALIASES.json new file mode 100644 index 000000000..8d7d94a89 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/ALIASES.json @@ -0,0 +1,1565 @@ +{ + "claim": "Portable copies preserve raw bytes; historical raw receipt paths are mapped here, not rewritten", + "copies": [ + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/run_tests.py", + "destination": "run_tests.py", + "bytes": 20838, + "sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/tests/test_mutation_harness.py", + "destination": "tests/test_mutation_harness.py", + "bytes": 31704, + "sha256": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/GRADER_IDENTITY_FIX.md", + "destination": "GRADER_IDENTITY_FIX.md", + "bytes": 4396, + "sha256": "4e39a4c39b1d52f370a6f9826ba10c9914334de745541c9ca39695fa02b40123" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/BASELINE_BINDINGS.json", + "destination": "evidence/grader-identity-fix/shared/BASELINE_BINDINGS.json", + "bytes": 1203, + "sha256": "b2e3b505f06b53dbf3cf78e20dfb44627e13cc49efa63267fce2d7bb1e02e3d4" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/EXACT_DESCRIPTOR_GUARD_MUTATIONS.json", + "destination": "evidence/grader-identity-fix/shared/EXACT_DESCRIPTOR_GUARD_MUTATIONS.json", + "bytes": 16924, + "sha256": "4270aa8caacd7bf99220313011f0eaf6cfbf29d11e798f6fa9686d947c28125f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/FINAL_EXACT_RUNTIME_BINDINGS.json", + "destination": "evidence/grader-identity-fix/shared/FINAL_EXACT_RUNTIME_BINDINGS.json", + "bytes": 430, + "sha256": "74cb3ca9cb33638dbe68c2aa1cd5327636e826030f94e5e0b3738a1277571a91" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/FINAL_RUNTIME_BINDINGS.json", + "destination": "evidence/grader-identity-fix/shared/FINAL_RUNTIME_BINDINGS.json", + "bytes": 430, + "sha256": "dc8dd1fc88e161541c175603c8c7170254764312d081cae56440750f5c299034" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/FOLLOWUP_GUARD_MUTATIONS.json", + "destination": "evidence/grader-identity-fix/shared/FOLLOWUP_GUARD_MUTATIONS.json", + "bytes": 11079, + "sha256": "98d94d858a285800aa80a8348661820c81152e6d0afdeae75a662e152704f43d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/FROZEN_RUNTIME_BINDINGS.json", + "destination": "evidence/grader-identity-fix/shared/FROZEN_RUNTIME_BINDINGS.json", + "bytes": 430, + "sha256": "0f4187bb436e7efd8933309d372cfff083559742ac888f00072a5a0011f2de56" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/GUARD_MUTATIONS.json", + "destination": "evidence/grader-identity-fix/shared/GUARD_MUTATIONS.json", + "bytes": 43482, + "sha256": "6b1aec98f57510cd79545105bf76f8a8ce7c13fd093e766f8c73e2c4c0c90e47" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/OPTIMIZATION_PROVENANCE.json", + "destination": "evidence/grader-identity-fix/shared/OPTIMIZATION_PROVENANCE.json", + "bytes": 2507, + "sha256": "dde86b3c91e03cfb11ae40eb3524ec00fe1cfa3fcafa33883315ce8b1bed782e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/SELECTOR_GUARD_MUTATIONS.json", + "destination": "evidence/grader-identity-fix/shared/SELECTOR_GUARD_MUTATIONS.json", + "bytes": 5834, + "sha256": "b6442e84be54f748ea79229c1ea37bb69d9de87331cd182835717710de0ab789" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/evidence-binding-review-final.json", + "destination": "evidence/grader-identity-fix/shared/evidence-binding-review-final.json", + "bytes": 11555, + "sha256": "926a0174ac97af1c17beb133e07c906cc51258df95da189a5666e30c1bf65c4d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/evidence-binding-review.json", + "destination": "evidence/grader-identity-fix/shared/evidence-binding-review.json", + "bytes": 29197, + "sha256": "4ab1002a4e49a18f82017237036acfdde5571432c35013d1f98257478e289497" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/guard_mutations.py", + "destination": "evidence/grader-identity-fix/shared/guard_mutations.py", + "bytes": 4336, + "sha256": "caefdde1a8e496c43cd15188e704d05ec94c91a64a6974b13e93f12f7d957d76" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/guard_mutations_exact_descriptors.py", + "destination": "evidence/grader-identity-fix/shared/guard_mutations_exact_descriptors.py", + "bytes": 3698, + "sha256": "95bd1cd9ce9a46dd43cfc198ea3231a09ba3e5a148dd27a7eb5bfe1b0b7afd7f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/guard_mutations_followup.py", + "destination": "evidence/grader-identity-fix/shared/guard_mutations_followup.py", + "bytes": 4274, + "sha256": "333684e94c36693c189e70fc5395560b001375a1ebc0038d0b6b9c1809a4498b" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/guard_mutations_selector.py", + "destination": "evidence/grader-identity-fix/shared/guard_mutations_selector.py", + "bytes": 4396, + "sha256": "b99161237ea5372440b6c2b21ce3d71e1b8e795bc3c366083a620608fc0527da" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review-final.json", + "destination": "evidence/grader-identity-fix/shared/independent-review-final.json", + "bytes": 4100, + "sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review-final.md", + "destination": "evidence/grader-identity-fix/shared/independent-review-final.md", + "bytes": 2030, + "sha256": "a3be1779e32b81a7f4c81fc292010a195278fa929069a70e50c4dbfd48d3f338" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review-followup.json", + "destination": "evidence/grader-identity-fix/shared/independent-review-followup.json", + "bytes": 2943, + "sha256": "f545ffe8142868a210c4cd9ecefaa2d032ff3cd86f81482248a589d5e88466ca" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review-followup.md", + "destination": "evidence/grader-identity-fix/shared/independent-review-followup.md", + "bytes": 1342, + "sha256": "d6378d62afa9e24e593336b12704555a57fc76443732a3bc6a7f2625a57a5717" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review-selector-boundary.json", + "destination": "evidence/grader-identity-fix/shared/independent-review-selector-boundary.json", + "bytes": 2318, + "sha256": "f6154169afc683795686c8940851d39c2c32197c4813c2d9184e321d9ff604b6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review-selector-boundary.md", + "destination": "evidence/grader-identity-fix/shared/independent-review-selector-boundary.md", + "bytes": 1006, + "sha256": "3a0cdb80184b51f4969b54af023981640805f87ff69a65f0eff85ab373a2f7f7" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review.json", + "destination": "evidence/grader-identity-fix/shared/independent-review.json", + "bytes": 3909, + "sha256": "d7f5d0d9482ef338969480474937d10578b1b35772f915d06ca3c4c1856a5e99" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/independent-review.md", + "destination": "evidence/grader-identity-fix/shared/independent-review.md", + "bytes": 2215, + "sha256": "578b576a63c702f7b7aa8c1bf8065e239267c1f1ca7b38fb11f17d65ef5a6397" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/new_tests_template.py.txt", + "destination": "evidence/grader-identity-fix/shared/new_tests_template.py.txt", + "bytes": 6366, + "sha256": "34092f278c57b85bf22ec8ea51fcd38eae6c507fe1f606a8541390bf13714277" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/source-partition-review.json", + "destination": "evidence/grader-identity-fix/shared/source-partition-review.json", + "bytes": 303, + "sha256": "478719b51147ee0d99677b432d6739244733e74f6f12ac484b0515cef2f8ac73" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/affected-normal-dev2.json", + "destination": "evidence/grader-identity-fix/raw/affected-normal-dev2.json", + "bytes": 32391, + "sha256": "ef08c5c93359f1337011243c26307dbd975ac6a996a73a25f6cac9d7afaf7096" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/affected-normal-dev2.log", + "destination": "evidence/grader-identity-fix/raw/affected-normal-dev2.log", + "bytes": 4394, + "sha256": "725a77d841094a7da932aa8e8b78cea49fe89192aa6448ac8de2f45d7b1a6bab" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/affected-optimized.json", + "destination": "evidence/grader-identity-fix/raw/affected-optimized.json", + "bytes": 32391, + "sha256": "ef08c5c93359f1337011243c26307dbd975ac6a996a73a25f6cac9d7afaf7096" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/affected-optimized.log", + "destination": "evidence/grader-identity-fix/raw/affected-optimized.log", + "bytes": 4394, + "sha256": "725a77d841094a7da932aa8e8b78cea49fe89192aa6448ac8de2f45d7b1a6bab" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/construction-discovery-normal.json", + "destination": "evidence/grader-identity-fix/raw/construction-discovery-normal.json", + "bytes": 6044, + "sha256": "5ae42b9455043a1ff4032ff876d5e26b732a7416f23a5098108d5908b1a019d4" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/construction-discovery-normal.log", + "destination": "evidence/grader-identity-fix/raw/construction-discovery-normal.log", + "bytes": 393, + "sha256": "d3e52344324e3f53688d70f09127a1e5e08d5b303daff3b1e7a0a2ea09b55e8c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/construction-discovery-optimized.json", + "destination": "evidence/grader-identity-fix/raw/construction-discovery-optimized.json", + "bytes": 6044, + "sha256": "5ae42b9455043a1ff4032ff876d5e26b732a7416f23a5098108d5908b1a019d4" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/construction-discovery-optimized.log", + "destination": "evidence/grader-identity-fix/raw/construction-discovery-optimized.log", + "bytes": 393, + "sha256": "d3e52344324e3f53688d70f09127a1e5e08d5b303daff3b1e7a0a2ea09b55e8c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/exact-descriptor-normal.json", + "destination": "evidence/grader-identity-fix/raw/exact-descriptor-normal.json", + "bytes": 6619, + "sha256": "670b9c7966deb56347a6313f175055a3467eea95a5ee36bc36c7c729d104aa19" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/exact-descriptor-normal.log", + "destination": "evidence/grader-identity-fix/raw/exact-descriptor-normal.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/exact-descriptor-optimized.json", + "destination": "evidence/grader-identity-fix/raw/exact-descriptor-optimized.json", + "bytes": 6619, + "sha256": "670b9c7966deb56347a6313f175055a3467eea95a5ee36bc36c7c729d104aa19" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/exact-descriptor-optimized.log", + "destination": "evidence/grader-identity-fix/raw/exact-descriptor-optimized.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-green-dev1.json", + "destination": "evidence/grader-identity-fix/raw/identity-green-dev1.json", + "bytes": 5895, + "sha256": "a7f4a7af083366d69778bdda1558d0c9144fff1611714fd778b0de321820b996" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-green-dev1.log", + "destination": "evidence/grader-identity-fix/raw/identity-green-dev1.log", + "bytes": 909, + "sha256": "66aa685c3c966e1b016237b1b66e146cc7c3df5353081e3cba6888ae4ab3b51d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/callable-factory.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/callable-factory.json", + "bytes": 1542, + "sha256": "91debcd2664f361620f9022e2e463d6a665cbe33091f88b341b652b99cdc2f73" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/class-fixture-code.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-code.json", + "bytes": 1645, + "sha256": "d9294cf98a8b07e7ca50081cb32aab048a1e7a9abb63a9ec478dd3b1ffbbe64a" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/class-fixture-function.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-function.json", + "bytes": 1631, + "sha256": "453f01a2114c10fe51b7460ecdf47eacaa2bf23df15f32a2f9768e8bee29c982" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/class-fixture-same-code-function.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-same-code-function.json", + "bytes": 1712, + "sha256": "be2054a390ef5857ab9fef9ae168925c80ecbb041da55add042dcd70e9aef820" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-0-class.json", + "bytes": 1753, + "sha256": "73c8656e79ec014fb77b2a2d48b16ab7e1cba6f2c930b9ce68661eeda0c2a176" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-class.json", + "bytes": 1787, + "sha256": "f7166beb5d6aac19dcaaa66476a98807609e320732bd3268b3173a362a7658ae" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-method.json", + "bytes": 1818, + "sha256": "94317118cbfca4a225fef23de4ef8827e300bcfe042d4277ca0de77143fb5e93" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-classmethod-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-0-class.json", + "bytes": 1747, + "sha256": "68f7f9462cc595e582866d22f52bfc439f1c5bf2ea47b6fd5f73103f865382f0" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-classmethod-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-class.json", + "bytes": 1781, + "sha256": "7aa1e19105036025ea93db923b7b9ed1f4da5f2c6f40bc31b79b0cd1ebfd01b3" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-classmethod-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-method.json", + "bytes": 1812, + "sha256": "c946a8a6bf8beddfcb2b9e1808ea8da9f4274331b34d177f0379d9771604680b" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-staticmethod-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-0-class.json", + "bytes": 1749, + "sha256": "4102438de4c60abf62956014b723836c2128eb8e5b54312c5ade3e6d0e3eded1" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-staticmethod-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-class.json", + "bytes": 1783, + "sha256": "1e5a75009e9d2dda959a9e903d089659c1294ff82d48300ba2e7e03a9d05c32f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-descriptor-staticmethod-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-method.json", + "bytes": 1814, + "sha256": "affbd2c0f7eb603ffa117285a72d13e649a77badabe4b1f26380d609571c22ae" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-getattribute-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-0-class.json", + "bytes": 1529, + "sha256": "39993c6aae75f86d5b6c00dae881369e26b08e43a01fb01d167d27e00cf1993f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-getattribute-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-class.json", + "bytes": 1563, + "sha256": "02eb4c17f327e5740897098a4c2ab7e21f5f1da9acef1e12f3902aa698a62376" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-getattribute-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-method.json", + "bytes": 1585, + "sha256": "eae825469fa4f40a1422b3ab88fa1cdfcdd7c39ea06babe8c8bfcbdb02928a35" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-init-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-0-class.json", + "bytes": 1641, + "sha256": "64c376d874f70baf9331b7fdbcee41d8d4517f6253ae0d23906f80076e5ebfea" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-init-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-class.json", + "bytes": 1675, + "sha256": "6fdd1b0154ef6ce371ad4314d26a3b18254c41e345bcfd62edec0176bd7d6f27" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-init-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-method.json", + "bytes": 1703, + "sha256": "23bafadbd3e37d68402f81e19495a3a8cc0aaf6795bc0b4df83ebea47633d4f5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-metaclass-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-0-class.json", + "bytes": 1547, + "sha256": "14ac0dd7fcef00b9420b62058101b9ad8828e07c34191aac712de157b2874564" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-metaclass-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-class.json", + "bytes": 1581, + "sha256": "1351a4f8c882251f22d1142549235a3b9431634740055ac4179d5c2c5d5d67cb" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-metaclass-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-method.json", + "bytes": 1603, + "sha256": "2875d5768f2b66896378151e5e6080e6ecefd8c5202a56cd7e16f83bb7223c36" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-new-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-0-class.json", + "bytes": 1504, + "sha256": "c164d8c62332a2b03d1150d1e5c50b00af4ba2632effee7e9cfc37e0d1cec188" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-new-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-class.json", + "bytes": 1538, + "sha256": "4970b765c673a1e7b1fb29b7f0de5077b69833c847fb2eff5bb79dff39d3495d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-new-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-method.json", + "bytes": 1560, + "sha256": "1c8d04426bec5220990affef00833910f3b117c4568a050da0b02b03e57b8948" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-setattr-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-0-class.json", + "bytes": 1526, + "sha256": "af9b03e6d97789bfecb3675b1b692cc5031a2f6083d262a1e4237a2fb7d1b034" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-setattr-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-class.json", + "bytes": 1560, + "sha256": "23566edd4bf88b6d8012de8788ad4ada66a56ec962323dc7a6bdef990c97bfbc" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-setattr-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-method.json", + "bytes": 1582, + "sha256": "e459d5fc86e5afbf7c72bd71335b79a404e07ea6c19c9d41ed5774f61d106cee" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-special-descriptor-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-0-class.json", + "bytes": 1649, + "sha256": "7839167671f80747938ff9e173c9cb58d335982824c124a5aa0e9d3f7d778908" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-special-descriptor-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-class.json", + "bytes": 1683, + "sha256": "1d1d9b797743727ab3735ab0bae4551b342d74393b7f4e4a4a4e4ccec2928dca" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/construction-special-descriptor-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-method.json", + "bytes": 1705, + "sha256": "63e777b4dfcf3d12f9a3c79b4aec0a161c66ef72d26f55bdf245600b7b16dbfa" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/custom-run.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/custom-run.json", + "bytes": 1499, + "sha256": "f38a2765abb6786b16868a6a86b63e7495fa271b209745897eaa90f14145c3b4" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/during-body-change.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/during-body-change.json", + "bytes": 3780, + "sha256": "0b889ebbce71f9941a5525fcc6a4f3805bca47e9c63dee218fc61bdb3b1ad043" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/hook-alias-assertion.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias-assertion.json", + "bytes": 1680, + "sha256": "77729f49b6dd4341a78c212a143f10b5d638dc72f2433e58f6092d78da37c882" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/hook-alias.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias.json", + "bytes": 1628, + "sha256": "0782f9aa240ce05d4a320265bb92c6baeee5a7311f0f7aecb9127c989c9cc9fa" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/hook-omission.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-omission.json", + "bytes": 1636, + "sha256": "edaa32e199625a93f6f4c12c20a3fd553647c6a7d45e71bb44f5969acceb7c89" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/hook-subclass.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-subclass.json", + "bytes": 1823, + "sha256": "d48fdf13b18fd711af63cdf1ecde9ff343b4a5babb21450b17f3db6fde849b64" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/instance-class-change.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/instance-class-change.json", + "bytes": 3613, + "sha256": "73a2e1402d3d8b46d336bab7f517d9ddfbc441051330918b0a18d6aadcd96da8" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/module-dir-cannot-hide.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/module-dir-cannot-hide.json", + "bytes": 3232, + "sha256": "cc9257d615b362fa1cbc44cb29631b07ecad2613e0955e08e5a91d17b9fb638a" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/named-assertion.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/named-assertion.json", + "bytes": 2975, + "sha256": "4cad2e5423c6a28d7e57e247a25c643a6329c857fcc390e5fd420170f21c6bd6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/named-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/named-class.json", + "bytes": 1990, + "sha256": "b1053be28226fe9a78c094ddf6389dcb6c7aa545c4bf8223e6c05b5483733a1f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/named-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/named-method.json", + "bytes": 1726, + "sha256": "6328579404eca91332a93d47c34e3901fb73d3068f62659bc9098279b97fb5f0" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/selector-helper-descriptor.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-helper-descriptor.json", + "bytes": 1729, + "sha256": "ddeb1876b7b336f3d7c79273977bee9e30cd8f685773f15ae5d30a95a2df61fc" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-normal-fixtures/selector-proxy.json", + "destination": "evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-proxy.json", + "bytes": 1574, + "sha256": "c21fc843050fb58e378a8155de389881cac01ee878e28475458ddcc6dcda9e9f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/callable-factory.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/callable-factory.json", + "bytes": 1542, + "sha256": "aed3599ecf74fc44f3839d6d6fbbe3e5542ee6ddb78735b26a017c286018d9ee" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/class-fixture-code.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-code.json", + "bytes": 1645, + "sha256": "61f52349025228949b3fe71eb424b291e73fb81db710e6eda2a0d75b8f00659f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/class-fixture-function.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-function.json", + "bytes": 1631, + "sha256": "f26530c660c9f74c804cff821a5d4950c647fc339c1035b3784f145183bbd994" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/class-fixture-same-code-function.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-same-code-function.json", + "bytes": 1712, + "sha256": "54bb22a8ba6355d66ede52b922ef85606415d50c7b67bb774bae4b29c1119156" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-0-class.json", + "bytes": 1753, + "sha256": "230c93351318e0c3c7965bb992346c5e23cf5f537230030cb20fc20842952237" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-class.json", + "bytes": 1787, + "sha256": "378005e081fbc32e0886bf35589f9492c58a488acf3370cf299f5aa56972e13b" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-method.json", + "bytes": 1818, + "sha256": "1551400948c0ee107ad57bce53730f37a1969565295e2b3dc138016a5e0db04f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-classmethod-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-0-class.json", + "bytes": 1747, + "sha256": "754013fb1bfeca8ef34491c0bbdaa7be43554d8bdf4cb8b5323201130ed2de48" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-classmethod-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-class.json", + "bytes": 1781, + "sha256": "efffc43fcd250a9f31db4939d9f06e7dfed8d876c08add7908336fa812b270a2" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-classmethod-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-method.json", + "bytes": 1812, + "sha256": "17402b540206b03e9d1b5e096d210a3377986a26520a53b04a40008536f28eab" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-staticmethod-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-0-class.json", + "bytes": 1749, + "sha256": "638ac93349adb742032f8f32ab81ad9215cda5f91aabe0937fe43fedb960bf57" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-staticmethod-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-class.json", + "bytes": 1783, + "sha256": "1a99ee3f830630ba49a4bbd94a1b4bddf11c4744bf64fcede759be6bbe3a2e2a" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-descriptor-staticmethod-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-method.json", + "bytes": 1814, + "sha256": "de7bc982290b87e6d69f62bf4e5ada9fca70ce48e7a4a91bed6e49ce9145ca3c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-getattribute-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-0-class.json", + "bytes": 1529, + "sha256": "f1ee9fbc942ae21bd82aa3162419c1c7a6aa17e5c12d2021667279fe93948a1f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-getattribute-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-class.json", + "bytes": 1563, + "sha256": "137f388511370628e546f119c649b7c8472c19edb280532b475f37529bd08a16" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-getattribute-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-method.json", + "bytes": 1585, + "sha256": "b91c6867cfa36a059dd3f0ccb02181393301a2d6597e4c40cf66ad7295b25617" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-init-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-0-class.json", + "bytes": 1641, + "sha256": "9c1273e18caf9cbd490c23f417e60a7139dc6378ab091549979f5a46466ba380" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-init-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-class.json", + "bytes": 1675, + "sha256": "259d4d27bb8ee9d09178aa09e4cb803f757790aaca9880aa7fe7c5ca92768a47" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-init-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-method.json", + "bytes": 1703, + "sha256": "c24059a00a6fccd1e65d3f8a48d63ce0bdc1d8009ad40402ff4c6a7fca0e516b" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-metaclass-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-0-class.json", + "bytes": 1547, + "sha256": "27589595653ac7ec6b767562e7c5f69731e6626deb620b11ff20346cfe54edf5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-metaclass-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-class.json", + "bytes": 1581, + "sha256": "4801aed97adb091e66db3494358e451aff98a16d9d23ef88a509bbbf4569be08" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-metaclass-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-method.json", + "bytes": 1603, + "sha256": "6d30781fe4e919a09c89f7221aaa179e198e7b2d2c7800b3a0d7c5a353fb50da" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-new-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-0-class.json", + "bytes": 1504, + "sha256": "7868e623cbe07e5f1196b90a4a838bb8dbce7f6bf472cd8fd6c9d5613c6773d2" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-new-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-class.json", + "bytes": 1538, + "sha256": "325066764c5a8f4618d5e28f203c9cfd5313316f67be3f53ca5ea975cba9c446" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-new-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-method.json", + "bytes": 1560, + "sha256": "87a37505ff2a2e73645b24c95a531e7bccca48efc0b5c79cbe334b7107f64d10" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-setattr-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-0-class.json", + "bytes": 1526, + "sha256": "e07a0961959dbddf31f01ee002a8a5ec25a5f641594d2a28b8ffc8ce26a34ddc" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-setattr-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-class.json", + "bytes": 1560, + "sha256": "8aadea2b72c41d38e36572e81b4dca4d76c9cef0c4825ad82372d027724b589e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-setattr-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-method.json", + "bytes": 1582, + "sha256": "a48194648ffc45aa479ba5b748e7d5ba2a6757bf6bbb0de24085c43f2ad9aad7" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-special-descriptor-0-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-0-class.json", + "bytes": 1649, + "sha256": "25c65e90742ec22c8a0c24862b8db2cb3b4e5cf9d69a402d0de9e6f06aa68513" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-special-descriptor-1-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-class.json", + "bytes": 1683, + "sha256": "160b975d57a68c73e9c062ecef67d92364d22baddf0a3134bcddc93f64d9ad4d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/construction-special-descriptor-1-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-method.json", + "bytes": 1705, + "sha256": "1f882e75c745b7163043a0e717d10d1d541ded742002bf8af1929efc0a2cb486" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/custom-run.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/custom-run.json", + "bytes": 1499, + "sha256": "00f17e697805bd1b197a24d8dea698393c7a1e55cae7412b43dd67c67a2ee881" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/during-body-change.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/during-body-change.json", + "bytes": 3780, + "sha256": "e91d02378e503693931686531b548f36e4a0c8e555a40a16b7441c90e45ef362" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/hook-alias-assertion.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias-assertion.json", + "bytes": 1680, + "sha256": "aa5005ad341e991eb4c03268a9a59e496f7f00df07addf4a3277ab671809783f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/hook-alias.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias.json", + "bytes": 1628, + "sha256": "d38f5bbf84e8e8e0b98c87dbe7fb898b24ebfada3564e6c3782fe015d5f7a143" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/hook-omission.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-omission.json", + "bytes": 1636, + "sha256": "2dde5c7d2b2f33f229af01946ac2a0a150c0b6339e3b98991f22e36f0054db52" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/hook-subclass.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-subclass.json", + "bytes": 1823, + "sha256": "bc1b1bbe70e15bce95b5526658a1431fa30b9ca7847a4b9964d8d3e8cb499a44" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/instance-class-change.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/instance-class-change.json", + "bytes": 3613, + "sha256": "17a7e94d64f3eea5afddff1c8e17a4c27d2a1dac10e865659c6c66c151012dcd" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/module-dir-cannot-hide.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/module-dir-cannot-hide.json", + "bytes": 3232, + "sha256": "cae323d921b6f8994fd786a2563c3d067db6bb030fca19a6c64a5adb21d5d872" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/named-assertion.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-assertion.json", + "bytes": 2975, + "sha256": "1c4fe671c7183bee2358c762b320a539569e137f9c48f00125c786d97fa41c3f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/named-class.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-class.json", + "bytes": 1990, + "sha256": "6d18209298cb82e0b2fe64ee48b5588eb477d5de1b2ec1bdc0d0d5bf8e61bf40" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/named-method.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-method.json", + "bytes": 1726, + "sha256": "33426693360657f61e56327a84466a9045907109363c8e3feee2974a2e2a240d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/selector-helper-descriptor.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-helper-descriptor.json", + "bytes": 1729, + "sha256": "c1122f96870193882d3d8a43d99f03860854eb1c63f24f413a1feb34553b02e3" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-optimized-fixtures/selector-proxy.json", + "destination": "evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-proxy.json", + "bytes": 1574, + "sha256": "e7622657654155c029fa22271844d8e4e7c924d0b439a3a416e3132b34f73dff" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-red.json", + "destination": "evidence/grader-identity-fix/raw/identity-red.json", + "bytes": 23431, + "sha256": "56f6e703271d79b9f7ae13f4c8ea65b9b56ab17745aef693e2b0ea538a1cdbc7" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-refresh-normal.json", + "destination": "evidence/grader-identity-fix/raw/identity-refresh-normal.json", + "bytes": 2749, + "sha256": "3ba00e79be0fbee01f828085670ba7db19d1b6c737ad9e3cfd2f41690c921a7e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-refresh-normal.log", + "destination": "evidence/grader-identity-fix/raw/identity-refresh-normal.log", + "bytes": 351, + "sha256": "c7569a570c82a0732f731bf4897ee6ce999cfb0dc3d7bde9ecb4c79a2f319535" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-refresh-optimized.json", + "destination": "evidence/grader-identity-fix/raw/identity-refresh-optimized.json", + "bytes": 2749, + "sha256": "3ba00e79be0fbee01f828085670ba7db19d1b6c737ad9e3cfd2f41690c921a7e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/identity-refresh-optimized.log", + "destination": "evidence/grader-identity-fix/raw/identity-refresh-optimized.log", + "bytes": 351, + "sha256": "c7569a570c82a0732f731bf4897ee6ce999cfb0dc3d7bde9ecb4c79a2f319535" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/selector-descriptor-normal.json", + "destination": "evidence/grader-identity-fix/raw/selector-descriptor-normal.json", + "bytes": 4882, + "sha256": "c6b965647f6aafe795bc53817b3f21f8fcc5854e252a2773298f2a0f51e23def" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/selector-descriptor-normal.log", + "destination": "evidence/grader-identity-fix/raw/selector-descriptor-normal.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/selector-descriptor-optimized.json", + "destination": "evidence/grader-identity-fix/raw/selector-descriptor-optimized.json", + "bytes": 4882, + "sha256": "c6b965647f6aafe795bc53817b3f21f8fcc5854e252a2773298f2a0f51e23def" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/selector-descriptor-optimized.log", + "destination": "evidence/grader-identity-fix/raw/selector-descriptor-optimized.log", + "bytes": 195, + "sha256": "bd20a89d9a0164b156d6931ccd37e84e374c96b53534d4fdeaa8203b57f3caa5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "bytes": 13612, + "sha256": "82d9d9508e3cee208451ea30117a80859059acc544e0d45994cc607207fbf4e0" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stdout.log", + "bytes": 10208, + "sha256": "131cd115c6f7276371fcae16b569695615ebbc09acb44004f6d49da14791b57b" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "bytes": 3169, + "sha256": "baba96a43a9dcf624751479fc879661adfa617335a3ccdd98836a5a337e76b19" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stdout.log", + "bytes": 1652, + "sha256": "a4f61543cf899a8dfdff8aa239fc7d040323705951a89520afe425d9160048d5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "bytes": 4123, + "sha256": "9368effe87b7026ee56326ac2bfbb02fb3846dcfaa30c46c9edc8f9eea671af2" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stdout.log", + "bytes": 2040, + "sha256": "0fca7743d1528fd0caeff923e3bd66d212e8faed96cce674084858e21cbbe6e8" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/receipt.json", + "bytes": 4393, + "sha256": "677b9414a3d5f79761dbe0c534bacae97a1a5560599fe0a95b24ce0aedf2203c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stdout.log", + "bytes": 2305, + "sha256": "ba675913565db0ab300e877f4a68d86095e93bbb4ae4a506f6c21cd5cc9cf05a" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/receipt.json", + "bytes": 3844, + "sha256": "6ba4cd787c000c83398716f4ab10780934bff389a904826e9785076d12e9a2b2" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stdout.log", + "bytes": 1767, + "sha256": "c06c22298a93324ef57ef5ec01306f4a95f0aee48c20c72f4b13501e82c1f0a6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "bytes": 6797, + "sha256": "4c797eff30d6ec75211fe5dd9ac8724201d4eb1c323778208901774b295d74e1" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stdout.log", + "bytes": 4399, + "sha256": "2dc5e52a36522ba885f03b3fa2bbc4e0b249721e63b21def01f675631a618fb1" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "bytes": 3039, + "sha256": "764e27b223102f80c2f4205274f8e8497e223b34ab22671eaf9672a0ab07107d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stdout.log", + "bytes": 1611, + "sha256": "8083dbdad1524a319d74f7f962438a1b872022cbef57c055e89bf17bee07ef9c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "bytes": 11020, + "sha256": "3b5c89b611116d109077f4dbc355f35f2474206e7857cac415c899573ff67577" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stdout.log", + "bytes": 8017, + "sha256": "ab0a256a565772334158862c880ed6eb2c4fd3e477a722ebe0e29c638f1aa27d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "bytes": 13624, + "sha256": "d57ddd5fd4a058f008282ceaa3d13ca3ed9b78f27f40b39bcee2cd197876db0c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stdout.log", + "bytes": 10220, + "sha256": "31d647dcc331324b7acab5600088c237444f119d562ea8bff537f68599b660e6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "bytes": 3172, + "sha256": "b3bd6e635e5808da0275afa316d76bf82ffdbc99ab45d6e747c81c997a5e76a8" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stdout.log", + "bytes": 1655, + "sha256": "ffdcec1225452ec36f4367fd6689162604ac819b0eee542d103c57a2311dc38d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "bytes": 4126, + "sha256": "51ddf2022fddca741c937eba1b54370efbac5aa0a39db82785f79c88dd3d61e6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stdout.log", + "bytes": 2043, + "sha256": "a21ef10e371c89af08b3b0fac8d4e0ff4ea36fcea557a6a69fda210e2225a79d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "bytes": 4396, + "sha256": "e009453bc240aa4830374a0fc35353162eb21da5523a3f0ca9df7cd882abee16" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stdout.log", + "bytes": 2308, + "sha256": "8ceac458094bf4a89b9d1169c25f2b54b7ed9038903a630ac9dfeaff256c6894" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "bytes": 3847, + "sha256": "934289850dce49d3106fc172b98ed35a901f506da3c46955bfc9e753e6f56bb2" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stdout.log", + "bytes": 1770, + "sha256": "6342af0480511f4d6201f5861a444a4b986778645b4cfbbe1de7e0b842b4ce04" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "bytes": 6803, + "sha256": "8302b411e1d3d74371df57720be55a7aece8ed96595255c37273de9d959bd42c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stdout.log", + "bytes": 4405, + "sha256": "393ee57739b21a4ffce0476c5aeb842646e71e13a4e6cf52a03f102d1acc76f8" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "bytes": 3042, + "sha256": "e4288ddf0d8d153e013de44a785fd07caf32556257f6eeefc85391c6ddf4c1e6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stdout.log", + "bytes": 1614, + "sha256": "e23b918b83fa66490ea9c70fc0e08c0572ffbdbc4f88264f7f7399f02c7a2c83" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "bytes": 11032, + "sha256": "66eb45a3af0f0b21e3af533dbaebd31d66af938f4509d56b7752720a04ff3dca" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stdout.log", + "bytes": 8029, + "sha256": "610f634f0f4f2aa74dc7290e412f7b82c22373560c5a00aea593ee122231e47e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py", + "destination": "evidence/grader-identity-fix/historical-source/initial/tests/test_mutation_harness.py", + "bytes": 26914, + "sha256": "da9bb463c0675be7729067c8a46e55b5171293c15be598c5e891051818c49850" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/receipt.json", + "bytes": 31884, + "sha256": "d8855927f2cf22b572cf6369dc0294b4b7eaf46dfcdc83a6b98630462cdffd12" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stdout.log", + "bytes": 23522, + "sha256": "4616dcaddf055a1ac9448ef53a2bf35a9cde861e5ee5edcc9cf108e48a909efb" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "bytes": 4031, + "sha256": "20b71d24fc69cc9ef47199f17441bff6c23451831954076a81d6ca810a665fbb" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stdout.log", + "bytes": 1648, + "sha256": "51227bb7ae6b35496b53be5ce03abd64feed48dd62f34e875d305d0d8e645d72" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/receipt.json", + "bytes": 31926, + "sha256": "c9af0aac109c15da40cf8e58ae91a5a47c5e5336f9c2054493e430358deaaac6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stdout.log", + "bytes": 23564, + "sha256": "9b1f13367b01981b6621f5f56351c007334c2534c4a38659bb3ce7b3a9aacdd7" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "bytes": 4034, + "sha256": "e1507d5e1e11c51a55307947473b1ac35aee030db5173b1fd28ac7cb8071cebb" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stdout.log", + "bytes": 1651, + "sha256": "338d8057ceafe2330215e1c4728445a5b5e982145c1f92acdb9e9dcf5cf3a1f5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", + "destination": "evidence/grader-identity-fix/historical-source/construction/tests/test_mutation_harness.py", + "bytes": 29255, + "sha256": "8d42a69f5b9a73705837111d59bbbe56c5f41ee84362ff1b006ea38226a37690" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "bytes": 3184, + "sha256": "c760c50c1fe4db6ea0c616580b4f8b3611e5f5a609f4046c163b8c3a93e9136c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stdout.log", + "bytes": 1667, + "sha256": "8067689f8b357253818b932fdc296d97dd4f7378e149d817296aa26500d402ff" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "bytes": 3187, + "sha256": "e72f8a78da3843b94a8730da8dc38ff8b3446d305ea88892052a1003b54cf067" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stdout.log", + "bytes": 1670, + "sha256": "afa6b46d7d1ebf295a4462312b0bbef457e45df02b40f15ecfd2352026a206cf" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/tests/test_mutation_harness.py", + "destination": "evidence/grader-identity-fix/historical-source/selector/tests/test_mutation_harness.py", + "bytes": 30218, + "sha256": "99d0bc18609f4966e7e8a12f4731cb13fb45a23d4689467da2c3fd564ef74030" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "bytes": 15452, + "sha256": "dacc27276045f70447f6c4031cca240b1a1c091e8c3f0c17a879a1bb1689ee86" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stdout.log", + "bytes": 7807, + "sha256": "0e4ce00f228c0ddd70d1228469d0252b502ab1c02b5866ee2562449053f9fa55" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "bytes": 8264, + "sha256": "257d42e9dfebc157d85648819e198e709c52bc5da95352778a1736df161e54f7" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stdout.log", + "bytes": 1537, + "sha256": "cdb58d50e19cd4c113d9471bcde70684cfad3a6e2e0f1cbd4c4b4820adb7113d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "bytes": 12652, + "sha256": "13c88c8a2be257315a5d0eeefbb8203d2c785d96032f26ed9ace6a4910db6064" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stdout.log", + "bytes": 5314, + "sha256": "64943c1cf2287c26b9e46c838cf887a38e3a6164e3aa1b1ac7c9808c047b8133" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "bytes": 15464, + "sha256": "70863c355a543fbcae70db28d3dec3c880b5362d2c819ada85908770e1c974cd" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stdout.log", + "bytes": 7819, + "sha256": "fcadb6913cdb9ee6347633157df98faa8813196e5d07575e2c11420809af981d" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "bytes": 8267, + "sha256": "5dcd1dd848214054f34d3abafdcc889a8affb171239590d593a60088fd4d6c82" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stdout.log", + "bytes": 1540, + "sha256": "32d182607d4798e7ee4fc6467af278446bf57ae5e2bcf83f0863b19d7f3a8aff" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "bytes": 12661, + "sha256": "ad124dd4a4d92d75633edf8cec56843779d60e1537c5524d63be033fdf8f0f65" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stdout.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stdout.log", + "bytes": 5323, + "sha256": "445cb37e5df70fa30d7313c8a66a51aab7c52705a0144a01175cd3e3decb4b48" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stderr.log", + "destination": "evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", + "destination": "evidence/grader-identity-fix/historical-source/exact-descriptor/tests/test_mutation_harness.py", + "bytes": 31704, + "sha256": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/receipt.json", + "destination": "evidence/grader-identity-fix/review-probes/constructor-alias/receipt.json", + "bytes": 1037, + "sha256": "241f8d5f7d0e4044a8c0fdaea64dc2301698d53c933e696f12294909134f732e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/run_tests.py", + "destination": "evidence/grader-identity-fix/review-probes/constructor-alias/run_tests.py", + "bytes": 17396, + "sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/stderr.log", + "destination": "evidence/grader-identity-fix/review-probes/constructor-alias/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/stdout.log", + "destination": "evidence/grader-identity-fix/review-probes/constructor-alias/stdout.log", + "bytes": 115, + "sha256": "91d15883dc781491f8a5d0c6b2cfc1c5e114a32f16bb10f2a27d915763b6fcca" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/tests/test_constructor.py", + "destination": "evidence/grader-identity-fix/review-probes/constructor-alias/tests/test_constructor.py", + "bytes": 488, + "sha256": "09e99756efd44899aa0cb96cc63ff2f7478735dbe8cab5b5c06bea03c3b2b862" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/trace.txt", + "destination": "evidence/grader-identity-fix/review-probes/constructor-alias/trace.txt", + "bytes": 12, + "sha256": "f97a8f27a73b181cc6bf7fb6a09fb0c2203925d74ad8309144c33b5c0ea0a14f" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/RESULTS.json", + "destination": "evidence/grader-identity-fix/review-probes/constructor-alias/RESULTS.json", + "bytes": 2204, + "sha256": "ed28bd7aea01ffcb005e72c0519678c15b0a8f08b651b196deb30ea5bcf5bee7" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/receipt.json", + "destination": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/receipt.json", + "bytes": 806, + "sha256": "7e68dfd3195a8b6a3ba1c5e28d1d5a78173d144699e36fd329b30601b551445b" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/run_tests.py", + "destination": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/run_tests.py", + "bytes": 19972, + "sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/stderr.log", + "destination": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/stdout.log", + "destination": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/stdout.log", + "bytes": 64, + "sha256": "ff23c230ef51c48a5d731a1b4da9a9e4f70994c71af41ecbeec1ae77c2563a31" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/tests/test_descriptor.py", + "destination": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/tests/test_descriptor.py", + "bytes": 562, + "sha256": "c49611a85b9d6a0ac3bde70143bc66c3718cec1c267d659a8c42401cc307ccd0" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/trace.txt", + "destination": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/trace.txt", + "bytes": 17, + "sha256": "5ec777d8cd0c97d9e738631bf3c0d513e644deef6a3453ce7f95fd4c7888f143" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/RESULTS.json", + "destination": "evidence/grader-identity-fix/review-probes/method-descriptor-alias/RESULTS.json", + "bytes": 2316, + "sha256": "eef0a77e541b11d419aa52f3cb54bb8ad34e0cfc3949cada1ecaa83b4c6d3975" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/receipt.json", + "destination": "evidence/grader-identity-fix/review-probes/module-dir-omission/receipt.json", + "bytes": 824, + "sha256": "ac1bc6b53c5a1b3c4fecb21e288796d6ebc0f86b7a737a2973a841db319364e4" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/run_tests.py", + "destination": "evidence/grader-identity-fix/review-probes/module-dir-omission/run_tests.py", + "bytes": 17396, + "sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/stderr.log", + "destination": "evidence/grader-identity-fix/review-probes/module-dir-omission/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/stdout.log", + "destination": "evidence/grader-identity-fix/review-probes/module-dir-omission/stdout.log", + "bytes": 68, + "sha256": "483c9a01f567ac49966f90770b4b2e3033ea57958690f787d598de096296413c" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/tests/test_module_dir.py", + "destination": "evidence/grader-identity-fix/review-probes/module-dir-omission/tests/test_module_dir.py", + "bytes": 442, + "sha256": "000f7e0f21e6895a40b759992937fa712b6de326b6d17c0522086135a9a6c533" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/trace.txt", + "destination": "evidence/grader-identity-fix/review-probes/module-dir-omission/trace.txt", + "bytes": 6, + "sha256": "b640e840b19d378660b32fb51ae18d67dccb4a8596a29e7bd72c1b2ae5928f41" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/RESULTS.json", + "destination": "evidence/grader-identity-fix/review-probes/module-dir-omission/RESULTS.json", + "bytes": 2111, + "sha256": "661e6b7046cdcd42ad40e8522caa9e187411eb2e3cf227cbf9e3eeed840c1a32" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/receipt.json", + "destination": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/receipt.json", + "bytes": 1049, + "sha256": "415e176f7730a9efcfc3b955e020ec1aef4758b1ed250bd79339c906fcacc25e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/run_tests.py", + "destination": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/run_tests.py", + "bytes": 20814, + "sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/stderr.log", + "destination": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/stdout.log", + "destination": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stdout.log", + "bytes": 117, + "sha256": "d7bf22367949925953e7fd8378fbcc700a3c7cd2fe6f9d9ecb64988187afbac2" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/tests/test_static_alias.py", + "destination": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/tests/test_static_alias.py", + "bytes": 533, + "sha256": "db453ae68e561d99e25d2d5e2019b293dc33a4570cc7b9fe2e9665934e02b3c6" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/trace.txt", + "destination": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/trace.txt", + "bytes": 23, + "sha256": "7704f2c598dc8f36e37fc0e6bd8d0193f2fda42a58dbb5a311727f44450e9560" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/RESULTS.json", + "destination": "evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/RESULTS.json", + "bytes": 2324, + "sha256": "6218fbfe350d4cd55cebff84cdcb90f5fcea2b1df96bca671e339ef574fdf0cf" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-preflight/REPORT.md", + "destination": "evidence/grader-identity-fix/initial-preflight/REPORT.md", + "bytes": 2636, + "sha256": "b234d22b7ffc2279e073237a372270d7011afd5e74a5984483f1ea1ed5287054" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-preflight/RESULTS.json", + "destination": "evidence/grader-identity-fix/initial-preflight/RESULTS.json", + "bytes": 14791, + "sha256": "a80dba831d717c0faae34cb6e872ef2dd1aa2b613686ce323e3846fc59c6b3af" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-preflight/SOURCE_BINDINGS.json", + "destination": "evidence/grader-identity-fix/initial-preflight/SOURCE_BINDINGS.json", + "bytes": 421, + "sha256": "541a7ea8c8e87e53de347958a1e230df4d0697418b9e312b2cf1e82b6dc1a91e" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-preflight/EXISTING_APPLICABILITY.json", + "destination": "evidence/grader-identity-fix/initial-preflight/EXISTING_APPLICABILITY.json", + "bytes": 1534, + "sha256": "cf408ac54c9a94a7eb8a85a247711cb8482bb9a572cab53b2b0d0c13f6202b52" + }, + { + "source": "/workspace/cbz-0/delivery/grader-identity-preflight/preflight.py", + "destination": "evidence/grader-identity-fix/initial-preflight/preflight.py", + "bytes": 5605, + "sha256": "74aeaa2c2088dab64196dc91de3ba8e261235292675febf75d62c449f4a6bc5a" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json new file mode 100644 index 000000000..8b4395e61 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/CURRENT_COMPOSED_ADMISSION.json @@ -0,0 +1,60 @@ +{ + "status": "PASS_SCOPED_COMPOSED_IDENTITIES", + "tool": "kernel_replay", + "scope": "Standard ordinary unittest declarations; seven new identity methods, no full production G0/mathematical run", + "fresh_distinct_affected_methods_per_mode": 27, + "new_identity_methods": 7, + "guards": { + "distinct_themes_per_tool": 14, + "observations_this_tool": 28, + "observations_both_tools": 56, + "stage_sizes_both_tools": [ + 32, + 8, + 4, + 12 + ], + "all_assertion_killed": true, + "zero_errors": true, + "rule": "Earlier source-bound observations reused after specific predicate/ordinary-source applicability; not a single final-source full campaign", + "production_scanner_or_replay_mutants": false + }, + "review": { + "path": "shared/independent-review-final.json", + "sha256": "f47d13cc789829966ebf60e7b5e5a9e45059e5ed5db4a5089a3b2ca7534993b4", + "verdict": "CLEAR_SCOPED_ENGINEERING" + }, + "final_runtime_sha256": { + "run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022" + }, + "source_generations": [ + { + "stage": "initial", + "path": "evidence/grader-identity-fix/historical-source/initial/run_tests.py", + "sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "binding": "reconstructed uniquely by inverse declared mutation and exact original SHA256; not a new execution" + }, + { + "stage": "construction", + "path": "evidence/grader-identity-fix/historical-source/construction/run_tests.py", + "sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "binding": "reconstructed uniquely by inverse declared mutation and exact original SHA256; not a new execution" + }, + { + "stage": "selector", + "path": "evidence/grader-identity-fix/historical-source/selector/run_tests.py", + "sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "binding": "reconstructed uniquely by inverse declared mutation and exact original SHA256; not a new execution" + }, + { + "stage": "exact-descriptor", + "path": "evidence/grader-identity-fix/historical-source/exact-descriptor/run_tests.py", + "sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "binding": "reconstructed uniquely by inverse declared mutation and exact original SHA256; not a new execution" + } + ], + "historical_source_limits": "Developer probes/controllers are retained frozen-source provenance, not automatic commands against a later revision. Trusted imports are not a malicious-code sandbox.", + "same_run_full_campaign": false, + "math_lean_scanner_or_ci_replayed": false +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/GUARD_EVIDENCE.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/GUARD_EVIDENCE.json new file mode 100644 index 000000000..11b38ada5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/GUARD_EVIDENCE.json @@ -0,0 +1,719 @@ +{ + "tool": "kernel_replay", + "results": [ + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-module-hook-refusal", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "8142b73d6348b8786526b24fad189a7aba19dd0f321e8ae12ac3735fd6d3bc36", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "accept-callable-selector-factory", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "c9b312a9492ddd05d7aba67f3cfa15f889fd0aa76436f92ad188600033dc23f1", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-selected-class-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0aa711f14ef8f822fea2773205e2ff7afdf4d34dbd93d49e88b5c4b9db5d2ce8", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-original-function-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "209ff6dea5ae38e7e842612b34702bb5f86f54d59e4b53f5209e465ea4c9d63e", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-original-code-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "6b84b3db0b2164dcf775d0e165debd791ab95f41ef7835bac0d4fc72ec77f937", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-declared-function-chain", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "904814c32bdb60c2230f9f3d8ca25331c734537c7433a2fbe166fa12e42979e2", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 2, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "skip-before-fixture-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "384fc58ca23882fcd0ce34b28e0d4285481a5eed0bc44a05c924fd5f3cfe93cc", + "test": "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "skip-runtime-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0eb854056f3c5e06515566c9a82503d12410c5a5ae4533af8d31ceee2cc2e1e7", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-module-hook-refusal", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "8142b73d6348b8786526b24fad189a7aba19dd0f321e8ae12ac3735fd6d3bc36", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "accept-callable-selector-factory", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "c9b312a9492ddd05d7aba67f3cfa15f889fd0aa76436f92ad188600033dc23f1", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-selected-class-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0aa711f14ef8f822fea2773205e2ff7afdf4d34dbd93d49e88b5c4b9db5d2ce8", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-original-function-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "209ff6dea5ae38e7e842612b34702bb5f86f54d59e4b53f5209e465ea4c9d63e", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-original-code-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "6b84b3db0b2164dcf775d0e165debd791ab95f41ef7835bac0d4fc72ec77f937", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-declared-function-chain", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "904814c32bdb60c2230f9f3d8ca25331c734537c7433a2fbe166fa12e42979e2", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 2, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "skip-before-fixture-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "384fc58ca23882fcd0ce34b28e0d4285481a5eed0bc44a05c924fd5f3cfe93cc", + "test": "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "skip-runtime-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0eb854056f3c5e06515566c9a82503d12410c5a5ae4533af8d31ceee2cc2e1e7", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "stage": "initial" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-custom-construction", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "239b9bb1455f063b77b6edf33c643629a386dba6f5882414645c760eb36b3bca", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 14, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "construction" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-module-dir-population-omission", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "50ac770b50929e18b882660873cef5029802ef8e1331af724d2029cadbe5a6cd", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "stage": "construction" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-custom-construction", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "239b9bb1455f063b77b6edf33c643629a386dba6f5882414645c760eb36b3bca", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 14, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "construction" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-module-dir-population-omission", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "50ac770b50929e18b882660873cef5029802ef8e1331af724d2029cadbe5a6cd", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "stage": "construction" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-selector-descriptor-or-proxy-execution", + "source_file": "run_tests.py", + "original_sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "mutant_sha256": "9a7581db5795949d996b30ef389ba9a5bc50b0356272b736b372135700610ddd", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "selector" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-selector-descriptor-or-proxy-execution", + "source_file": "run_tests.py", + "original_sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "mutant_sha256": "9a7581db5795949d996b30ef389ba9a5bc50b0356272b736b372135700610ddd", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "selector" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-static-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "e9bf166388951ffd996f6950bfd87bcee4420376ee284021780eb32c3f683acf", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "exact-descriptor" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-named-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "82b65607cdb27ca2476c70065373dcd22e0f2dfcf89234d9c6e7d224eb910e86", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "exact-descriptor" + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "invoke-special-descriptor-during-profile-inspection", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "6146779c1c6d6ec1f1996bec9adac1702472a55d74331fea878014d0783b1e0e", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 3, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "exact-descriptor" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-static-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "e9bf166388951ffd996f6950bfd87bcee4420376ee284021780eb32c3f683acf", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "exact-descriptor" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-named-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "82b65607cdb27ca2476c70065373dcd22e0f2dfcf89234d9c6e7d224eb910e86", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "exact-descriptor" + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "invoke-special-descriptor-during-profile-inspection", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "6146779c1c6d6ec1f1996bec9adac1702472a55d74331fea878014d0783b1e0e", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 3, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "stage": "exact-descriptor" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/run_tests.py new file mode 100644 index 000000000..40ff65a20 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/run_tests.py @@ -0,0 +1,444 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def ordinary_test_class(self,testCaseClass): + # Construction and attribute dispatch must not rewrite the population. + if type(testCaseClass) is not type: + return False + for name in ('__init__','__new__','__getattribute__','__setattr__','__delattr__'): + if getattr(testCaseClass,name,None) is not getattr(unittest.TestCase,name,None): + return False + for base in testCaseClass.__mro__: + if '__getattr__' in base.__dict__: + return False + for name,value in base.__dict__.items(): + if name.startswith(self.testMethodPrefix) or name=='runTest': + function=value.__func__ if isinstance(value,(staticmethod,classmethod)) else value + if not inspect.isfunction(function): + return False + return True + + def frozen_cases(self,testCaseClass,names): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + # Capture declaration identities before even standard construction. + declared={name:function_chain(getattr(testCaseClass,name,None)) for name in names} + suite=unittest.TestSuite(testCaseClass(name) for name in names) + self.remember(suite) + for test in suite_leaves(suite): + binding=self.bindings.get(id(test)) + original=declared.get(getattr(test,'_testMethodName',None)) + if binding is None or not same_function_chain(binding['declared'],original): + self.invalid.append('selected declaration changed during construction') + elif not same_function_chain(binding['instance'],original): + self.invalid.append('selected instance body changed during construction') + else: + binding['declared']=original + return suite + + def loadTestsFromTestCase(self,testCaseClass): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + names=self.getTestCaseNames(testCaseClass) + if not names and hasattr(testCaseClass,'runTest'): + names=['runTest'] + return self.frozen_cases(testCaseClass,names) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + suites=[] + for name in sorted(module.__dict__): + value=module.__dict__[name] + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent=current + if inspect.ismodule(current): + current=current.__dict__[part] + elif isinstance(current,type) and type(current) is not type: + raise ValueError('unsupported selector metaclass') + else: + current=getattr(current,part) + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.frozen_cases(parent,[parts[-1]]) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,KeyError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/tests/test_mutation_harness.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/tests/test_mutation_harness.py new file mode 100644 index 000000000..3ae713c99 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/construction/tests/test_mutation_harness.py @@ -0,0 +1,443 @@ +"""Real runner controls for body-only mutation kills and complete selected populations.""" +import copy +import importlib.util +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import textwrap +import unittest + +ROOT = Path(__file__).resolve().parents[1] +_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') +mutations = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(mutations) + + +class MutationHarnessTests(unittest.TestCase): + def run_fixture(self, methods, selection='fixture.Case', module_tail=''): + source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', selection], + capture_output=True, text=True, timeout=10) + self.assertTrue(output.exists(), p.stderr) + value = json.loads(output.read_text()) + return mutations.classify(value, p.returncode), value, p.returncode + + def test_setup_assertion_is_not_a_kill(self): + outcome, value, _ = self.run_fixture(''' + def setUp(self): self.fail('setup only') + def test_one(self): pass + ''') + self.assertEqual(outcome, 'ERROR', value) + + def test_body_assertion_kills_after_all_selected_bodies_finish(self): + outcome, value, _ = self.run_fixture(''' + def test_one(self): self.fail('body assertion') + def test_two(self): pass + ''') + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) + + def test_dispatch_hook_assertion_without_selected_method_is_error(self): + outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") + self.assertEqual(outcome, 'ERROR', value) + + def test_selected_method_invoked_from_lifecycle_is_error(self): + for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", + "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", + "def tearDown(self): self.test_one()\ndef test_one(self): pass", + "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_clean_identity_survives(self): + outcome, value, _ = self.run_fixture('def test_one(self): pass') + self.assertEqual(outcome, 'SURVIVED', value) + + def test_lifecycle_failures_never_kill_even_with_body_assertion(self): + cases = [ + "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", + "def test_one(self): self.addCleanup(self.fail, 'cleanup')", + "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", + "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", + "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", + "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_errors_skips_and_expected_failures_are_errors(self): + cases = [ + "def test_one(self): raise RuntimeError('body runtime')", + "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", + "@unittest.skip('skip')\ndef test_one(self): pass", + "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", + "@unittest.expectedFailure\ndef test_one(self): pass", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): + for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), + ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) + self.assertEqual(value['assertion_failures'], failures) + outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") + self.assertEqual(outcome, 'SURVIVED', value) + + def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): + outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") + self.assertEqual(outcome, 'ERROR', value) + + def test_lifecycle_subtests_and_subtest_errors_are_errors(self): + for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", + "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): + cases = [ + ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), + ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), + ('def test_one(self): pass', 'fixture.Missing', ''), + ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), + ] + for source, selection, tail in cases: + with self.subTest(selection=selection, tail=tail): + outcome, value, _ = self.run_fixture(source, selection, tail) + self.assertEqual(outcome, 'ERROR', value) + + def test_population_listing_does_not_execute_fixtures_or_bodies(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") + output = root / 'population.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case', '--list'], + capture_output=True, text=True, timeout=10) + self.assertEqual(p.returncode, 0, p.stderr) + self.assertEqual(json.loads(output.read_text()), + {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], + 'invalid_population': []}) + + def test_summary_without_lifecycle_receipt_fails_closed(self): + old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, + expected_failures=0, unexpected_successes=0, successful=False) + self.assertEqual(mutations.classify(old, 1), 'ERROR') + self.assertEqual(mutations.classify({}, 1), 'ERROR') + self.assertEqual(mutations.classify(None, 1), 'ERROR') + + def test_forged_or_missing_accounting_is_error(self): + _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') + for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', + 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', + 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): + with self.subTest(missing=key): + value = copy.deepcopy(receipt) + value.pop(key, None) + self.assertEqual(mutations.classify(value, code), 'ERROR') + for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, + {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, + {'body_entered_ids': []}, {'body_finished_ids': []}, + {'finished_ids': []}, {'body_assertion_ids': []}, + {'body_assertion_ids': ['fixture.Case.test_forged']}, + {'selected_ids': ['synthetic']}, + {'selected_ids': ['unittest.loader._FailedTest.test_one']}, + {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, + {'unexpected_successes': 1}, {'assertion_failures': 2}, + {'subtests': 1}, {'assertion_events': []}, + {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): + with self.subTest(changes=changes): + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') + for exit_code in (2, -9, True): + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + +class LazyBodyHarnessTests(unittest.TestCase): + """A call returning suspended work must never establish complete test execution.""" + + def run_lazy_fixture(self, methods, definitions='', listing=False): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + events = root / 'events' + source = ('import unittest, functools\nfrom pathlib import Path\n' + 'def record(label):\n with Path(' + repr(str(events)) + ').open("a") as out: out.write(label + "\\n")\n' + + textwrap.dedent(definitions) + '\nclass Case(unittest.TestCase):\n' + + textwrap.indent(textwrap.dedent(methods), ' ')) + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + command = [sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case'] + if listing: + command.append('--list') + p = subprocess.run(command, capture_output=True, text=True, timeout=10) + self.assertTrue(output.is_file(), p.stderr) + value = json.loads(output.read_text()) + observed = events.read_text().splitlines() if events.exists() else [] + return mutations.classify(value, p.returncode), value, observed, p.stderr + + def test_ordinary_synchronous_body_positives_remain_supported(self): + survived, value, events, _ = self.run_lazy_fixture("def test_one(self): record('ordinary')") + self.assertEqual(survived, 'SURVIVED', value) + self.assertEqual(events, ['ordinary']) + killed, value, events, _ = self.run_lazy_fixture("def test_one(self):\n record('assertion')\n self.fail('real body assertion')") + self.assertEqual(killed, 'KILLED', value) + self.assertEqual(events, ['assertion']) + + def test_declared_lazy_method_shapes_refuse_mixed_population_before_execution(self): + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + methods = lazy + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body assertion')" + outcome, value, events, _ = self.run_lazy_fixture(methods) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + self.assertTrue(value['invalid_population'], value) + _, population, events, _ = self.run_lazy_fixture(methods, listing=True) + self.assertTrue(population['invalid_population'], population) + self.assertEqual(events, []) + + def test_wrapped_lazy_method_shapes_refuse_before_execution(self): + definitions = ''' + def wrap(method): + @functools.wraps(method) + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + outcome, value, events, _ = self.run_lazy_fixture('@wrap\n' + lazy + "\ndef test_b_assertion(self): self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + + def test_sync_lazy_returns_refuse_without_advancing_suspended_work(self): + definitions = ''' + def generator(): + record('generator advanced') + yield None + async def coroutine(): record('coroutine advanced') + async def async_generator(): + record('async generator advanced') + yield None + class Awaitable: + def __await__(self): + record('custom awaitable advanced') + yield None + ''' + for expression in ('generator()', 'coroutine()', 'async_generator()', 'Awaitable()'): + with self.subTest(expression=expression): + methods = "def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')" + outcome, value, events, stderr = self.run_lazy_fixture(methods, definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + self.assertTrue(value['invalid_population'], value) + self.assertNotIn('was never awaited', stderr) + + def test_decorator_without_wrapped_metadata_cannot_hide_lazy_return(self): + definitions = ''' + def hide(method): + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + outcome, value, events, _ = self.run_lazy_fixture("@hide\ndef test_a_lazy(self):\n record('lazy advanced')\n yield None\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['decorator executed', 'ordinary assertion'], value) + + def test_all_non_none_returns_refuse_without_iterating_custom_objects(self): + definitions = "class DeferredIterable:\n def __iter__(self):\n record('unknown iterable advanced')\n yield None" + for expression in ('False', '0', '[]', 'DeferredIterable()'): + with self.subTest(expression=expression): + outcome, value, events, _ = self.run_lazy_fixture("def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + + +import os +import shutil +import subprocess + +class IdentityHarnessTests(unittest.TestCase): + """Real ordinary-body controls for loader and in-process identity binding.""" + + def run_identity_fixture(self, label, source, selectors=()): + import hashlib + with tempfile.TemporaryDirectory() as temporary: + root=Path(temporary);(root/'tests').mkdir() + runner=root/'run_tests.py' + shutil.copy2(ROOT/'run_tests.py',runner) + events=root/'events' + header=('import unittest\nfrom pathlib import Path\n' + +'def record(label):\n with Path('+repr(str(events))+').open("a") as out: out.write(label+"\\n")\n') + fixture=root/'tests'/'test_identity.py' + fixture.write_text(header+source) + output=root/'receipt.json' + command=[sys.executable,'-B','-S',str(runner),*[],'--output',str(output)] + for selector in selectors:command.extend(['--test',selector]) + p=subprocess.run(command,capture_output=True,text=True,timeout=15) + self.assertTrue(output.exists(),p.stderr) + value=json.loads(output.read_text()) + outcome=mutations.classify(value,p.returncode) + observed=events.read_text().splitlines() if events.exists() else [] + record={'label':label,'optimize':sys.flags.optimize,'fixture_source':header+source, + 'fixture_sha256':hashlib.sha256(fixture.read_bytes()).hexdigest(), + 'command':command,'exit_code':p.returncode,'outcome':outcome, + 'events':observed,'receipt':value,'stdout':p.stdout,'stderr':p.stderr} + destination=os.environ.get('CBZ_IDENTITY_CONTROL_EVIDENCE') + if destination: + out=Path(destination);out.mkdir(parents=True,exist_ok=True) + (out/(label+'.json')).write_text(json.dumps(record,sort_keys=True,indent=2)+'\n') + return outcome,value,observed + + def test_module_alias_subclass_and_population_hooks_refused_before_execution(self): + base=('class C(unittest.TestCase):\n' + +' def test_first(self): record("first")\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + hooks=[('alias','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('alias-assertion','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('subclass','def load_tests(loader, tests, pattern):\n record("hook")\n def replacement(self): record("replacement")\n R=type("C",(C,),{"test_first":replacement,"test_second":replacement,"__module__":__name__,"__qualname__":"C"})\n globals()["C"]=R\n return loader.loadTestsFromTestCase(R)\n'), + ('omission','def load_tests(loader, tests, pattern):\n record("hook")\n return unittest.TestSuite([C("test_first")])\n')] + for label,hook in hooks: + with self.subTest(shape=label): + source=base+hook + if label=='alias-assertion':source=source.replace('def test_first(self): record("first")','def test_first(self):\n record("first")\n self.fail("first body assertion")') + outcome,value,events=self.run_identity_fixture('hook-'+label,source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + source=('class Hidden(unittest.TestCase):\n def test_hidden(self):\n record("hidden")\n self.fail("hidden body retained")\n' + +'class Visible(unittest.TestCase):\n def test_visible(self): record("visible")\n' + +'def __dir__():\n record("module-dir")\n return ["Visible"]\n') + outcome,value,events=self.run_identity_fixture('module-dir-cannot-hide',source) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['hidden','visible'],value) + self.assertEqual(len(value['selected_ids']),2,value) + + def test_named_class_and_method_selection_preserve_exact_population(self): + source='class C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self): record("second")\n' + for label,selectors,wanted in [('class',('test_identity.C',),['first','second']), + ('method',('test_identity.C.test_second',),['second'])]: + with self.subTest(selector=label): + outcome,value,events=self.run_identity_fixture('named-'+label,source,selectors) + self.assertEqual(outcome,'SURVIVED',value) + self.assertEqual(events,wanted,value) + outcome,value,events=self.run_identity_fixture('named-assertion',source.replace('record("first")','record("first"); self.fail("body")'),('test_identity.C',)) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['first','second'],value) + + def test_callable_factory_selector_is_refused_before_factory_or_body(self): + source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'def factory():\n record("factory")\n return unittest.TestSuite([C("test_one")])\n') + outcome,value,events=self.run_identity_fixture('callable-factory',source,('test_identity.factory',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + constructor_fixtures=[ + ('init','class C(unittest.TestCase):\n def __init__(self,*a,**k):\n record("constructor")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n'), + ('new','class C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record("constructor")\n return super().__new__(cls)\n def test_one(self): record("body")\n'), + ('metaclass','class Meta(type):\n def __call__(cls,*a,**k):\n record("metaclass")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record("body")\n'), + ('getattribute','class C(unittest.TestCase):\n def __getattribute__(self,name):\n record("attribute")\n return super().__getattribute__(name)\n def test_one(self): record("body")\n'), + ('setattr','class C(unittest.TestCase):\n def __setattr__(self,name,value):\n record("attribute")\n return super().__setattr__(name,value)\n def test_one(self): record("body")\n'), + ] + for label,source in constructor_fixtures: + for selection in [(),('test_identity.C',),('test_identity.C.'+('test_first' if label=='init' else 'test_one'),)]: + with self.subTest(constructor=label,selector=selection): + outcome,value,events=self.run_identity_fixture('construction-'+label+'-'+str(len(selection))+'-'+('method' if selection and selection[0].count('.')==2 else 'class'),source,selection) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_class_fixture_function_and_code_substitutions_are_refused(self): + base=('def replacement(self): record("replacement")\n' + +'class C(unittest.TestCase):\n' + +' @classmethod\n def setUpClass(cls):\n record("class-setup")\n CHANGE\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + for label,change in [('function','cls.test_one=replacement'),('code','cls.test_one.__code__=replacement.__code__'), + ('same-code-function','cls.test_one=__import__("types").FunctionType(cls.test_one.__code__,cls.test_one.__globals__)')]: + with self.subTest(change=label): + outcome,value,events=self.run_identity_fixture('class-fixture-'+label,base.replace('CHANGE',change)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['class-setup'],value) + self.assertTrue(value['invalid_population'],value) + + source=('class C(unittest.TestCase):\n' + +' def setUp(self):\n record("setup")\n self.__class__=type("C",(type(self),),{"__module__":__name__,"__qualname__":"C"})\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + outcome,value,events=self.run_identity_fixture('instance-class-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['setup'],value) + self.assertTrue(value['invalid_population'],value) + + def test_postload_substitution_refused_before_any_fixture(self): + spec=importlib.util.spec_from_file_location('identity_runtime_probe',ROOT/'run_tests.py') + runtime=importlib.util.module_from_spec(spec);spec.loader.exec_module(runtime) + events=[] + class Case(unittest.TestCase): + @classmethod + def setUpClass(cls):events.append('class-setup') + def setUp(self):events.append('setup') + def test_one(self):events.append('original') + loader=runtime.IdentityLoader();suite=loader.loadTestsFromTestCase(Case) + def replacement(self):events.append('replacement') + Case.test_one=replacement + value=runtime.run_suite(suite,['probe.Case'],loader.bindings,loader.invalid) + self.assertTrue(value['invalid_population'],value) + self.assertEqual(events,[],value) + self.assertEqual(value['tests_run'],0,value) + + def test_custom_testcase_run_is_refused_before_execution(self): + source=('class C(unittest.TestCase):\n' + +' def run(self,result=None):\n record("custom-run")\n return super().run(result)\n' + +' def test_one(self): record("body")\n') + outcome,value,events=self.run_identity_fixture('custom-run',source,('test_identity.C',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_identity_change_during_body_is_not_a_clean_kill(self): + source=('class C(unittest.TestCase):\n' + +' def test_first(self):\n record("first")\n type(self).test_second=type(self).test_first\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + outcome,value,events=self.run_identity_fixture('during-body-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['first'],value) + self.assertTrue(value['invalid_population'],value) + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/run_tests.py new file mode 100644 index 000000000..5e641339f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/run_tests.py @@ -0,0 +1,456 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def ordinary_test_class(self,testCaseClass): + # Construction and attribute dispatch must not rewrite the population. + if type(testCaseClass) is not type: + return False + for name in ('__init__','__new__','__getattribute__','__setattr__','__delattr__'): + if inspect.getattr_static(testCaseClass,name,None) is not inspect.getattr_static(unittest.TestCase,name,None): + return False + for base in testCaseClass.__mro__: + if '__getattr__' in base.__dict__: + return False + for name,value in base.__dict__.items(): + if name.startswith(self.testMethodPrefix) or name=='runTest': + function=value.__func__ if type(value) in (staticmethod,classmethod) else value + if not inspect.isfunction(function): + return False + return True + + def frozen_cases(self,testCaseClass,names): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + # Capture declaration identities before even standard construction. + declared={name:function_chain(getattr(testCaseClass,name,None)) for name in names} + suite=unittest.TestSuite(testCaseClass(name) for name in names) + self.remember(suite) + for test in suite_leaves(suite): + binding=self.bindings.get(id(test)) + original=declared.get(getattr(test,'_testMethodName',None)) + if binding is None or not same_function_chain(binding['declared'],original): + self.invalid.append('selected declaration changed during construction') + elif not same_function_chain(binding['instance'],original): + self.invalid.append('selected instance body changed during construction') + else: + binding['declared']=original + return suite + + def loadTestsFromTestCase(self,testCaseClass): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + names=self.getTestCaseNames(testCaseClass) + if not names and hasattr(testCaseClass,'runTest'): + names=['runTest'] + return self.frozen_cases(testCaseClass,names) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + if type(module) is not type(sys): + self.invalid.append('unsupported module attribute dispatch') + return unittest.TestSuite() + suites=[] + for name in sorted(module.__dict__): + value=module.__dict__[name] + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent=current + if inspect.ismodule(current): + if type(current) is not type(sys): + raise ValueError('unsupported module attribute dispatch') + current=current.__dict__[part] + elif isinstance(current,type): + if type(current) is not type: + raise ValueError('unsupported selector metaclass') + if issubclass(current,unittest.TestCase) and not self.ordinary_test_class(current): + raise ValueError('unsupported TestCase declaration traversal') + declared=inspect.getattr_static(current,part) + if not (inspect.isfunction(declared) or type(declared) in (type,staticmethod,classmethod)): + raise ValueError('unsupported selector descriptor') + current=getattr(current,part) + else: + raise ValueError('unsupported selector object traversal') + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.frozen_cases(parent,[parts[-1]]) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,KeyError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/tests/test_mutation_harness.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/tests/test_mutation_harness.py new file mode 100644 index 000000000..069fe89e4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/exact-descriptor/tests/test_mutation_harness.py @@ -0,0 +1,460 @@ +"""Real runner controls for body-only mutation kills and complete selected populations.""" +import copy +import importlib.util +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import textwrap +import unittest + +ROOT = Path(__file__).resolve().parents[1] +_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') +mutations = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(mutations) + + +class MutationHarnessTests(unittest.TestCase): + def run_fixture(self, methods, selection='fixture.Case', module_tail=''): + source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', selection], + capture_output=True, text=True, timeout=10) + self.assertTrue(output.exists(), p.stderr) + value = json.loads(output.read_text()) + return mutations.classify(value, p.returncode), value, p.returncode + + def test_setup_assertion_is_not_a_kill(self): + outcome, value, _ = self.run_fixture(''' + def setUp(self): self.fail('setup only') + def test_one(self): pass + ''') + self.assertEqual(outcome, 'ERROR', value) + + def test_body_assertion_kills_after_all_selected_bodies_finish(self): + outcome, value, _ = self.run_fixture(''' + def test_one(self): self.fail('body assertion') + def test_two(self): pass + ''') + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) + + def test_dispatch_hook_assertion_without_selected_method_is_error(self): + outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") + self.assertEqual(outcome, 'ERROR', value) + + def test_selected_method_invoked_from_lifecycle_is_error(self): + for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", + "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", + "def tearDown(self): self.test_one()\ndef test_one(self): pass", + "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_clean_identity_survives(self): + outcome, value, _ = self.run_fixture('def test_one(self): pass') + self.assertEqual(outcome, 'SURVIVED', value) + + def test_lifecycle_failures_never_kill_even_with_body_assertion(self): + cases = [ + "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", + "def test_one(self): self.addCleanup(self.fail, 'cleanup')", + "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", + "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", + "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", + "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_errors_skips_and_expected_failures_are_errors(self): + cases = [ + "def test_one(self): raise RuntimeError('body runtime')", + "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", + "@unittest.skip('skip')\ndef test_one(self): pass", + "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", + "@unittest.expectedFailure\ndef test_one(self): pass", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): + for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), + ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) + self.assertEqual(value['assertion_failures'], failures) + outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") + self.assertEqual(outcome, 'SURVIVED', value) + + def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): + outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") + self.assertEqual(outcome, 'ERROR', value) + + def test_lifecycle_subtests_and_subtest_errors_are_errors(self): + for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", + "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): + cases = [ + ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), + ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), + ('def test_one(self): pass', 'fixture.Missing', ''), + ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), + ] + for source, selection, tail in cases: + with self.subTest(selection=selection, tail=tail): + outcome, value, _ = self.run_fixture(source, selection, tail) + self.assertEqual(outcome, 'ERROR', value) + + def test_population_listing_does_not_execute_fixtures_or_bodies(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") + output = root / 'population.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case', '--list'], + capture_output=True, text=True, timeout=10) + self.assertEqual(p.returncode, 0, p.stderr) + self.assertEqual(json.loads(output.read_text()), + {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], + 'invalid_population': []}) + + def test_summary_without_lifecycle_receipt_fails_closed(self): + old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, + expected_failures=0, unexpected_successes=0, successful=False) + self.assertEqual(mutations.classify(old, 1), 'ERROR') + self.assertEqual(mutations.classify({}, 1), 'ERROR') + self.assertEqual(mutations.classify(None, 1), 'ERROR') + + def test_forged_or_missing_accounting_is_error(self): + _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') + for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', + 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', + 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): + with self.subTest(missing=key): + value = copy.deepcopy(receipt) + value.pop(key, None) + self.assertEqual(mutations.classify(value, code), 'ERROR') + for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, + {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, + {'body_entered_ids': []}, {'body_finished_ids': []}, + {'finished_ids': []}, {'body_assertion_ids': []}, + {'body_assertion_ids': ['fixture.Case.test_forged']}, + {'selected_ids': ['synthetic']}, + {'selected_ids': ['unittest.loader._FailedTest.test_one']}, + {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, + {'unexpected_successes': 1}, {'assertion_failures': 2}, + {'subtests': 1}, {'assertion_events': []}, + {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): + with self.subTest(changes=changes): + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') + for exit_code in (2, -9, True): + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + +class LazyBodyHarnessTests(unittest.TestCase): + """A call returning suspended work must never establish complete test execution.""" + + def run_lazy_fixture(self, methods, definitions='', listing=False): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + events = root / 'events' + source = ('import unittest, functools\nfrom pathlib import Path\n' + 'def record(label):\n with Path(' + repr(str(events)) + ').open("a") as out: out.write(label + "\\n")\n' + + textwrap.dedent(definitions) + '\nclass Case(unittest.TestCase):\n' + + textwrap.indent(textwrap.dedent(methods), ' ')) + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + command = [sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case'] + if listing: + command.append('--list') + p = subprocess.run(command, capture_output=True, text=True, timeout=10) + self.assertTrue(output.is_file(), p.stderr) + value = json.loads(output.read_text()) + observed = events.read_text().splitlines() if events.exists() else [] + return mutations.classify(value, p.returncode), value, observed, p.stderr + + def test_ordinary_synchronous_body_positives_remain_supported(self): + survived, value, events, _ = self.run_lazy_fixture("def test_one(self): record('ordinary')") + self.assertEqual(survived, 'SURVIVED', value) + self.assertEqual(events, ['ordinary']) + killed, value, events, _ = self.run_lazy_fixture("def test_one(self):\n record('assertion')\n self.fail('real body assertion')") + self.assertEqual(killed, 'KILLED', value) + self.assertEqual(events, ['assertion']) + + def test_declared_lazy_method_shapes_refuse_mixed_population_before_execution(self): + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + methods = lazy + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body assertion')" + outcome, value, events, _ = self.run_lazy_fixture(methods) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + self.assertTrue(value['invalid_population'], value) + _, population, events, _ = self.run_lazy_fixture(methods, listing=True) + self.assertTrue(population['invalid_population'], population) + self.assertEqual(events, []) + + def test_wrapped_lazy_method_shapes_refuse_before_execution(self): + definitions = ''' + def wrap(method): + @functools.wraps(method) + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + outcome, value, events, _ = self.run_lazy_fixture('@wrap\n' + lazy + "\ndef test_b_assertion(self): self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + + def test_sync_lazy_returns_refuse_without_advancing_suspended_work(self): + definitions = ''' + def generator(): + record('generator advanced') + yield None + async def coroutine(): record('coroutine advanced') + async def async_generator(): + record('async generator advanced') + yield None + class Awaitable: + def __await__(self): + record('custom awaitable advanced') + yield None + ''' + for expression in ('generator()', 'coroutine()', 'async_generator()', 'Awaitable()'): + with self.subTest(expression=expression): + methods = "def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')" + outcome, value, events, stderr = self.run_lazy_fixture(methods, definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + self.assertTrue(value['invalid_population'], value) + self.assertNotIn('was never awaited', stderr) + + def test_decorator_without_wrapped_metadata_cannot_hide_lazy_return(self): + definitions = ''' + def hide(method): + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + outcome, value, events, _ = self.run_lazy_fixture("@hide\ndef test_a_lazy(self):\n record('lazy advanced')\n yield None\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['decorator executed', 'ordinary assertion'], value) + + def test_all_non_none_returns_refuse_without_iterating_custom_objects(self): + definitions = "class DeferredIterable:\n def __iter__(self):\n record('unknown iterable advanced')\n yield None" + for expression in ('False', '0', '[]', 'DeferredIterable()'): + with self.subTest(expression=expression): + outcome, value, events, _ = self.run_lazy_fixture("def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + + +import os +import shutil +import subprocess + +class IdentityHarnessTests(unittest.TestCase): + """Real ordinary-body controls for loader and in-process identity binding.""" + + def run_identity_fixture(self, label, source, selectors=()): + import hashlib + with tempfile.TemporaryDirectory() as temporary: + root=Path(temporary);(root/'tests').mkdir() + runner=root/'run_tests.py' + shutil.copy2(ROOT/'run_tests.py',runner) + events=root/'events' + header=('import unittest\nfrom pathlib import Path\n' + +'def record(label):\n with Path('+repr(str(events))+').open("a") as out: out.write(label+"\\n")\n') + fixture=root/'tests'/'test_identity.py' + fixture.write_text(header+source) + output=root/'receipt.json' + command=[sys.executable,'-B','-S',str(runner),*[],'--output',str(output)] + for selector in selectors:command.extend(['--test',selector]) + p=subprocess.run(command,capture_output=True,text=True,timeout=15) + self.assertTrue(output.exists(),p.stderr) + value=json.loads(output.read_text()) + outcome=mutations.classify(value,p.returncode) + observed=events.read_text().splitlines() if events.exists() else [] + record={'label':label,'optimize':sys.flags.optimize,'fixture_source':header+source, + 'fixture_sha256':hashlib.sha256(fixture.read_bytes()).hexdigest(), + 'command':command,'exit_code':p.returncode,'outcome':outcome, + 'events':observed,'receipt':value,'stdout':p.stdout,'stderr':p.stderr} + destination=os.environ.get('CBZ_IDENTITY_CONTROL_EVIDENCE') + if destination: + out=Path(destination);out.mkdir(parents=True,exist_ok=True) + (out/(label+'.json')).write_text(json.dumps(record,sort_keys=True,indent=2)+'\n') + return outcome,value,observed + + def test_module_alias_subclass_and_population_hooks_refused_before_execution(self): + base=('class C(unittest.TestCase):\n' + +' def test_first(self): record("first")\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + hooks=[('alias','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('alias-assertion','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('subclass','def load_tests(loader, tests, pattern):\n record("hook")\n def replacement(self): record("replacement")\n R=type("C",(C,),{"test_first":replacement,"test_second":replacement,"__module__":__name__,"__qualname__":"C"})\n globals()["C"]=R\n return loader.loadTestsFromTestCase(R)\n'), + ('omission','def load_tests(loader, tests, pattern):\n record("hook")\n return unittest.TestSuite([C("test_first")])\n')] + for label,hook in hooks: + with self.subTest(shape=label): + source=base+hook + if label=='alias-assertion':source=source.replace('def test_first(self): record("first")','def test_first(self):\n record("first")\n self.fail("first body assertion")') + outcome,value,events=self.run_identity_fixture('hook-'+label,source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + source=('class Hidden(unittest.TestCase):\n def test_hidden(self):\n record("hidden")\n self.fail("hidden body retained")\n' + +'class Visible(unittest.TestCase):\n def test_visible(self): record("visible")\n' + +'def __dir__():\n record("module-dir")\n return ["Visible"]\n') + outcome,value,events=self.run_identity_fixture('module-dir-cannot-hide',source) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['hidden','visible'],value) + self.assertEqual(len(value['selected_ids']),2,value) + + def test_named_class_and_method_selection_preserve_exact_population(self): + source='class C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self): record("second")\n' + for label,selectors,wanted in [('class',('test_identity.C',),['first','second']), + ('method',('test_identity.C.test_second',),['second'])]: + with self.subTest(selector=label): + outcome,value,events=self.run_identity_fixture('named-'+label,source,selectors) + self.assertEqual(outcome,'SURVIVED',value) + self.assertEqual(events,wanted,value) + outcome,value,events=self.run_identity_fixture('named-assertion',source.replace('record("first")','record("first"); self.fail("body")'),('test_identity.C',)) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['first','second'],value) + + def test_callable_factory_selector_is_refused_before_factory_or_body(self): + source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'def factory():\n record("factory")\n return unittest.TestSuite([C("test_one")])\n') + outcome,value,events=self.run_identity_fixture('callable-factory',source,('test_identity.factory',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + proxy_source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'class Proxy:\n def __getattr__(self,name):\n record("proxy")\n return C\nproxy=Proxy()\n') + outcome,value,events=self.run_identity_fixture('selector-proxy',proxy_source,('test_identity.proxy.C.test_one',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + constructor_fixtures=[ + ('init','class C(unittest.TestCase):\n def __init__(self,*a,**k):\n record("constructor")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n'), + ('new','class C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record("constructor")\n return super().__new__(cls)\n def test_one(self): record("body")\n'), + ('metaclass','class Meta(type):\n def __call__(cls,*a,**k):\n record("metaclass")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record("body")\n'), + ('getattribute','class C(unittest.TestCase):\n def __getattribute__(self,name):\n record("attribute")\n return super().__getattribute__(name)\n def test_one(self): record("body")\n'), + ('setattr','class C(unittest.TestCase):\n def __setattr__(self,name,value):\n record("attribute")\n return super().__setattr__(name,value)\n def test_one(self): record("body")\n'), + ] + constructor_fixtures.append(('descriptor','class Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record("descriptor")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n test_second=Descriptor(test_second)\n')) + for kind in ('staticmethod','classmethod'): + constructor_fixtures.append(('descriptor-'+kind,'class Alias('+kind+'):\n def __get__(self,instance,owner):\n record("descriptor-subclass")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n test_second=Alias(test_second)\n')) + constructor_fixtures.append(('special-descriptor','class InitDescriptor:\n def __get__(self,instance,owner):\n record("special-descriptor")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record("body")\n')) + for label,source in constructor_fixtures: + for selection in [(),('test_identity.C',),('test_identity.C.'+('test_first' if label=='init' else 'test_second' if label.startswith('descriptor') else 'test_one'),)]: + with self.subTest(constructor=label,selector=selection): + outcome,value,events=self.run_identity_fixture('construction-'+label+'-'+str(len(selection))+'-'+('method' if selection and selection[0].count('.')==2 else 'class'),source,selection) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + helper_source=('class Alias(staticmethod):\n def __get__(self,instance,owner):\n record("helper-descriptor")\n return owner.test_one.__get__(instance,owner)\n' + +'class C(unittest.TestCase):\n def test_one(self): record("test")\n def helper(self):\n record("retained-helper")\n self.fail("original helper body")\n helper=Alias(helper)\n') + outcome,value,events=self.run_identity_fixture('selector-helper-descriptor',helper_source,('test_identity.C.helper',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_class_fixture_function_and_code_substitutions_are_refused(self): + base=('def replacement(self): record("replacement")\n' + +'class C(unittest.TestCase):\n' + +' @classmethod\n def setUpClass(cls):\n record("class-setup")\n CHANGE\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + for label,change in [('function','cls.test_one=replacement'),('code','cls.test_one.__code__=replacement.__code__'), + ('same-code-function','cls.test_one=__import__("types").FunctionType(cls.test_one.__code__,cls.test_one.__globals__)')]: + with self.subTest(change=label): + outcome,value,events=self.run_identity_fixture('class-fixture-'+label,base.replace('CHANGE',change)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['class-setup'],value) + self.assertTrue(value['invalid_population'],value) + + source=('class C(unittest.TestCase):\n' + +' def setUp(self):\n record("setup")\n self.__class__=type("C",(type(self),),{"__module__":__name__,"__qualname__":"C"})\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + outcome,value,events=self.run_identity_fixture('instance-class-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['setup'],value) + self.assertTrue(value['invalid_population'],value) + + def test_postload_substitution_refused_before_any_fixture(self): + spec=importlib.util.spec_from_file_location('identity_runtime_probe',ROOT/'run_tests.py') + runtime=importlib.util.module_from_spec(spec);spec.loader.exec_module(runtime) + events=[] + class Case(unittest.TestCase): + @classmethod + def setUpClass(cls):events.append('class-setup') + def setUp(self):events.append('setup') + def test_one(self):events.append('original') + loader=runtime.IdentityLoader();suite=loader.loadTestsFromTestCase(Case) + def replacement(self):events.append('replacement') + Case.test_one=replacement + value=runtime.run_suite(suite,['probe.Case'],loader.bindings,loader.invalid) + self.assertTrue(value['invalid_population'],value) + self.assertEqual(events,[],value) + self.assertEqual(value['tests_run'],0,value) + + def test_custom_testcase_run_is_refused_before_execution(self): + source=('class C(unittest.TestCase):\n' + +' def run(self,result=None):\n record("custom-run")\n return super().run(result)\n' + +' def test_one(self): record("body")\n') + outcome,value,events=self.run_identity_fixture('custom-run',source,('test_identity.C',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_identity_change_during_body_is_not_a_clean_kill(self): + source=('class C(unittest.TestCase):\n' + +' def test_first(self):\n record("first")\n type(self).test_second=type(self).test_first\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + outcome,value,events=self.run_identity_fixture('during-body-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['first'],value) + self.assertTrue(value['invalid_population'],value) + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/run_tests.py new file mode 100644 index 000000000..c9fec335f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/run_tests.py @@ -0,0 +1,396 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def loadTestsFromTestCase(self,testCaseClass): + return self.remember(super().loadTestsFromTestCase(testCaseClass)) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + suites=[] + for name in dir(module): + value=getattr(module,name) + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent,current=current,getattr(current,part) + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.remember(unittest.TestSuite([parent(parts[-1])])) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/tests/test_mutation_harness.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/tests/test_mutation_harness.py new file mode 100644 index 000000000..92ed83038 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/initial/tests/test_mutation_harness.py @@ -0,0 +1,420 @@ +"""Real runner controls for body-only mutation kills and complete selected populations.""" +import copy +import importlib.util +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import textwrap +import unittest + +ROOT = Path(__file__).resolve().parents[1] +_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') +mutations = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(mutations) + + +class MutationHarnessTests(unittest.TestCase): + def run_fixture(self, methods, selection='fixture.Case', module_tail=''): + source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', selection], + capture_output=True, text=True, timeout=10) + self.assertTrue(output.exists(), p.stderr) + value = json.loads(output.read_text()) + return mutations.classify(value, p.returncode), value, p.returncode + + def test_setup_assertion_is_not_a_kill(self): + outcome, value, _ = self.run_fixture(''' + def setUp(self): self.fail('setup only') + def test_one(self): pass + ''') + self.assertEqual(outcome, 'ERROR', value) + + def test_body_assertion_kills_after_all_selected_bodies_finish(self): + outcome, value, _ = self.run_fixture(''' + def test_one(self): self.fail('body assertion') + def test_two(self): pass + ''') + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) + + def test_dispatch_hook_assertion_without_selected_method_is_error(self): + outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") + self.assertEqual(outcome, 'ERROR', value) + + def test_selected_method_invoked_from_lifecycle_is_error(self): + for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", + "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", + "def tearDown(self): self.test_one()\ndef test_one(self): pass", + "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_clean_identity_survives(self): + outcome, value, _ = self.run_fixture('def test_one(self): pass') + self.assertEqual(outcome, 'SURVIVED', value) + + def test_lifecycle_failures_never_kill_even_with_body_assertion(self): + cases = [ + "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", + "def test_one(self): self.addCleanup(self.fail, 'cleanup')", + "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", + "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", + "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", + "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_errors_skips_and_expected_failures_are_errors(self): + cases = [ + "def test_one(self): raise RuntimeError('body runtime')", + "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", + "@unittest.skip('skip')\ndef test_one(self): pass", + "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", + "@unittest.expectedFailure\ndef test_one(self): pass", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): + for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), + ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) + self.assertEqual(value['assertion_failures'], failures) + outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") + self.assertEqual(outcome, 'SURVIVED', value) + + def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): + outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") + self.assertEqual(outcome, 'ERROR', value) + + def test_lifecycle_subtests_and_subtest_errors_are_errors(self): + for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", + "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): + cases = [ + ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), + ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), + ('def test_one(self): pass', 'fixture.Missing', ''), + ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), + ] + for source, selection, tail in cases: + with self.subTest(selection=selection, tail=tail): + outcome, value, _ = self.run_fixture(source, selection, tail) + self.assertEqual(outcome, 'ERROR', value) + + def test_population_listing_does_not_execute_fixtures_or_bodies(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") + output = root / 'population.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case', '--list'], + capture_output=True, text=True, timeout=10) + self.assertEqual(p.returncode, 0, p.stderr) + self.assertEqual(json.loads(output.read_text()), + {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], + 'invalid_population': []}) + + def test_summary_without_lifecycle_receipt_fails_closed(self): + old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, + expected_failures=0, unexpected_successes=0, successful=False) + self.assertEqual(mutations.classify(old, 1), 'ERROR') + self.assertEqual(mutations.classify({}, 1), 'ERROR') + self.assertEqual(mutations.classify(None, 1), 'ERROR') + + def test_forged_or_missing_accounting_is_error(self): + _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') + for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', + 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', + 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): + with self.subTest(missing=key): + value = copy.deepcopy(receipt) + value.pop(key, None) + self.assertEqual(mutations.classify(value, code), 'ERROR') + for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, + {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, + {'body_entered_ids': []}, {'body_finished_ids': []}, + {'finished_ids': []}, {'body_assertion_ids': []}, + {'body_assertion_ids': ['fixture.Case.test_forged']}, + {'selected_ids': ['synthetic']}, + {'selected_ids': ['unittest.loader._FailedTest.test_one']}, + {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, + {'unexpected_successes': 1}, {'assertion_failures': 2}, + {'subtests': 1}, {'assertion_events': []}, + {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): + with self.subTest(changes=changes): + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') + for exit_code in (2, -9, True): + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + +class LazyBodyHarnessTests(unittest.TestCase): + """A call returning suspended work must never establish complete test execution.""" + + def run_lazy_fixture(self, methods, definitions='', listing=False): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + events = root / 'events' + source = ('import unittest, functools\nfrom pathlib import Path\n' + 'def record(label):\n with Path(' + repr(str(events)) + ').open("a") as out: out.write(label + "\\n")\n' + + textwrap.dedent(definitions) + '\nclass Case(unittest.TestCase):\n' + + textwrap.indent(textwrap.dedent(methods), ' ')) + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + command = [sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case'] + if listing: + command.append('--list') + p = subprocess.run(command, capture_output=True, text=True, timeout=10) + self.assertTrue(output.is_file(), p.stderr) + value = json.loads(output.read_text()) + observed = events.read_text().splitlines() if events.exists() else [] + return mutations.classify(value, p.returncode), value, observed, p.stderr + + def test_ordinary_synchronous_body_positives_remain_supported(self): + survived, value, events, _ = self.run_lazy_fixture("def test_one(self): record('ordinary')") + self.assertEqual(survived, 'SURVIVED', value) + self.assertEqual(events, ['ordinary']) + killed, value, events, _ = self.run_lazy_fixture("def test_one(self):\n record('assertion')\n self.fail('real body assertion')") + self.assertEqual(killed, 'KILLED', value) + self.assertEqual(events, ['assertion']) + + def test_declared_lazy_method_shapes_refuse_mixed_population_before_execution(self): + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + methods = lazy + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body assertion')" + outcome, value, events, _ = self.run_lazy_fixture(methods) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + self.assertTrue(value['invalid_population'], value) + _, population, events, _ = self.run_lazy_fixture(methods, listing=True) + self.assertTrue(population['invalid_population'], population) + self.assertEqual(events, []) + + def test_wrapped_lazy_method_shapes_refuse_before_execution(self): + definitions = ''' + def wrap(method): + @functools.wraps(method) + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + outcome, value, events, _ = self.run_lazy_fixture('@wrap\n' + lazy + "\ndef test_b_assertion(self): self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + + def test_sync_lazy_returns_refuse_without_advancing_suspended_work(self): + definitions = ''' + def generator(): + record('generator advanced') + yield None + async def coroutine(): record('coroutine advanced') + async def async_generator(): + record('async generator advanced') + yield None + class Awaitable: + def __await__(self): + record('custom awaitable advanced') + yield None + ''' + for expression in ('generator()', 'coroutine()', 'async_generator()', 'Awaitable()'): + with self.subTest(expression=expression): + methods = "def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')" + outcome, value, events, stderr = self.run_lazy_fixture(methods, definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + self.assertTrue(value['invalid_population'], value) + self.assertNotIn('was never awaited', stderr) + + def test_decorator_without_wrapped_metadata_cannot_hide_lazy_return(self): + definitions = ''' + def hide(method): + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + outcome, value, events, _ = self.run_lazy_fixture("@hide\ndef test_a_lazy(self):\n record('lazy advanced')\n yield None\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['decorator executed', 'ordinary assertion'], value) + + def test_all_non_none_returns_refuse_without_iterating_custom_objects(self): + definitions = "class DeferredIterable:\n def __iter__(self):\n record('unknown iterable advanced')\n yield None" + for expression in ('False', '0', '[]', 'DeferredIterable()'): + with self.subTest(expression=expression): + outcome, value, events, _ = self.run_lazy_fixture("def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + + +import os +import shutil +import subprocess + +class IdentityHarnessTests(unittest.TestCase): + """Real ordinary-body controls for loader and in-process identity binding.""" + + def run_identity_fixture(self, label, source, selectors=()): + import hashlib + with tempfile.TemporaryDirectory() as temporary: + root=Path(temporary);(root/'tests').mkdir() + runner=root/'run_tests.py' + shutil.copy2(ROOT/'run_tests.py',runner) + events=root/'events' + header=('import unittest\nfrom pathlib import Path\n' + +'def record(label):\n with Path('+repr(str(events))+').open("a") as out: out.write(label+"\\n")\n') + fixture=root/'tests'/'test_identity.py' + fixture.write_text(header+source) + output=root/'receipt.json' + command=[sys.executable,'-B','-S',str(runner),*[],'--output',str(output)] + for selector in selectors:command.extend(['--test',selector]) + p=subprocess.run(command,capture_output=True,text=True,timeout=15) + self.assertTrue(output.exists(),p.stderr) + value=json.loads(output.read_text()) + outcome=mutations.classify(value,p.returncode) + observed=events.read_text().splitlines() if events.exists() else [] + record={'label':label,'optimize':sys.flags.optimize,'fixture_source':header+source, + 'fixture_sha256':hashlib.sha256(fixture.read_bytes()).hexdigest(), + 'command':command,'exit_code':p.returncode,'outcome':outcome, + 'events':observed,'receipt':value,'stdout':p.stdout,'stderr':p.stderr} + destination=os.environ.get('CBZ_IDENTITY_CONTROL_EVIDENCE') + if destination: + out=Path(destination);out.mkdir(parents=True,exist_ok=True) + (out/(label+'.json')).write_text(json.dumps(record,sort_keys=True,indent=2)+'\n') + return outcome,value,observed + + def test_module_alias_subclass_and_population_hooks_refused_before_execution(self): + base=('class C(unittest.TestCase):\n' + +' def test_first(self): record("first")\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + hooks=[('alias','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('alias-assertion','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('subclass','def load_tests(loader, tests, pattern):\n record("hook")\n def replacement(self): record("replacement")\n R=type("C",(C,),{"test_first":replacement,"test_second":replacement,"__module__":__name__,"__qualname__":"C"})\n globals()["C"]=R\n return loader.loadTestsFromTestCase(R)\n'), + ('omission','def load_tests(loader, tests, pattern):\n record("hook")\n return unittest.TestSuite([C("test_first")])\n')] + for label,hook in hooks: + with self.subTest(shape=label): + source=base+hook + if label=='alias-assertion':source=source.replace('def test_first(self): record("first")','def test_first(self):\n record("first")\n self.fail("first body assertion")') + outcome,value,events=self.run_identity_fixture('hook-'+label,source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_named_class_and_method_selection_preserve_exact_population(self): + source='class C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self): record("second")\n' + for label,selectors,wanted in [('class',('test_identity.C',),['first','second']), + ('method',('test_identity.C.test_second',),['second'])]: + with self.subTest(selector=label): + outcome,value,events=self.run_identity_fixture('named-'+label,source,selectors) + self.assertEqual(outcome,'SURVIVED',value) + self.assertEqual(events,wanted,value) + outcome,value,events=self.run_identity_fixture('named-assertion',source.replace('record("first")','record("first"); self.fail("body")'),('test_identity.C',)) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['first','second'],value) + + def test_callable_factory_selector_is_refused_before_factory_or_body(self): + source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'def factory():\n record("factory")\n return unittest.TestSuite([C("test_one")])\n') + outcome,value,events=self.run_identity_fixture('callable-factory',source,('test_identity.factory',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_class_fixture_function_and_code_substitutions_are_refused(self): + base=('def replacement(self): record("replacement")\n' + +'class C(unittest.TestCase):\n' + +' @classmethod\n def setUpClass(cls):\n record("class-setup")\n CHANGE\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + for label,change in [('function','cls.test_one=replacement'),('code','cls.test_one.__code__=replacement.__code__'), + ('same-code-function','cls.test_one=__import__("types").FunctionType(cls.test_one.__code__,cls.test_one.__globals__)')]: + with self.subTest(change=label): + outcome,value,events=self.run_identity_fixture('class-fixture-'+label,base.replace('CHANGE',change)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['class-setup'],value) + self.assertTrue(value['invalid_population'],value) + + source=('class C(unittest.TestCase):\n' + +' def setUp(self):\n record("setup")\n self.__class__=type("C",(type(self),),{"__module__":__name__,"__qualname__":"C"})\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + outcome,value,events=self.run_identity_fixture('instance-class-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['setup'],value) + self.assertTrue(value['invalid_population'],value) + + def test_postload_substitution_refused_before_any_fixture(self): + spec=importlib.util.spec_from_file_location('identity_runtime_probe',ROOT/'run_tests.py') + runtime=importlib.util.module_from_spec(spec);spec.loader.exec_module(runtime) + events=[] + class Case(unittest.TestCase): + @classmethod + def setUpClass(cls):events.append('class-setup') + def setUp(self):events.append('setup') + def test_one(self):events.append('original') + loader=runtime.IdentityLoader();suite=loader.loadTestsFromTestCase(Case) + def replacement(self):events.append('replacement') + Case.test_one=replacement + value=runtime.run_suite(suite,['probe.Case'],loader.bindings,loader.invalid) + self.assertTrue(value['invalid_population'],value) + self.assertEqual(events,[],value) + self.assertEqual(value['tests_run'],0,value) + + def test_custom_testcase_run_is_refused_before_execution(self): + source=('class C(unittest.TestCase):\n' + +' def run(self,result=None):\n record("custom-run")\n return super().run(result)\n' + +' def test_one(self): record("body")\n') + outcome,value,events=self.run_identity_fixture('custom-run',source,('test_identity.C',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_identity_change_during_body_is_not_a_clean_kill(self): + source=('class C(unittest.TestCase):\n' + +' def test_first(self):\n record("first")\n type(self).test_second=type(self).test_first\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + outcome,value,events=self.run_identity_fixture('during-body-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['first'],value) + self.assertTrue(value['invalid_population'],value) + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/run_tests.py new file mode 100644 index 000000000..9d5d46d31 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/run_tests.py @@ -0,0 +1,456 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def ordinary_test_class(self,testCaseClass): + # Construction and attribute dispatch must not rewrite the population. + if type(testCaseClass) is not type: + return False + for name in ('__init__','__new__','__getattribute__','__setattr__','__delattr__'): + if getattr(testCaseClass,name,None) is not getattr(unittest.TestCase,name,None): + return False + for base in testCaseClass.__mro__: + if '__getattr__' in base.__dict__: + return False + for name,value in base.__dict__.items(): + if name.startswith(self.testMethodPrefix) or name=='runTest': + function=value.__func__ if isinstance(value,(staticmethod,classmethod)) else value + if not inspect.isfunction(function): + return False + return True + + def frozen_cases(self,testCaseClass,names): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + # Capture declaration identities before even standard construction. + declared={name:function_chain(getattr(testCaseClass,name,None)) for name in names} + suite=unittest.TestSuite(testCaseClass(name) for name in names) + self.remember(suite) + for test in suite_leaves(suite): + binding=self.bindings.get(id(test)) + original=declared.get(getattr(test,'_testMethodName',None)) + if binding is None or not same_function_chain(binding['declared'],original): + self.invalid.append('selected declaration changed during construction') + elif not same_function_chain(binding['instance'],original): + self.invalid.append('selected instance body changed during construction') + else: + binding['declared']=original + return suite + + def loadTestsFromTestCase(self,testCaseClass): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + names=self.getTestCaseNames(testCaseClass) + if not names and hasattr(testCaseClass,'runTest'): + names=['runTest'] + return self.frozen_cases(testCaseClass,names) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + if type(module) is not type(sys): + self.invalid.append('unsupported module attribute dispatch') + return unittest.TestSuite() + suites=[] + for name in sorted(module.__dict__): + value=module.__dict__[name] + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent=current + if inspect.ismodule(current): + if type(current) is not type(sys): + raise ValueError('unsupported module attribute dispatch') + current=current.__dict__[part] + elif isinstance(current,type): + if type(current) is not type: + raise ValueError('unsupported selector metaclass') + if issubclass(current,unittest.TestCase) and not self.ordinary_test_class(current): + raise ValueError('unsupported TestCase declaration traversal') + declared=inspect.getattr_static(current,part) + if not (inspect.isfunction(declared) or isinstance(declared,(type,staticmethod,classmethod))): + raise ValueError('unsupported selector descriptor') + current=getattr(current,part) + else: + raise ValueError('unsupported selector object traversal') + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.frozen_cases(parent,[parts[-1]]) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,KeyError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/tests/test_mutation_harness.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/tests/test_mutation_harness.py new file mode 100644 index 000000000..9aad67f33 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/historical-source/selector/tests/test_mutation_harness.py @@ -0,0 +1,450 @@ +"""Real runner controls for body-only mutation kills and complete selected populations.""" +import copy +import importlib.util +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import textwrap +import unittest + +ROOT = Path(__file__).resolve().parents[1] +_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') +mutations = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(mutations) + + +class MutationHarnessTests(unittest.TestCase): + def run_fixture(self, methods, selection='fixture.Case', module_tail=''): + source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', selection], + capture_output=True, text=True, timeout=10) + self.assertTrue(output.exists(), p.stderr) + value = json.loads(output.read_text()) + return mutations.classify(value, p.returncode), value, p.returncode + + def test_setup_assertion_is_not_a_kill(self): + outcome, value, _ = self.run_fixture(''' + def setUp(self): self.fail('setup only') + def test_one(self): pass + ''') + self.assertEqual(outcome, 'ERROR', value) + + def test_body_assertion_kills_after_all_selected_bodies_finish(self): + outcome, value, _ = self.run_fixture(''' + def test_one(self): self.fail('body assertion') + def test_two(self): pass + ''') + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) + + def test_dispatch_hook_assertion_without_selected_method_is_error(self): + outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") + self.assertEqual(outcome, 'ERROR', value) + + def test_selected_method_invoked_from_lifecycle_is_error(self): + for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", + "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", + "def tearDown(self): self.test_one()\ndef test_one(self): pass", + "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_clean_identity_survives(self): + outcome, value, _ = self.run_fixture('def test_one(self): pass') + self.assertEqual(outcome, 'SURVIVED', value) + + def test_lifecycle_failures_never_kill_even_with_body_assertion(self): + cases = [ + "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", + "def test_one(self): self.addCleanup(self.fail, 'cleanup')", + "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", + "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", + "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", + "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_errors_skips_and_expected_failures_are_errors(self): + cases = [ + "def test_one(self): raise RuntimeError('body runtime')", + "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", + "@unittest.skip('skip')\ndef test_one(self): pass", + "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", + "@unittest.expectedFailure\ndef test_one(self): pass", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): + for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), + ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) + self.assertEqual(value['assertion_failures'], failures) + outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") + self.assertEqual(outcome, 'SURVIVED', value) + + def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): + outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") + self.assertEqual(outcome, 'ERROR', value) + + def test_lifecycle_subtests_and_subtest_errors_are_errors(self): + for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", + "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): + cases = [ + ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), + ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), + ('def test_one(self): pass', 'fixture.Missing', ''), + ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), + ] + for source, selection, tail in cases: + with self.subTest(selection=selection, tail=tail): + outcome, value, _ = self.run_fixture(source, selection, tail) + self.assertEqual(outcome, 'ERROR', value) + + def test_population_listing_does_not_execute_fixtures_or_bodies(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") + output = root / 'population.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case', '--list'], + capture_output=True, text=True, timeout=10) + self.assertEqual(p.returncode, 0, p.stderr) + self.assertEqual(json.loads(output.read_text()), + {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], + 'invalid_population': []}) + + def test_summary_without_lifecycle_receipt_fails_closed(self): + old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, + expected_failures=0, unexpected_successes=0, successful=False) + self.assertEqual(mutations.classify(old, 1), 'ERROR') + self.assertEqual(mutations.classify({}, 1), 'ERROR') + self.assertEqual(mutations.classify(None, 1), 'ERROR') + + def test_forged_or_missing_accounting_is_error(self): + _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') + for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', + 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', + 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): + with self.subTest(missing=key): + value = copy.deepcopy(receipt) + value.pop(key, None) + self.assertEqual(mutations.classify(value, code), 'ERROR') + for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, + {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, + {'body_entered_ids': []}, {'body_finished_ids': []}, + {'finished_ids': []}, {'body_assertion_ids': []}, + {'body_assertion_ids': ['fixture.Case.test_forged']}, + {'selected_ids': ['synthetic']}, + {'selected_ids': ['unittest.loader._FailedTest.test_one']}, + {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, + {'unexpected_successes': 1}, {'assertion_failures': 2}, + {'subtests': 1}, {'assertion_events': []}, + {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): + with self.subTest(changes=changes): + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') + for exit_code in (2, -9, True): + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + +class LazyBodyHarnessTests(unittest.TestCase): + """A call returning suspended work must never establish complete test execution.""" + + def run_lazy_fixture(self, methods, definitions='', listing=False): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + events = root / 'events' + source = ('import unittest, functools\nfrom pathlib import Path\n' + 'def record(label):\n with Path(' + repr(str(events)) + ').open("a") as out: out.write(label + "\\n")\n' + + textwrap.dedent(definitions) + '\nclass Case(unittest.TestCase):\n' + + textwrap.indent(textwrap.dedent(methods), ' ')) + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + command = [sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case'] + if listing: + command.append('--list') + p = subprocess.run(command, capture_output=True, text=True, timeout=10) + self.assertTrue(output.is_file(), p.stderr) + value = json.loads(output.read_text()) + observed = events.read_text().splitlines() if events.exists() else [] + return mutations.classify(value, p.returncode), value, observed, p.stderr + + def test_ordinary_synchronous_body_positives_remain_supported(self): + survived, value, events, _ = self.run_lazy_fixture("def test_one(self): record('ordinary')") + self.assertEqual(survived, 'SURVIVED', value) + self.assertEqual(events, ['ordinary']) + killed, value, events, _ = self.run_lazy_fixture("def test_one(self):\n record('assertion')\n self.fail('real body assertion')") + self.assertEqual(killed, 'KILLED', value) + self.assertEqual(events, ['assertion']) + + def test_declared_lazy_method_shapes_refuse_mixed_population_before_execution(self): + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + methods = lazy + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body assertion')" + outcome, value, events, _ = self.run_lazy_fixture(methods) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + self.assertTrue(value['invalid_population'], value) + _, population, events, _ = self.run_lazy_fixture(methods, listing=True) + self.assertTrue(population['invalid_population'], population) + self.assertEqual(events, []) + + def test_wrapped_lazy_method_shapes_refuse_before_execution(self): + definitions = ''' + def wrap(method): + @functools.wraps(method) + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + outcome, value, events, _ = self.run_lazy_fixture('@wrap\n' + lazy + "\ndef test_b_assertion(self): self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + + def test_sync_lazy_returns_refuse_without_advancing_suspended_work(self): + definitions = ''' + def generator(): + record('generator advanced') + yield None + async def coroutine(): record('coroutine advanced') + async def async_generator(): + record('async generator advanced') + yield None + class Awaitable: + def __await__(self): + record('custom awaitable advanced') + yield None + ''' + for expression in ('generator()', 'coroutine()', 'async_generator()', 'Awaitable()'): + with self.subTest(expression=expression): + methods = "def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')" + outcome, value, events, stderr = self.run_lazy_fixture(methods, definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + self.assertTrue(value['invalid_population'], value) + self.assertNotIn('was never awaited', stderr) + + def test_decorator_without_wrapped_metadata_cannot_hide_lazy_return(self): + definitions = ''' + def hide(method): + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + outcome, value, events, _ = self.run_lazy_fixture("@hide\ndef test_a_lazy(self):\n record('lazy advanced')\n yield None\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['decorator executed', 'ordinary assertion'], value) + + def test_all_non_none_returns_refuse_without_iterating_custom_objects(self): + definitions = "class DeferredIterable:\n def __iter__(self):\n record('unknown iterable advanced')\n yield None" + for expression in ('False', '0', '[]', 'DeferredIterable()'): + with self.subTest(expression=expression): + outcome, value, events, _ = self.run_lazy_fixture("def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + + +import os +import shutil +import subprocess + +class IdentityHarnessTests(unittest.TestCase): + """Real ordinary-body controls for loader and in-process identity binding.""" + + def run_identity_fixture(self, label, source, selectors=()): + import hashlib + with tempfile.TemporaryDirectory() as temporary: + root=Path(temporary);(root/'tests').mkdir() + runner=root/'run_tests.py' + shutil.copy2(ROOT/'run_tests.py',runner) + events=root/'events' + header=('import unittest\nfrom pathlib import Path\n' + +'def record(label):\n with Path('+repr(str(events))+').open("a") as out: out.write(label+"\\n")\n') + fixture=root/'tests'/'test_identity.py' + fixture.write_text(header+source) + output=root/'receipt.json' + command=[sys.executable,'-B','-S',str(runner),*[],'--output',str(output)] + for selector in selectors:command.extend(['--test',selector]) + p=subprocess.run(command,capture_output=True,text=True,timeout=15) + self.assertTrue(output.exists(),p.stderr) + value=json.loads(output.read_text()) + outcome=mutations.classify(value,p.returncode) + observed=events.read_text().splitlines() if events.exists() else [] + record={'label':label,'optimize':sys.flags.optimize,'fixture_source':header+source, + 'fixture_sha256':hashlib.sha256(fixture.read_bytes()).hexdigest(), + 'command':command,'exit_code':p.returncode,'outcome':outcome, + 'events':observed,'receipt':value,'stdout':p.stdout,'stderr':p.stderr} + destination=os.environ.get('CBZ_IDENTITY_CONTROL_EVIDENCE') + if destination: + out=Path(destination);out.mkdir(parents=True,exist_ok=True) + (out/(label+'.json')).write_text(json.dumps(record,sort_keys=True,indent=2)+'\n') + return outcome,value,observed + + def test_module_alias_subclass_and_population_hooks_refused_before_execution(self): + base=('class C(unittest.TestCase):\n' + +' def test_first(self): record("first")\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + hooks=[('alias','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('alias-assertion','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('subclass','def load_tests(loader, tests, pattern):\n record("hook")\n def replacement(self): record("replacement")\n R=type("C",(C,),{"test_first":replacement,"test_second":replacement,"__module__":__name__,"__qualname__":"C"})\n globals()["C"]=R\n return loader.loadTestsFromTestCase(R)\n'), + ('omission','def load_tests(loader, tests, pattern):\n record("hook")\n return unittest.TestSuite([C("test_first")])\n')] + for label,hook in hooks: + with self.subTest(shape=label): + source=base+hook + if label=='alias-assertion':source=source.replace('def test_first(self): record("first")','def test_first(self):\n record("first")\n self.fail("first body assertion")') + outcome,value,events=self.run_identity_fixture('hook-'+label,source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + source=('class Hidden(unittest.TestCase):\n def test_hidden(self):\n record("hidden")\n self.fail("hidden body retained")\n' + +'class Visible(unittest.TestCase):\n def test_visible(self): record("visible")\n' + +'def __dir__():\n record("module-dir")\n return ["Visible"]\n') + outcome,value,events=self.run_identity_fixture('module-dir-cannot-hide',source) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['hidden','visible'],value) + self.assertEqual(len(value['selected_ids']),2,value) + + def test_named_class_and_method_selection_preserve_exact_population(self): + source='class C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self): record("second")\n' + for label,selectors,wanted in [('class',('test_identity.C',),['first','second']), + ('method',('test_identity.C.test_second',),['second'])]: + with self.subTest(selector=label): + outcome,value,events=self.run_identity_fixture('named-'+label,source,selectors) + self.assertEqual(outcome,'SURVIVED',value) + self.assertEqual(events,wanted,value) + outcome,value,events=self.run_identity_fixture('named-assertion',source.replace('record("first")','record("first"); self.fail("body")'),('test_identity.C',)) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['first','second'],value) + + def test_callable_factory_selector_is_refused_before_factory_or_body(self): + source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'def factory():\n record("factory")\n return unittest.TestSuite([C("test_one")])\n') + outcome,value,events=self.run_identity_fixture('callable-factory',source,('test_identity.factory',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + proxy_source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'class Proxy:\n def __getattr__(self,name):\n record("proxy")\n return C\nproxy=Proxy()\n') + outcome,value,events=self.run_identity_fixture('selector-proxy',proxy_source,('test_identity.proxy.C.test_one',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + constructor_fixtures=[ + ('init','class C(unittest.TestCase):\n def __init__(self,*a,**k):\n record("constructor")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n'), + ('new','class C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record("constructor")\n return super().__new__(cls)\n def test_one(self): record("body")\n'), + ('metaclass','class Meta(type):\n def __call__(cls,*a,**k):\n record("metaclass")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record("body")\n'), + ('getattribute','class C(unittest.TestCase):\n def __getattribute__(self,name):\n record("attribute")\n return super().__getattribute__(name)\n def test_one(self): record("body")\n'), + ('setattr','class C(unittest.TestCase):\n def __setattr__(self,name,value):\n record("attribute")\n return super().__setattr__(name,value)\n def test_one(self): record("body")\n'), + ] + constructor_fixtures.append(('descriptor','class Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record("descriptor")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n test_second=Descriptor(test_second)\n')) + for label,source in constructor_fixtures: + for selection in [(),('test_identity.C',),('test_identity.C.'+('test_first' if label=='init' else 'test_second' if label=='descriptor' else 'test_one'),)]: + with self.subTest(constructor=label,selector=selection): + outcome,value,events=self.run_identity_fixture('construction-'+label+'-'+str(len(selection))+'-'+('method' if selection and selection[0].count('.')==2 else 'class'),source,selection) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_class_fixture_function_and_code_substitutions_are_refused(self): + base=('def replacement(self): record("replacement")\n' + +'class C(unittest.TestCase):\n' + +' @classmethod\n def setUpClass(cls):\n record("class-setup")\n CHANGE\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + for label,change in [('function','cls.test_one=replacement'),('code','cls.test_one.__code__=replacement.__code__'), + ('same-code-function','cls.test_one=__import__("types").FunctionType(cls.test_one.__code__,cls.test_one.__globals__)')]: + with self.subTest(change=label): + outcome,value,events=self.run_identity_fixture('class-fixture-'+label,base.replace('CHANGE',change)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['class-setup'],value) + self.assertTrue(value['invalid_population'],value) + + source=('class C(unittest.TestCase):\n' + +' def setUp(self):\n record("setup")\n self.__class__=type("C",(type(self),),{"__module__":__name__,"__qualname__":"C"})\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + outcome,value,events=self.run_identity_fixture('instance-class-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['setup'],value) + self.assertTrue(value['invalid_population'],value) + + def test_postload_substitution_refused_before_any_fixture(self): + spec=importlib.util.spec_from_file_location('identity_runtime_probe',ROOT/'run_tests.py') + runtime=importlib.util.module_from_spec(spec);spec.loader.exec_module(runtime) + events=[] + class Case(unittest.TestCase): + @classmethod + def setUpClass(cls):events.append('class-setup') + def setUp(self):events.append('setup') + def test_one(self):events.append('original') + loader=runtime.IdentityLoader();suite=loader.loadTestsFromTestCase(Case) + def replacement(self):events.append('replacement') + Case.test_one=replacement + value=runtime.run_suite(suite,['probe.Case'],loader.bindings,loader.invalid) + self.assertTrue(value['invalid_population'],value) + self.assertEqual(events,[],value) + self.assertEqual(value['tests_run'],0,value) + + def test_custom_testcase_run_is_refused_before_execution(self): + source=('class C(unittest.TestCase):\n' + +' def run(self,result=None):\n record("custom-run")\n return super().run(result)\n' + +' def test_one(self): record("body")\n') + outcome,value,events=self.run_identity_fixture('custom-run',source,('test_identity.C',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_identity_change_during_body_is_not_a_clean_kill(self): + source=('class C(unittest.TestCase):\n' + +' def test_first(self):\n record("first")\n type(self).test_second=type(self).test_first\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + outcome,value,events=self.run_identity_fixture('during-body-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['first'],value) + self.assertTrue(value['invalid_population'],value) + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/EXISTING_APPLICABILITY.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/EXISTING_APPLICABILITY.json new file mode 100644 index 000000000..1e1912155 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/EXISTING_APPLICABILITY.json @@ -0,0 +1,36 @@ +{ + "scope": "top-level source applicability only; no claim against arbitrary runtime assignment or malicious Python", + "all_current_test_modules_without_explicit_load_tests": true, + "files": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py", + "sha256": "2ccdd956379bf3ddbc479a10604a10db7c26acee96c54c869c7a6bafc0f2dfeb", + "top_level_load_tests_definitions": [], + "top_level_load_tests_assignments": [] + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_mutation_harness.py", + "sha256": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114", + "top_level_load_tests_definitions": [], + "top_level_load_tests_assignments": [] + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_real_lean.py", + "sha256": "51ab210da908b4e3d74fe179c41a414abf4c53e88458db33f7934ae0010337d7", + "top_level_load_tests_definitions": [], + "top_level_load_tests_assignments": [] + }, + { + "path": "/workspace/cbz-0/tools/layer_a/tests/test_auditor.py", + "sha256": "94532912255f92250046e0e85d2633b438245e635499d815340edfe4bb29890e", + "top_level_load_tests_definitions": [], + "top_level_load_tests_assignments": [] + }, + { + "path": "/workspace/cbz-0/tools/layer_a/tests/test_mutation_runner.py", + "sha256": "9190916dea425ab71aad73acbb70b4100890592f2a462375cb3a922ff62a1ff3", + "top_level_load_tests_definitions": [], + "top_level_load_tests_assignments": [] + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/REPORT.md b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/REPORT.md new file mode 100644 index 000000000..ebba4d1d5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/REPORT.md @@ -0,0 +1,41 @@ +# Test-body identity preflight + +New obligation: determine whether a supported ordinary synchronous None-return +`load_tests` hook can replace the declared body population without detection. +No prior tests, Lean work, scanner campaigns or hosted checks were rerun. + +Both exact current runners have the same concrete gap. Default discovery calls +`load_tests` before capturing the selected population. A hook retaining both +ordinary method declarations but aliasing `test_second` to `test_first` produces +two distinct expected names and complete body events, while executing the first +original body twice and omitting the second. The passing variant returns exit 0 +and `SURVIVED`. The assertion variant returns `KILLED` with two assertion failures, +but still omits the second original body. A same-name replacement subclass also +returns exit 0 and `SURVIVED` while both original body sentinels are absent. + +These controls do not fabricate receipts or override TestCase.run. All selected +functions are ordinary synchronous functions and their ordinary successful +return is None. This is a population-identity defect inside the advertised +profile, not an arbitrary-code sandbox claim. + +The explicit class-selector negative controls bypass the module hook and execute +both original bodies, including the second body's retained failure. Thus the gap +affects default/module discovery. The current kernel production mutation plan +uses class or individual-method selectors, while the layer-a runner's default +baseline and `run_one` discovery are exposed to module hooks. Current five test +modules contain no explicit top-level `load_tests` definition or assignment; +completed applicable source-specific evidence remains valid. + +`RESULTS.json` records six new default-discovery executions and two named-class +controls in normal mode (fourteen subprocess commands including population +listing). Each fixture, unchanged copied runner, full structured result, stdout, +stderr and body trace is retained under `fixtures/`. `SOURCE_BINDINGS.json` binds +the active source generation. `EXISTING_APPLICABILITY.json` records the narrow +existing-source hook check and its limits. + +Minimal repair: derive the canonical selected population from trusted standard +module/class declarations before module hooks; retain original class, function +and code identities in process; refuse unsupported population factories before +fixtures or bodies; compare identities after loading and at starts/body exits. +Explicit class and method selectors must retain their exact supported behavior. +The implementation must have actual omission controls and source guard mutations. diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/RESULTS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/RESULTS.json new file mode 100644 index 000000000..63537c16f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/RESULTS.json @@ -0,0 +1,417 @@ +{ + "new_obligation": "Ordinary synchronous None-return load_tests method alias/same-name class replacement after discovery; original declared bodies retained but omitted", + "execution_mode": "normal only; no old tests rerun", + "source_bindings": { + "kernel_replay/run_tests.py": { + "sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "bytes": 10420 + }, + "kernel_replay/mutations.py": { + "sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "bytes": 15771 + }, + "layer_a/mutation_test.py": { + "sha256": "840d2c86b9c7b1fb934c6fae0f300afa17aca6de5551ca8db70ac47147073b7f", + "bytes": 30300 + } + }, + "results": [ + { + "tool": "kernel_replay", + "case": "alias-pass", + "commands": [ + { + "phase": "list", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-pass/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-pass/list.json", + "--list" + ], + "exit_code": 0 + }, + { + "phase": "run", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-pass/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-pass/run.json" + ], + "exit_code": 0 + } + ], + "source_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "fixture_sha256": "562b11ed6f4097250316e8b4cbbe7525cacdd4af7fbb8db64f758bacbccc42f2", + "outcome": "SURVIVED", + "selected_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "body_entered_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "body_finished_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "invalid_population": [], + "assertion_failures": 0, + "errors": 0, + "body_trace": [ + "original-first", + "original-first" + ], + "original_second_executed": false + }, + { + "tool": "kernel_replay", + "case": "named-class-control", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-pass/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-pass/named.json", + "--test", + "test_alias.AliasTests" + ], + "exit_code": 1, + "selected_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "body_trace": [ + "original-first", + "original-second" + ], + "assertion_failures": 1, + "errors": 0, + "original_second_executed": true + }, + { + "tool": "kernel_replay", + "case": "alias-kill", + "commands": [ + { + "phase": "list", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-kill/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-kill/list.json", + "--list" + ], + "exit_code": 0 + }, + { + "phase": "run", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-kill/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/alias-kill/run.json" + ], + "exit_code": 1 + } + ], + "source_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "fixture_sha256": "562b11ed6f4097250316e8b4cbbe7525cacdd4af7fbb8db64f758bacbccc42f2", + "outcome": "KILLED", + "selected_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "body_entered_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "body_finished_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "invalid_population": [], + "assertion_failures": 2, + "errors": 0, + "body_trace": [ + "original-first", + "original-first" + ], + "original_second_executed": false + }, + { + "tool": "kernel_replay", + "case": "same-name-subclass", + "commands": [ + { + "phase": "list", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/same-name-subclass/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/same-name-subclass/list.json", + "--list" + ], + "exit_code": 0 + }, + { + "phase": "run", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/same-name-subclass/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/kernel_replay/same-name-subclass/run.json" + ], + "exit_code": 0 + } + ], + "source_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "fixture_sha256": "c75334c2cd7a0e5847ae1f97625151bca76be8a534fa4919c6b52566a577b67f", + "outcome": "SURVIVED", + "selected_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "body_entered_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "body_finished_ids": [ + "test_alias.AliasTests.test_first", + "test_alias.AliasTests.test_second" + ], + "invalid_population": [], + "assertion_failures": 0, + "errors": 0, + "body_trace": [ + "replacement", + "replacement" + ], + "original_second_executed": false + }, + { + "tool": "layer_a", + "case": "alias-pass", + "commands": [ + { + "phase": "list", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/list.json", + "--list" + ], + "exit_code": 0 + }, + { + "phase": "run", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/run.json" + ], + "exit_code": 0 + } + ], + "source_sha256": "840d2c86b9c7b1fb934c6fae0f300afa17aca6de5551ca8db70ac47147073b7f", + "fixture_sha256": "562b11ed6f4097250316e8b4cbbe7525cacdd4af7fbb8db64f758bacbccc42f2", + "outcome": "SURVIVED", + "selected_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "body_entered_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "body_finished_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "invalid_population": [], + "assertion_failures": 0, + "errors": 0, + "body_trace": [ + "original-first", + "original-first" + ], + "original_second_executed": false + }, + { + "tool": "layer_a", + "case": "named-class-control", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-pass/named.json", + "--test", + "test_auditor.AliasTests" + ], + "exit_code": 1, + "selected_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "body_trace": [ + "original-first", + "original-second" + ], + "assertion_failures": 1, + "errors": 0, + "original_second_executed": true + }, + { + "tool": "layer_a", + "case": "alias-kill", + "commands": [ + { + "phase": "list", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-kill/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-kill/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-kill/list.json", + "--list" + ], + "exit_code": 0 + }, + { + "phase": "run", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-kill/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-kill/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/alias-kill/run.json" + ], + "exit_code": 1 + } + ], + "source_sha256": "840d2c86b9c7b1fb934c6fae0f300afa17aca6de5551ca8db70ac47147073b7f", + "fixture_sha256": "562b11ed6f4097250316e8b4cbbe7525cacdd4af7fbb8db64f758bacbccc42f2", + "outcome": "KILLED", + "selected_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "body_entered_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "body_finished_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "invalid_population": [], + "assertion_failures": 2, + "errors": 0, + "body_trace": [ + "original-first", + "original-first" + ], + "original_second_executed": false + }, + { + "tool": "layer_a", + "case": "same-name-subclass", + "commands": [ + { + "phase": "list", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/same-name-subclass/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/same-name-subclass/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/same-name-subclass/list.json", + "--list" + ], + "exit_code": 0 + }, + { + "phase": "run", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/same-name-subclass/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/same-name-subclass/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-preflight/fixtures/layer_a/same-name-subclass/run.json" + ], + "exit_code": 0 + } + ], + "source_sha256": "840d2c86b9c7b1fb934c6fae0f300afa17aca6de5551ca8db70ac47147073b7f", + "fixture_sha256": "c75334c2cd7a0e5847ae1f97625151bca76be8a534fa4919c6b52566a577b67f", + "outcome": "SURVIVED", + "selected_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "body_entered_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "body_finished_ids": [ + "test_auditor.AliasTests.test_first", + "test_auditor.AliasTests.test_second" + ], + "invalid_population": [], + "assertion_failures": 0, + "errors": 0, + "body_trace": [ + "replacement", + "replacement" + ], + "original_second_executed": false + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/SOURCE_BINDINGS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/SOURCE_BINDINGS.json new file mode 100644 index 000000000..5a098f8de --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/SOURCE_BINDINGS.json @@ -0,0 +1,14 @@ +{ + "kernel_replay/run_tests.py": { + "sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "bytes": 10420 + }, + "kernel_replay/mutations.py": { + "sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "bytes": 15771 + }, + "layer_a/mutation_test.py": { + "sha256": "840d2c86b9c7b1fb934c6fae0f300afa17aca6de5551ca8db70ac47147073b7f", + "bytes": 30300 + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/preflight.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/preflight.py new file mode 100644 index 000000000..cba5ddddd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/initial-preflight/preflight.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +"""Finite, isolated new identity controls; no production/tool source edits.""" +import hashlib, importlib.util, json, os +from pathlib import Path +import shutil, subprocess, sys + +ROOT=Path(__file__).resolve().parent +ACTIVE=Path('/workspace/cbz-0/tools') +SOURCES={'kernel_replay':['run_tests.py','mutations.py'], 'layer_a':['mutation_test.py']} + +def sha(raw): return hashlib.sha256(raw).hexdigest() +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path); m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m + +FIXTURE='''import os\nfrom pathlib import Path\nimport unittest\ndef trace(label):\n with Path(os.environ['CBZ_PREFLIGHT_TRACE']).open('a') as out: out.write(label+'\\n')\nclass AliasTests(unittest.TestCase):\n def test_first(self):\n trace('original-first')\n if os.environ.get('CBZ_PREFLIGHT_FAIL_FIRST') == '1': self.fail('original first body assertion')\n def test_second(self):\n trace('original-second')\n self.fail('original second body must remain covered')\n''' +HOOK_ALIAS='''\ndef load_tests(loader, tests, pattern):\n AliasTests.test_second = AliasTests.test_first\n return tests\n''' +HOOK_CLASS='''\ndef load_tests(loader, tests, pattern):\n def replacement(self):\n trace('replacement')\n Replacement = type('AliasTests', (AliasTests,), {'test_first':replacement,'test_second':replacement,'__module__':__name__,'__qualname__':'AliasTests'})\n globals()['AliasTests'] = Replacement\n return loader.loadTestsFromTestCase(Replacement)\n''' + +baseline={} +for tool, names in SOURCES.items(): + for name in names: + raw=(ACTIVE/tool/name).read_bytes();baseline[f'{tool}/{name}']={'sha256':sha(raw),'bytes':len(raw)} +(ROOT/'SOURCE_BINDINGS.json').write_text(json.dumps(baseline,indent=2)+'\n') +results=[] +for tool in SOURCES: + runner_name='run_tests.py' if tool=='kernel_replay' else 'mutation_test.py' + for case,hook,fail in [('alias-pass',HOOK_ALIAS,False),('alias-kill',HOOK_ALIAS,True),('same-name-subclass',HOOK_CLASS,False)]: + work=ROOT/'fixtures'/tool/case; (work/'tests').mkdir(parents=True,exist_ok=True) + for name in SOURCES[tool]: (work/name).write_bytes((ACTIVE/tool/name).read_bytes()) + fixture_name='test_alias.py' if tool=='kernel_replay' else 'test_auditor.py' + (work/'tests'/fixture_name).write_text(FIXTURE+hook) + env=dict(os.environ);env.pop('PYTHONPATH',None);env['PYTHONDONTWRITEBYTECODE']='1';env['CBZ_PREFLIGHT_TRACE']=str(work/'body-trace.txt');env['CBZ_PREFLIGHT_FAIL_FIRST']='1' if fail else '0' + args=[sys.executable,'-B','-S',str(work/runner_name)] + if tool=='layer_a':args+=['--internal-test-runner','--test-root',str(work/'tests')] + cmds=[] + for phase in ('list','run'): + output=work/(phase+'.json');cmd=args+['--output',str(output)]+(['--list'] if phase=='list' else []) + p=subprocess.run(cmd,cwd=work,env=env,capture_output=True,text=True,timeout=15) + (work/(phase+'.stdout')).write_text(p.stdout);(work/(phase+'.stderr')).write_text(p.stderr) + cmds.append({'phase':phase,'command':cmd,'exit_code':p.returncode}) + population=json.loads((work/'list.json').read_text());value=json.loads((work/'run.json').read_text()) + grader=load(work/('mutations.py' if tool=='kernel_replay' else 'mutation_test.py'),f'grader_{tool}_{case.replace("-","_")}') + if tool=='kernel_replay':outcome=grader.classify(value,cmds[-1]['exit_code'],['discover:test_*.py'],population['selected_ids']) + else:outcome=grader.classify_test_result(value,cmds[-1]['exit_code'],population['selected_ids']) + trace=(work/'body-trace.txt').read_text().splitlines() + row={'tool':tool,'case':case,'commands':cmds,'source_sha256':sha((work/runner_name).read_bytes()),'fixture_sha256':sha((work/'tests'/fixture_name).read_bytes()),'outcome':outcome,'selected_ids':value['selected_ids'],'body_entered_ids':value['body_entered_ids'],'body_finished_ids':value['body_finished_ids'],'invalid_population':value['invalid_population'],'assertion_failures':value['assertion_failures'],'errors':value['errors'],'body_trace':trace,'original_second_executed':'original-second' in trace} + results.append(row) + # Class-selector negative control: unittest bypasses the module load_tests hook. + if case=='alias-pass': + env['CBZ_PREFLIGHT_TRACE']=str(work/'named-body-trace.txt') + module=fixture_name[:-3];output=work/'named.json';cmd=args+['--output',str(output),'--test',module+'.AliasTests'] + p=subprocess.run(cmd,cwd=work,env=env,capture_output=True,text=True,timeout=15) + (work/'named.stdout').write_text(p.stdout);(work/'named.stderr').write_text(p.stderr) + nv=json.loads(output.read_text()); nt=(work/'named-body-trace.txt').read_text().splitlines() + results.append({'tool':tool,'case':'named-class-control','command':cmd,'exit_code':p.returncode,'selected_ids':nv['selected_ids'],'body_trace':nt,'assertion_failures':nv['assertion_failures'],'errors':nv['errors'],'original_second_executed':'original-second' in nt}) +report={'new_obligation':'Ordinary synchronous None-return load_tests method alias/same-name class replacement after discovery; original declared bodies retained but omitted','execution_mode':'normal only; no old tests rerun','source_bindings':baseline,'results':results} +(ROOT/'RESULTS.json').write_text(json.dumps(report,indent=2)+'\n') +print(json.dumps([{'tool':r['tool'],'case':r['case'],'outcome':r.get('outcome'),'exit_code':r.get('exit_code',r.get('commands',[{}])[-1].get('exit_code')),'trace':r['body_trace'],'second_executed':r['original_second_executed'],'failures':r['assertion_failures']} for r in results],indent=2)) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.json new file mode 100644 index 000000000..fb2e7a66f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.json @@ -0,0 +1,528 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests", + "test_mutation_harness.LazyBodyHarnessTests", + "test_mutation_harness.IdentityHarnessTests" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "invalid_population": [], + "tests_run": 26, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok\ntest_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok\ntest_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok\ntest_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok\ntest_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok\ntest_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok\ntest_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok\ntest_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok\ntest_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok\ntest_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok\ntest_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok\ntest_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok\ntest_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok\ntest_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok\ntest_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok\ntest_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok\ntest_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok\ntest_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok\ntest_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok\ntest_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok\ntest_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok\ntest_custom_testcase_run_is_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution) ... ok\ntest_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok\ntest_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok\ntest_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok\n\nRan 26 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 73, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.log new file mode 100644 index 000000000..c84cd604d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-normal-dev2.log @@ -0,0 +1,28 @@ +test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok +test_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok +test_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok +test_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok +test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok +test_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok +test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok +test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok +test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok +test_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok +test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok +test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok +test_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok +test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok +test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok +test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok +test_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok +test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok +test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok +test_custom_testcase_run_is_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution) ... ok +test_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok +test_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok + +Ran 26 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.json new file mode 100644 index 000000000..fb2e7a66f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.json @@ -0,0 +1,528 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests", + "test_mutation_harness.LazyBodyHarnessTests", + "test_mutation_harness.IdentityHarnessTests" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "invalid_population": [], + "tests_run": 26, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok\ntest_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok\ntest_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok\ntest_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok\ntest_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok\ntest_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok\ntest_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok\ntest_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok\ntest_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok\ntest_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok\ntest_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok\ntest_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok\ntest_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok\ntest_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok\ntest_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok\ntest_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok\ntest_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok\ntest_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok\ntest_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok\ntest_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok\ntest_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok\ntest_custom_testcase_run_is_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution) ... ok\ntest_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok\ntest_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok\ntest_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok\n\nRan 26 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 73, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.log new file mode 100644 index 000000000..c84cd604d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/affected-optimized.log @@ -0,0 +1,28 @@ +test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok +test_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok +test_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok +test_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok +test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok +test_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok +test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok +test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok +test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok +test_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok +test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok +test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok +test_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok +test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok +test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok +test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok +test_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok +test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok +test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok +test_custom_testcase_run_is_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution) ... ok +test_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok +test_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok + +Ran 26 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.json new file mode 100644 index 000000000..6bf9661ab --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.json @@ -0,0 +1,137 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok\ntest_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\n\nRan 2 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 19, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.log new file mode 100644 index 000000000..7dfdc6cf8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-normal.log @@ -0,0 +1,4 @@ +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok + +Ran 2 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.json new file mode 100644 index 000000000..6bf9661ab --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.json @@ -0,0 +1,137 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok\ntest_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\n\nRan 2 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 19, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.log new file mode 100644 index 000000000..7dfdc6cf8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/construction-discovery-optimized.log @@ -0,0 +1,4 @@ +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok + +Ran 2 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.json new file mode 100644 index 000000000..2e0267303 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.json @@ -0,0 +1,171 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.log new file mode 100644 index 000000000..e74c98226 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-normal.log @@ -0,0 +1,3 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.json new file mode 100644 index 000000000..2e0267303 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.json @@ -0,0 +1,171 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.log new file mode 100644 index 000000000..e74c98226 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/exact-descriptor-optimized.log @@ -0,0 +1,3 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/receipt.json new file mode 100644 index 000000000..1a7ba9423 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/receipt.json @@ -0,0 +1,42 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Lists differ: ['factory', 'body'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'factory'\n\n- ['factory', 'body']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.factory'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stdout.log new file mode 100644 index 000000000..969bf5979 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/accept-callable-selector-factory/stdout.log @@ -0,0 +1,19 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Lists differ: ['factory', 'body'] != [] + +First list contains 2 additional elements. +First extra element 0: +'factory' + +- ['factory', 'body'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.factory'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/receipt.json new file mode 100644 index 000000000..0f7bd9915 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/receipt.json @@ -0,0 +1,183 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 14, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... \n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',)) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(events,[],value)\nAssertionError: Lists differ: ['constructor', 'constructor'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'constructor'\n\n- ['constructor', 'constructor']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\\nRan 0 tests\\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(events,[],value)\nAssertionError: Lists differ: ['constructor', 'constructor'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'constructor'\n\n- ['constructor', 'constructor']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\\nRan 0 tests\\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_first'], 'selected_ids': ['test_identity.C.test_first'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_first'], 'finished_ids': ['test_identity.C.test_first'], 'body_entered_ids': ['test_identity.C.test_first'], 'body_finished_ids': ['test_identity.C.test_first'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 15, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stdout.log new file mode 100644 index 000000000..0f49f57dd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-custom-construction/stdout.log @@ -0,0 +1,179 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',)) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(events,[],value) +AssertionError: Lists differ: ['constructor', 'constructor'] != [] + +First list contains 2 additional elements. +First extra element 0: +'constructor' + +- ['constructor', 'constructor'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\nRan 0 tests\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(events,[],value) +AssertionError: Lists differ: ['constructor', 'constructor'] != [] + +First list contains 2 additional elements. +First extra element 0: +'constructor' + +- ['constructor', 'constructor'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\nRan 0 tests\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_first'], 'selected_ids': ['test_identity.C.test_first'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_first'], 'finished_ids': ['test_identity.C.test_first'], 'body_entered_ids': ['test_identity.C.test_first'], 'body_finished_ids': ['test_identity.C.test_first'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/receipt.json new file mode 100644 index 000000000..cf1ebd348 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/receipt.json @@ -0,0 +1,63 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... FAIL\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/run_tests.py\", line 323, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'SURVIVED' != 'KILLED'\n- SURVIVED\n+ KILLED\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.Visible.test_visible'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_visible (test_identity.Visible.test_visible) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.Visible.test_visible'], 'finished_ids': ['test_identity.Visible.test_visible'], 'body_entered_ids': ['test_identity.Visible.test_visible'], 'body_finished_ids': ['test_identity.Visible.test_visible'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stdout.log new file mode 100644 index 000000000..5a2e66464 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-module-dir-population-omission/stdout.log @@ -0,0 +1,15 @@ +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... FAIL + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/run_tests.py", line 323, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'SURVIVED' != 'KILLED' +- SURVIVED ++ KILLED + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.Visible.test_visible'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_visible (test_identity.Visible.test_visible) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.Visible.test_visible'], 'finished_ids': ['test_identity.Visible.test_visible'], 'body_entered_ids': ['test_identity.Visible.test_visible'], 'body_finished_ids': ['test_identity.Visible.test_visible'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json new file mode 100644 index 000000000..0d28bc448 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json @@ -0,0 +1,178 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/run_tests.py\", line 335, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.helper'], 'selected_ids': ['test_identity.C.helper'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'helper (test_identity.C.helper) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.helper'], 'finished_ids': ['test_identity.C.helper'], 'body_entered_ids': ['test_identity.C.helper'], 'body_finished_ids': ['test_identity.C.helper'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stdout.log new file mode 100644 index 000000000..d9d833cc7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-named-descriptor-subclasses/stdout.log @@ -0,0 +1,15 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/run_tests.py", line 335, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.helper'], 'selected_ids': ['test_identity.C.helper'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'helper (test_identity.C.helper) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.helper'], 'finished_ids': ['test_identity.C.helper'], 'body_entered_ids': ['test_identity.C.helper'], 'body_finished_ids': ['test_identity.C.helper'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json new file mode 100644 index 000000000..4e75eaea2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json @@ -0,0 +1,42 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/run_tests.py\", line 324, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Lists differ: ['proxy', 'body'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'proxy'\n\n- ['proxy', 'body']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.proxy.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stdout.log new file mode 100644 index 000000000..8f9957c5b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/stdout.log @@ -0,0 +1,19 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/run_tests.py", line 324, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Lists differ: ['proxy', 'body'] != [] + +First list contains 2 additional elements. +First extra element 0: +'proxy' + +- ['proxy', 'body'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.proxy.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json new file mode 100644 index 000000000..3b6160b03 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json @@ -0,0 +1,193 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... \n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',)) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stdout.log new file mode 100644 index 000000000..05a01bb28 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/allow-static-descriptor-subclasses/stdout.log @@ -0,0 +1,51 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',)) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/receipt.json new file mode 100644 index 000000000..0dd2b191e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/receipt.json @@ -0,0 +1,63 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL\n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpw0mie_nm/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpc46n8vjg/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stdout.log new file mode 100644 index 000000000..f87e83e38 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-declared-function-chain/stdout.log @@ -0,0 +1,27 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpw0mie_nm/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpc46n8vjg/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/receipt.json new file mode 100644 index 000000000..7da139185 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/receipt.json @@ -0,0 +1,78 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... \n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission') ... FAIL\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp4jdzkdw1/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... FAIL\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_first (test_identity.C.test_first)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpgtucz1ln/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: first body assertion\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpgtucz1ln/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_first', 'origin': 'body'}, {'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpuzvf7jn2/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmptjl2xosh/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stdout.log new file mode 100644 index 000000000..f25c8da35 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-module-hook-refusal/stdout.log @@ -0,0 +1,51 @@ +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias') ... FAIL + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion') ... FAIL + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass') ... FAIL + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission') ... FAIL + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp4jdzkdw1/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... FAIL\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpgtucz1ln/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: first body assertion\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpgtucz1ln/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_first', 'origin': 'body'}, {'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpuzvf7jn2/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmptjl2xosh/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/receipt.json new file mode 100644 index 000000000..be7f5d0c4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/receipt.json @@ -0,0 +1,58 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stdout.log new file mode 100644 index 000000000..e4d3938c2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-code-object/stdout.log @@ -0,0 +1,15 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/receipt.json new file mode 100644 index 000000000..acfe32686 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/receipt.json @@ -0,0 +1,58 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpamja7bb3/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stdout.log new file mode 100644 index 000000000..c09bc8818 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-original-function-object/stdout.log @@ -0,0 +1,15 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpamja7bb3/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/receipt.json new file mode 100644 index 000000000..134cdf031 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/receipt.json @@ -0,0 +1,58 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp7azw9gib/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stdout.log new file mode 100644 index 000000000..3104137c2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/ignore-selected-class-object/stdout.log @@ -0,0 +1,15 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp7azw9gib/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json new file mode 100644 index 000000000..9b0d2c254 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json @@ -0,0 +1,188 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... \n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',)) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stdout.log new file mode 100644 index 000000000..27674bbbd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/stdout.log @@ -0,0 +1,39 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',)) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json new file mode 100644 index 000000000..d9899987b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json @@ -0,0 +1,42 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... FAIL\n\n======================================================================\nFAIL: test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Lists differ: ['class-setup'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'class-setup'\n\n- ['class-setup']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['probe.Case'], 'selected_ids': ['test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture..Case.test_one'], 'invalid_population': ['selected class/function/code identity changed during execution'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\\nRan 0 tests\\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stdout.log new file mode 100644 index 000000000..0d90eae66 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-before-fixture-identity-validation/stdout.log @@ -0,0 +1,19 @@ +test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... FAIL + +====================================================================== +FAIL: test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Lists differ: ['class-setup'] != [] + +First list contains 1 additional elements. +First extra element 0: +'class-setup' + +- ['class-setup'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['probe.Case'], 'selected_ids': ['test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture..Case.test_one'], 'invalid_population': ['selected class/function/code identity changed during execution'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\nRan 0 tests\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/receipt.json new file mode 100644 index 000000000..ada311654 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/receipt.json @@ -0,0 +1,73 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL\n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL\n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpwueruf21/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpab2rbwtf/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpabpjc_i7/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stdout.log new file mode 100644 index 000000000..3c3d11451 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/normal/skip-runtime-identity-validation/stdout.log @@ -0,0 +1,52 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpwueruf21/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpab2rbwtf/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpabpjc_i7/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/receipt.json new file mode 100644 index 000000000..89c462280 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/receipt.json @@ -0,0 +1,42 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Lists differ: ['factory', 'body'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'factory'\n\n- ['factory', 'body']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.factory'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stdout.log new file mode 100644 index 000000000..cd0118825 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/accept-callable-selector-factory/stdout.log @@ -0,0 +1,19 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Lists differ: ['factory', 'body'] != [] + +First list contains 2 additional elements. +First extra element 0: +'factory' + +- ['factory', 'body'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.factory'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/receipt.json new file mode 100644 index 000000000..f0d6d7ddf --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/receipt.json @@ -0,0 +1,183 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 14, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... \n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',)) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(events,[],value)\nAssertionError: Lists differ: ['constructor', 'constructor'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'constructor'\n\n- ['constructor', 'constructor']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\\nRan 0 tests\\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(events,[],value)\nAssertionError: Lists differ: ['constructor', 'constructor'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'constructor'\n\n- ['constructor', 'constructor']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\\nRan 0 tests\\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_first'], 'selected_ids': ['test_identity.C.test_first'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_first'], 'finished_ids': ['test_identity.C.test_first'], 'body_entered_ids': ['test_identity.C.test_first'], 'body_finished_ids': ['test_identity.C.test_first'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py\", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 15, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stdout.log new file mode 100644 index 000000000..f88d97a65 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-custom-construction/stdout.log @@ -0,0 +1,179 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',)) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(events,[],value) +AssertionError: Lists differ: ['constructor', 'constructor'] != [] + +First list contains 2 additional elements. +First extra element 0: +'constructor' + +- ['constructor', 'constructor'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\nRan 0 tests\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 383, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(events,[],value) +AssertionError: Lists differ: ['constructor', 'constructor'] != [] + +First list contains 2 additional elements. +First extra element 0: +'constructor' + +- ['constructor', 'constructor'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': ['selected declaration changed during construction'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\nRan 0 tests\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='init', selector=('test_identity.C.test_first',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_first'], 'selected_ids': ['test_identity.C.test_first'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_first'], 'finished_ids': ['test_identity.C.test_first'], 'body_entered_ids': ['test_identity.C.test_first'], 'body_finished_ids': ['test_identity.C.test_first'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='new', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='metaclass', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='getattribute', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='setattr', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/tests/test_mutation_harness.py", line 382, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json new file mode 100644 index 000000000..a12a84c0f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json @@ -0,0 +1,63 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... FAIL\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/run_tests.py\", line 323, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'SURVIVED' != 'KILLED'\n- SURVIVED\n+ KILLED\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.Visible.test_visible'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_visible (test_identity.Visible.test_visible) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.Visible.test_visible'], 'finished_ids': ['test_identity.Visible.test_visible'], 'body_entered_ids': ['test_identity.Visible.test_visible'], 'body_finished_ids': ['test_identity.Visible.test_visible'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stdout.log new file mode 100644 index 000000000..b248b2249 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-module-dir-population-omission/stdout.log @@ -0,0 +1,15 @@ +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... FAIL + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/run_tests.py", line 323, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'SURVIVED' != 'KILLED' +- SURVIVED ++ KILLED + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.Visible.test_visible'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_visible (test_identity.Visible.test_visible) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.Visible.test_visible'], 'finished_ids': ['test_identity.Visible.test_visible'], 'body_entered_ids': ['test_identity.Visible.test_visible'], 'body_finished_ids': ['test_identity.Visible.test_visible'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json new file mode 100644 index 000000000..ca0f0de68 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json @@ -0,0 +1,178 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/run_tests.py\", line 335, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.helper'], 'selected_ids': ['test_identity.C.helper'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'helper (test_identity.C.helper) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.helper'], 'finished_ids': ['test_identity.C.helper'], 'body_entered_ids': ['test_identity.C.helper'], 'body_finished_ids': ['test_identity.C.helper'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stdout.log new file mode 100644 index 000000000..55afbd76f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-named-descriptor-subclasses/stdout.log @@ -0,0 +1,15 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/run_tests.py", line 335, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.helper'], 'selected_ids': ['test_identity.C.helper'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'helper (test_identity.C.helper) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.helper'], 'finished_ids': ['test_identity.C.helper'], 'body_entered_ids': ['test_identity.C.helper'], 'body_finished_ids': ['test_identity.C.helper'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json new file mode 100644 index 000000000..74a394dbd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json @@ -0,0 +1,42 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/run_tests.py\", line 324, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Lists differ: ['proxy', 'body'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'proxy'\n\n- ['proxy', 'body']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.proxy.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stdout.log new file mode 100644 index 000000000..a4e17b178 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/stdout.log @@ -0,0 +1,19 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/run_tests.py", line 324, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Lists differ: ['proxy', 'body'] != [] + +First list contains 2 additional elements. +First extra element 0: +'proxy' + +- ['proxy', 'body'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.proxy.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json new file mode 100644 index 000000000..b5b873673 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json @@ -0,0 +1,193 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... \n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',)) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stdout.log new file mode 100644 index 000000000..1084a1d58 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/allow-static-descriptor-subclasses/stdout.log @@ -0,0 +1,51 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',)) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-staticmethod', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='descriptor-classmethod', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/receipt.json new file mode 100644 index 000000000..1f73538a9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/receipt.json @@ -0,0 +1,63 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL\n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp48akoffu/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpy0axyuu_/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stdout.log new file mode 100644 index 000000000..e0fbb6a31 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-declared-function-chain/stdout.log @@ -0,0 +1,27 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp48akoffu/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpy0axyuu_/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json new file mode 100644 index 000000000..6100374bd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json @@ -0,0 +1,78 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... \n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission') ... FAIL\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp8h3xira9/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... FAIL\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_first (test_identity.C.test_first)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmphy2naad1/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: first body assertion\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmphy2naad1/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_first', 'origin': 'body'}, {'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp6kq26hgk/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp5okqq6ns/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stdout.log new file mode 100644 index 000000000..dfef6b3c9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-module-hook-refusal/stdout.log @@ -0,0 +1,51 @@ +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias') ... FAIL + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion') ... FAIL + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass') ... FAIL + test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission') ... FAIL + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp8h3xira9/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... FAIL\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmphy2naad1/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: first body assertion\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmphy2naad1/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_first', 'origin': 'body'}, {'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp6kq26hgk/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +====================================================================== +FAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests/test_mutation_harness.py", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... FAIL\n\n======================================================================\nFAIL: test_second (test_identity.C.test_second)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp5okqq6ns/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: retained second body\n\nRan 2 tests\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/receipt.json new file mode 100644 index 000000000..a40b1645c --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/receipt.json @@ -0,0 +1,58 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stdout.log new file mode 100644 index 000000000..1b62c2680 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-code-object/stdout.log @@ -0,0 +1,15 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/receipt.json new file mode 100644 index 000000000..a6c3bac9e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/receipt.json @@ -0,0 +1,58 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp9dblwni8/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stdout.log new file mode 100644 index 000000000..85aafea80 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-original-function-object/stdout.log @@ -0,0 +1,15 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp9dblwni8/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/receipt.json new file mode 100644 index 000000000..f4e53c614 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/receipt.json @@ -0,0 +1,58 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpaahcyasa/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stdout.log new file mode 100644 index 000000000..599c3ce57 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/ignore-selected-class-object/stdout.log @@ -0,0 +1,15 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpaahcyasa/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json new file mode 100644 index 000000000..6cd78fb00 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json @@ -0,0 +1,188 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... \n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=()) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',)) ... FAIL\n test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',)) ... FAIL\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=())\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',))\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py\", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "lifecycle_failures": 0, + "subtests": 27, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stdout.log new file mode 100644 index 000000000..800624010 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/stdout.log @@ -0,0 +1,39 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=()) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',)) ... FAIL + test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',)) ... FAIL + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=()) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) (constructor='special-descriptor', selector=('test_identity.C.test_one',)) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/tests/test_mutation_harness.py", line 392, in test_callable_factory_selector_is_refused_before_factory_or_body + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.C.test_one'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json new file mode 100644 index 000000000..bafb7d322 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json @@ -0,0 +1,42 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... FAIL\n\n======================================================================\nFAIL: test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Lists differ: ['class-setup'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'class-setup'\n\n- ['class-setup']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['probe.Case'], 'selected_ids': ['test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture..Case.test_one'], 'invalid_population': ['selected class/function/code identity changed during execution'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\\nRan 0 tests\\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stdout.log new file mode 100644 index 000000000..b6259dc49 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-before-fixture-identity-validation/stdout.log @@ -0,0 +1,19 @@ +test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... FAIL + +====================================================================== +FAIL: test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: Lists differ: ['class-setup'] != [] + +First list contains 1 additional elements. +First extra element 0: +'class-setup' + +- ['class-setup'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['probe.Case'], 'selected_ids': ['test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture..Case.test_one'], 'invalid_population': ['selected class/function/code identity changed during execution'], 'tests_run': 0, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': '\nRan 0 tests\n', 'started_ids': [], 'finished_ids': [], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json new file mode 100644 index 000000000..c1d2e1fa3 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json @@ -0,0 +1,73 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL\n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL\n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpnbu2x5i0/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/tests/test_mutation_harness.py\", line 372, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpq5i2k2a4/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpve6yf16w/run_tests.py\", line 275, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "body" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stdout.log new file mode 100644 index 000000000..8c2578a31 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/guard-mutants/optimized/skip-runtime-identity-validation/stdout.log @@ -0,0 +1,52 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL + test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') ... FAIL +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... FAIL + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpnbu2x5i0/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'SURVIVED' != 'ERROR' +- SURVIVED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='same-code-function') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/tests/test_mutation_harness.py", line 372, in test_class_fixture_function_and_code_substitutions_are_refused + self.assertEqual(outcome,'ERROR',value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpq5i2k2a4/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +====================================================================== +FAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/run_tests.py", line 275, in dispatch + return original_dispatch(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpve6yf16w/run_tests.py", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: original body retained\n\nRan 1 tests\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]} + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.json new file mode 100644 index 000000000..473dd46d8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.json @@ -0,0 +1,96 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "invalid_population": [], + "tests_run": 5, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok\ntest_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok\ntest_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok\ntest_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok\n\nRan 5 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 8, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.log new file mode 100644 index 000000000..a7fffc433 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-green-dev1.log @@ -0,0 +1,7 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok +test_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok +test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok +test_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok + +Ran 5 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/callable-factory.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/callable-factory.json new file mode 100644 index 000000000..6e2b28887 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/callable-factory.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmppjz1nptr/run_tests.py", + "--output", + "/tmp/tmppjz1nptr/receipt.json", + "--test", + "test_identity.factory" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "dbad02912661f6362d75c8847c7dac39b75cfd3a83293ff90e287376f1633f7c", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmppjz1nptr/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_one(self): record(\"body\")\ndef factory():\n record(\"factory\")\n return unittest.TestSuite([C(\"test_one\")])\n", + "label": "callable-factory", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.factory (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.factory" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-code.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-code.json new file mode 100644 index 000000000..12307e935 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-code.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpvm15spqh/run_tests.py", + "--output", + "/tmp/tmpvm15spqh/receipt.json" + ], + "events": [ + "class-setup" + ], + "exit_code": 1, + "fixture_sha256": "5598244cbf503793004a5f6fba925a2c38181e11b994eee2a8cbf06267150577", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpvm15spqh/events').open(\"a\") as out: out.write(label+\"\\n\")\ndef replacement(self): record(\"replacement\")\nclass C(unittest.TestCase):\n @classmethod\n def setUpClass(cls):\n record(\"class-setup\")\n cls.test_one.__code__=replacement.__code__\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "class-fixture-code", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-function.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-function.json new file mode 100644 index 000000000..01c832254 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-function.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpxi881mg8/run_tests.py", + "--output", + "/tmp/tmpxi881mg8/receipt.json" + ], + "events": [ + "class-setup" + ], + "exit_code": 1, + "fixture_sha256": "3eb930bf6ade0ab1048b52d7ef5386db264fc7e150d672b2b9efefbef970f9ef", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpxi881mg8/events').open(\"a\") as out: out.write(label+\"\\n\")\ndef replacement(self): record(\"replacement\")\nclass C(unittest.TestCase):\n @classmethod\n def setUpClass(cls):\n record(\"class-setup\")\n cls.test_one=replacement\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "class-fixture-function", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-same-code-function.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-same-code-function.json new file mode 100644 index 000000000..bb19be93b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/class-fixture-same-code-function.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpek72bipp/run_tests.py", + "--output", + "/tmp/tmpek72bipp/receipt.json" + ], + "events": [ + "class-setup" + ], + "exit_code": 1, + "fixture_sha256": "4e20c5de04bd9fa2d91ee94dcb9f22c808fddff0115fdd68e7314f53e96aefac", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpek72bipp/events').open(\"a\") as out: out.write(label+\"\\n\")\ndef replacement(self): record(\"replacement\")\nclass C(unittest.TestCase):\n @classmethod\n def setUpClass(cls):\n record(\"class-setup\")\n cls.test_one=__import__(\"types\").FunctionType(cls.test_one.__code__,cls.test_one.__globals__)\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "class-fixture-same-code-function", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-0-class.json new file mode 100644 index 000000000..530ae19ed --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp5ykob_ok/run_tests.py", + "--output", + "/tmp/tmp5ykob_ok/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "8f993c84654a7cddea14d0f7e4937a5e9861906e9f829dc9cb294b3968ec803b", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp5ykob_ok/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record(\"descriptor\")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Descriptor(test_second)\n", + "label": "construction-descriptor-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-class.json new file mode 100644 index 000000000..7c55b12ca --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpww8gjugl/run_tests.py", + "--output", + "/tmp/tmpww8gjugl/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "46d1cbad3048f776860e02c6cec7a1581f3f2d15e86b2de221a9052537f9fa37", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpww8gjugl/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record(\"descriptor\")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Descriptor(test_second)\n", + "label": "construction-descriptor-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-method.json new file mode 100644 index 000000000..c6d6ce6c7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp_e2exjg4/run_tests.py", + "--output", + "/tmp/tmp_e2exjg4/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "eda0c79a438d1f16737b4250a0a4ea6a6d6be2ded5e02a0d000113cd26061654", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp_e2exjg4/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record(\"descriptor\")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Descriptor(test_second)\n", + "label": "construction-descriptor-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_second (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-0-class.json new file mode 100644 index 000000000..b5069f80b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpydegmyua/run_tests.py", + "--output", + "/tmp/tmpydegmyua/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "c7d6d97aa549e97e32a473ad922ace268f8835fe5925b902364dc285a6f949fc", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpydegmyua/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(classmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-classmethod-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-class.json new file mode 100644 index 000000000..9bff67cb4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp152vxxbq/run_tests.py", + "--output", + "/tmp/tmp152vxxbq/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "c0c16e4c065c1d0e43a69912056baf6bea9a667c2ba57c6affaaf15c248d5e5d", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp152vxxbq/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(classmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-classmethod-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-method.json new file mode 100644 index 000000000..16c91960e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-classmethod-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp98kt1imu/run_tests.py", + "--output", + "/tmp/tmp98kt1imu/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "935e09b1960fba5f2daa3a14e42dda8ab6e9d73e8d5d5431fb475806c0b840e0", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp98kt1imu/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(classmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-classmethod-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_second (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-0-class.json new file mode 100644 index 000000000..78a95d2c4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp07yfddaf/run_tests.py", + "--output", + "/tmp/tmp07yfddaf/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "43be229319faf4056bddd85e5e52855f824ee9c7a526bb0c1e18e9b7210177d1", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp07yfddaf/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-staticmethod-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-class.json new file mode 100644 index 000000000..329ec7449 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpeibdeksg/run_tests.py", + "--output", + "/tmp/tmpeibdeksg/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "2c7e09e93f43af8618631fa4bff5885497af5d67bab7b1659e9e8ffbf721998f", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpeibdeksg/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-staticmethod-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-method.json new file mode 100644 index 000000000..32018feec --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-descriptor-staticmethod-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmph9lstqtx/run_tests.py", + "--output", + "/tmp/tmph9lstqtx/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "d6ab8e81f71a63c628691b71af5927f6f73afb987c6e2a97e34144c52c42444e", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmph9lstqtx/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-staticmethod-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_second (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-0-class.json new file mode 100644 index 000000000..d2f430f42 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp4fc0oysi/run_tests.py", + "--output", + "/tmp/tmp4fc0oysi/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "3bf8742764dad777796f5d66316004b75ab69058fadce141fb95541ac9ebb447", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp4fc0oysi/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __getattribute__(self,name):\n record(\"attribute\")\n return super().__getattribute__(name)\n def test_one(self): record(\"body\")\n", + "label": "construction-getattribute-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-class.json new file mode 100644 index 000000000..37c4ec705 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpyg154bht/run_tests.py", + "--output", + "/tmp/tmpyg154bht/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "deee78c0fbae781f7903cf419b07578c71298a41496ef5162832cc77c6d2a6f4", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpyg154bht/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __getattribute__(self,name):\n record(\"attribute\")\n return super().__getattribute__(name)\n def test_one(self): record(\"body\")\n", + "label": "construction-getattribute-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-method.json new file mode 100644 index 000000000..3e7e8aeb1 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-getattribute-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpbvqmz7o_/run_tests.py", + "--output", + "/tmp/tmpbvqmz7o_/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "0ca0d09d7f33062ffa23f4f8d1167921c46d65a1c8010aba4eee9da988ee91fc", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpbvqmz7o_/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __getattribute__(self,name):\n record(\"attribute\")\n return super().__getattribute__(name)\n def test_one(self): record(\"body\")\n", + "label": "construction-getattribute-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-0-class.json new file mode 100644 index 000000000..e86315ccf --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpsyyr_4ib/run_tests.py", + "--output", + "/tmp/tmpsyyr_4ib/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "c11f6e6bd6105a22534efda084ef760e0adde31feccec62bf4fd313992791d15", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpsyyr_4ib/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __init__(self,*a,**k):\n record(\"constructor\")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "construction-init-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-class.json new file mode 100644 index 000000000..3433e0aac --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpkzgevi1t/run_tests.py", + "--output", + "/tmp/tmpkzgevi1t/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "8eb9e5f432e831a7fda5e4a33aa1c4a7e23b711b650448a1f882df7a3c62a3af", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpkzgevi1t/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __init__(self,*a,**k):\n record(\"constructor\")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "construction-init-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-method.json new file mode 100644 index 000000000..f97503a7a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-init-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp09ppzx72/run_tests.py", + "--output", + "/tmp/tmp09ppzx72/receipt.json", + "--test", + "test_identity.C.test_first" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "fa1b4bf1da8b13664cc45c93e3f84f5f1ab8d49fbd69e6b86d553c119d79a356", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp09ppzx72/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __init__(self,*a,**k):\n record(\"constructor\")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "construction-init-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_first (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_first" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-0-class.json new file mode 100644 index 000000000..256eb4684 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpidc79hph/run_tests.py", + "--output", + "/tmp/tmpidc79hph/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "447553389296a20da477da853b135acf98829808abeb3e3e5b667d6538abd48a", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpidc79hph/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Meta(type):\n def __call__(cls,*a,**k):\n record(\"metaclass\")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record(\"body\")\n", + "label": "construction-metaclass-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-class.json new file mode 100644 index 000000000..bed78aec9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpn69vaonn/run_tests.py", + "--output", + "/tmp/tmpn69vaonn/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "7036a017a04854249246c16c669c5ddd631bc1687e7f6ffe43e04518fbed1f6b", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpn69vaonn/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Meta(type):\n def __call__(cls,*a,**k):\n record(\"metaclass\")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record(\"body\")\n", + "label": "construction-metaclass-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-method.json new file mode 100644 index 000000000..72b3f7706 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-metaclass-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp6_wvdgim/run_tests.py", + "--output", + "/tmp/tmp6_wvdgim/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "36b33e41baf28b0d534e57e27b0bc2a1f515e0a44a384d4091d0600e0f660845", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp6_wvdgim/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Meta(type):\n def __call__(cls,*a,**k):\n record(\"metaclass\")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record(\"body\")\n", + "label": "construction-metaclass-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-0-class.json new file mode 100644 index 000000000..961e25891 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp77j3ztfm/run_tests.py", + "--output", + "/tmp/tmp77j3ztfm/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "186399ddb9ad9d4762e6743363cb096baaa10ec1a008a74c9a6fdf02df9b5a20", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp77j3ztfm/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record(\"constructor\")\n return super().__new__(cls)\n def test_one(self): record(\"body\")\n", + "label": "construction-new-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-class.json new file mode 100644 index 000000000..a128fd714 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpd_s3iqj7/run_tests.py", + "--output", + "/tmp/tmpd_s3iqj7/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "52b7c1f9ddc50813582d3a92fb0ccf77fb973df7e1c5ffae4cc1018012e351cf", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpd_s3iqj7/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record(\"constructor\")\n return super().__new__(cls)\n def test_one(self): record(\"body\")\n", + "label": "construction-new-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-method.json new file mode 100644 index 000000000..b42b3dbd4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-new-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp1zisozgw/run_tests.py", + "--output", + "/tmp/tmp1zisozgw/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "0e4a715da72ce88154132cdbcd55c561c2f41ee1ef62873c2f777b26e9ddb8ed", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp1zisozgw/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record(\"constructor\")\n return super().__new__(cls)\n def test_one(self): record(\"body\")\n", + "label": "construction-new-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-0-class.json new file mode 100644 index 000000000..ac7393301 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpxf5vs8hv/run_tests.py", + "--output", + "/tmp/tmpxf5vs8hv/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "62b00f3705b0f0ec0de3272fe23b8e5a1382abf1a17a4012a2d2553048edcc76", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpxf5vs8hv/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __setattr__(self,name,value):\n record(\"attribute\")\n return super().__setattr__(name,value)\n def test_one(self): record(\"body\")\n", + "label": "construction-setattr-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-class.json new file mode 100644 index 000000000..fda6a06dc --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp9c1p7ogg/run_tests.py", + "--output", + "/tmp/tmp9c1p7ogg/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "fc6cec0fd7d99eb67ab155cafd356fe5bc807ae13258307415286f05208d4505", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp9c1p7ogg/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __setattr__(self,name,value):\n record(\"attribute\")\n return super().__setattr__(name,value)\n def test_one(self): record(\"body\")\n", + "label": "construction-setattr-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-method.json new file mode 100644 index 000000000..827cc38bf --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-setattr-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp8rm1pl6w/run_tests.py", + "--output", + "/tmp/tmp8rm1pl6w/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "59d99319057cbe7840010bf0763be8d1a040438c029997f1c950edf25c833afd", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp8rm1pl6w/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __setattr__(self,name,value):\n record(\"attribute\")\n return super().__setattr__(name,value)\n def test_one(self): record(\"body\")\n", + "label": "construction-setattr-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-0-class.json new file mode 100644 index 000000000..21548cd45 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp91eng4qt/run_tests.py", + "--output", + "/tmp/tmp91eng4qt/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "71e495f6829816f4c0b341a14647ae00da1986c7467bb1490b0f7ab598bc906d", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp91eng4qt/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass InitDescriptor:\n def __get__(self,instance,owner):\n record(\"special-descriptor\")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record(\"body\")\n", + "label": "construction-special-descriptor-0-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-class.json new file mode 100644 index 000000000..392f78a17 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpm_zkwlfp/run_tests.py", + "--output", + "/tmp/tmpm_zkwlfp/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "179ca8996b582ded88a6d126c433283eddfd20792aa8df50c6ce81c408a3f2ea", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpm_zkwlfp/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass InitDescriptor:\n def __get__(self,instance,owner):\n record(\"special-descriptor\")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record(\"body\")\n", + "label": "construction-special-descriptor-1-class", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-method.json new file mode 100644 index 000000000..6e523175d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/construction-special-descriptor-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmphd2fyupp/run_tests.py", + "--output", + "/tmp/tmphd2fyupp/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "c3bb61e0c0aac9e1e0af736f63432e4c3f8b81cefcc7fa1eae439dcb9369d6c2", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmphd2fyupp/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass InitDescriptor:\n def __get__(self,instance,owner):\n record(\"special-descriptor\")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record(\"body\")\n", + "label": "construction-special-descriptor-1-method", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/custom-run.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/custom-run.json new file mode 100644 index 000000000..e062af8c3 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/custom-run.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp70jufdfb/run_tests.py", + "--output", + "/tmp/tmp70jufdfb/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "793a0bb3e06378217a394912dda4568cffd55b12cc0ea7e82e943f4d0b2c36f0", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp70jufdfb/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def run(self,result=None):\n record(\"custom-run\")\n return super().run(result)\n def test_one(self): record(\"body\")\n", + "label": "custom-run", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported TestCase.run override" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/during-body-change.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/during-body-change.json new file mode 100644 index 000000000..2062cd690 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/during-body-change.json @@ -0,0 +1,60 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpuxp_q7be/run_tests.py", + "--output", + "/tmp/tmpuxp_q7be/receipt.json" + ], + "events": [ + "first" + ], + "exit_code": 1, + "fixture_sha256": "e5c81716c4c3a5138be35d89313b5d036103392b0ce696bffa4692b003835161", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpuxp_q7be/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self):\n record(\"first\")\n type(self).test_second=type(self).test_first\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "during-body-change", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [ + "test_identity.C.test_first" + ], + "body_finished_ids": [ + "test_identity.C.test_first" + ], + "errors": 1, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_first" + ], + "invalid_population": [ + "selected class/function/code identity changed during execution", + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "test_first (test_identity.C.test_first) ... ERROR\n\n======================================================================\nERROR: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpuxp_q7be/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmpuxp_q7be/run_tests.py\", line 304, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmpuxp_q7be/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_first" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 1, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_first (test_identity.C.test_first) ... ERROR\n\n======================================================================\nERROR: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpuxp_q7be/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmpuxp_q7be/run_tests.py\", line 304, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmpuxp_q7be/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias-assertion.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias-assertion.json new file mode 100644 index 000000000..679935a76 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias-assertion.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpgf1gxmco/run_tests.py", + "--output", + "/tmp/tmpgf1gxmco/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "3354414e0948fc2c93101a939b2deec88c7bc2a149f8a4a69e4f499133fc750f", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpgf1gxmco/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self):\n record(\"first\")\n self.fail(\"first body assertion\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n C.test_second=C.test_first\n return tests\n", + "label": "hook-alias-assertion", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias.json new file mode 100644 index 000000000..cbeaba1d1 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-alias.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpcrvztssl/run_tests.py", + "--output", + "/tmp/tmpcrvztssl/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "63a650be4fd354562eedb6ee56987e72847ccb5c4aee759269dfb58125d358b0", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpcrvztssl/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n C.test_second=C.test_first\n return tests\n", + "label": "hook-alias", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-omission.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-omission.json new file mode 100644 index 000000000..5864d2fa6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-omission.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpi3fcwvn3/run_tests.py", + "--output", + "/tmp/tmpi3fcwvn3/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "573dc2202f3ee40a796477f18d2893a8692879ec3c16f5c2616e0547a0cb993a", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpi3fcwvn3/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n return unittest.TestSuite([C(\"test_first\")])\n", + "label": "hook-omission", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-subclass.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-subclass.json new file mode 100644 index 000000000..587614570 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/hook-subclass.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpx03q7sqw/run_tests.py", + "--output", + "/tmp/tmpx03q7sqw/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "f3a0a87ea1a6fa70b75a7dde254990ac0300ffbf563ecf132af24678a24da23b", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpx03q7sqw/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n def replacement(self): record(\"replacement\")\n R=type(\"C\",(C,),{\"test_first\":replacement,\"test_second\":replacement,\"__module__\":__name__,\"__qualname__\":\"C\"})\n globals()[\"C\"]=R\n return loader.loadTestsFromTestCase(R)\n", + "label": "hook-subclass", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/instance-class-change.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/instance-class-change.json new file mode 100644 index 000000000..e8a47873b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/instance-class-change.json @@ -0,0 +1,54 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp2r_ddfuv/run_tests.py", + "--output", + "/tmp/tmp2r_ddfuv/receipt.json" + ], + "events": [ + "setup" + ], + "exit_code": 1, + "fixture_sha256": "2120368e3a8583a224be464c8935d7073ae635f8488e25e90565c6dfd98a4418", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp2r_ddfuv/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def setUp(self):\n record(\"setup\")\n self.__class__=type(\"C\",(type(self),),{\"__module__\":__name__,\"__qualname__\":\"C\"})\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "instance-class-change", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 1, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_one" + ], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "test_one (test_identity.C.test_one) ... ERROR\n\n======================================================================\nERROR: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmp2r_ddfuv/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmp2r_ddfuv/run_tests.py\", line 283, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmp2r_ddfuv/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_one" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 1, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_one (test_identity.C.test_one) ... ERROR\n\n======================================================================\nERROR: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmp2r_ddfuv/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmp2r_ddfuv/run_tests.py\", line 283, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmp2r_ddfuv/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/module-dir-cannot-hide.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/module-dir-cannot-hide.json new file mode 100644 index 000000000..30b4074e6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/module-dir-cannot-hide.json @@ -0,0 +1,69 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp3m43qzab/run_tests.py", + "--output", + "/tmp/tmp3m43qzab/receipt.json" + ], + "events": [ + "hidden", + "visible" + ], + "exit_code": 1, + "fixture_sha256": "9554f2ecacf19c5a5045715b8ebaeda7b7b5cf7771d04b85ebac328981362992", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp3m43qzab/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Hidden(unittest.TestCase):\n def test_hidden(self):\n record(\"hidden\")\n self.fail(\"hidden body retained\")\nclass Visible(unittest.TestCase):\n def test_visible(self): record(\"visible\")\ndef __dir__():\n record(\"module-dir\")\n return [\"Visible\"]\n", + "label": "module-dir-cannot-hide", + "optimize": 0, + "outcome": "KILLED", + "receipt": { + "assertion_events": [ + { + "origin": "body", + "parent_id": "test_identity.Hidden.test_hidden" + } + ], + "assertion_failures": 1, + "body_assertion_ids": [ + "test_identity.Hidden.test_hidden" + ], + "body_entered_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "body_finished_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_hidden (test_identity.Hidden.test_hidden) ... FAIL\ntest_visible (test_identity.Visible.test_visible) ... ok\n\n======================================================================\nFAIL: test_hidden (test_identity.Hidden.test_hidden)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmp3m43qzab/run_tests.py\", line 323, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: hidden body retained\n\nRan 2 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 2, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_hidden (test_identity.Hidden.test_hidden) ... FAIL\ntest_visible (test_identity.Visible.test_visible) ... ok\n\n======================================================================\nFAIL: test_hidden (test_identity.Hidden.test_hidden)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmp3m43qzab/run_tests.py\", line 323, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: hidden body retained\n\nRan 2 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-assertion.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-assertion.json new file mode 100644 index 000000000..64a87fc37 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-assertion.json @@ -0,0 +1,71 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp0zgw0ka1/run_tests.py", + "--output", + "/tmp/tmp0zgw0ka1/receipt.json", + "--test", + "test_identity.C" + ], + "events": [ + "first", + "second" + ], + "exit_code": 1, + "fixture_sha256": "726a6ecde667ad8f8b7f72886ec67e7edd8a870fe64e7a39477f24184337f2ca", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp0zgw0ka1/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\"); self.fail(\"body\")\n def test_second(self): record(\"second\")\n", + "label": "named-assertion", + "optimize": 0, + "outcome": "KILLED", + "receipt": { + "assertion_events": [ + { + "origin": "body", + "parent_id": "test_identity.C.test_first" + } + ], + "assertion_failures": 1, + "body_assertion_ids": [ + "test_identity.C.test_first" + ], + "body_entered_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "body_finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_first (test_identity.C.test_first) ... FAIL\ntest_second (test_identity.C.test_second) ... ok\n\n======================================================================\nFAIL: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmp0zgw0ka1/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 2, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_first (test_identity.C.test_first) ... FAIL\ntest_second (test_identity.C.test_second) ... ok\n\n======================================================================\nFAIL: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmp0zgw0ka1/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-class.json new file mode 100644 index 000000000..ae75c3427 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-class.json @@ -0,0 +1,64 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpbxpu8q2v/run_tests.py", + "--output", + "/tmp/tmpbxpu8q2v/receipt.json", + "--test", + "test_identity.C" + ], + "events": [ + "first", + "second" + ], + "exit_code": 0, + "fixture_sha256": "f4e4595acb1b6d1da51b1aaae46dd94fb13eb8540563ff9652a7b9bf2b9460da", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpbxpu8q2v/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self): record(\"second\")\n", + "label": "named-class", + "optimize": 0, + "outcome": "SURVIVED", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "body_finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 2, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-method.json new file mode 100644 index 000000000..17edd034a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/named-method.json @@ -0,0 +1,58 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp5jmmod_4/run_tests.py", + "--output", + "/tmp/tmp5jmmod_4/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [ + "second" + ], + "exit_code": 0, + "fixture_sha256": "ebc3ae2cffbe357d30a66c8dcb97ae6b3bc4848db323d6435b67c7ea9ee6eaf1", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp5jmmod_4/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self): record(\"second\")\n", + "label": "named-method", + "optimize": 0, + "outcome": "SURVIVED", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [ + "test_identity.C.test_second" + ], + "body_finished_ids": [ + "test_identity.C.test_second" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_second" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_second (test_identity.C.test_second) ... ok\n\nRan 1 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_second" + ], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_second" + ], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 1, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_second (test_identity.C.test_second) ... ok\n\nRan 1 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-helper-descriptor.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-helper-descriptor.json new file mode 100644 index 000000000..4d63aab07 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-helper-descriptor.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmphxx0trft/run_tests.py", + "--output", + "/tmp/tmphxx0trft/receipt.json", + "--test", + "test_identity.C.helper" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "0055a5593f2f46ed44ff913387d60ed6dfc50cf48a28cba9061119e6f73384d4", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmphxx0trft/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"helper-descriptor\")\n return owner.test_one.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_one(self): record(\"test\")\n def helper(self):\n record(\"retained-helper\")\n self.fail(\"original helper body\")\n helper=Alias(helper)\n", + "label": "selector-helper-descriptor", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.helper (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.helper" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-proxy.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-proxy.json new file mode 100644 index 000000000..3a111c668 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-normal-fixtures/selector-proxy.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpbxrbpbt5/run_tests.py", + "--output", + "/tmp/tmpbxrbpbt5/receipt.json", + "--test", + "test_identity.proxy.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "cb3f7bfffe5018e7d8539ba99aef8c082a2f8418b3d9e023f69cd09726f54374", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpbxrbpbt5/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_one(self): record(\"body\")\nclass Proxy:\n def __getattr__(self,name):\n record(\"proxy\")\n return C\nproxy=Proxy()\n", + "label": "selector-proxy", + "optimize": 0, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.proxy.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.proxy.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/callable-factory.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/callable-factory.json new file mode 100644 index 000000000..32af64a7d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/callable-factory.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpk3ch23or/run_tests.py", + "--output", + "/tmp/tmpk3ch23or/receipt.json", + "--test", + "test_identity.factory" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "bd2b246c19ecd2eee4b5fe5da04c8ec07960606133c224c6abaac17998ea5f27", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpk3ch23or/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_one(self): record(\"body\")\ndef factory():\n record(\"factory\")\n return unittest.TestSuite([C(\"test_one\")])\n", + "label": "callable-factory", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.factory (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.factory" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-code.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-code.json new file mode 100644 index 000000000..9fa0eb262 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-code.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmphzxj_uov/run_tests.py", + "--output", + "/tmp/tmphzxj_uov/receipt.json" + ], + "events": [ + "class-setup" + ], + "exit_code": 1, + "fixture_sha256": "547815bb38288721e39815745cf07aa81ea9e92365830d7b14c1dd9b9497f468", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmphzxj_uov/events').open(\"a\") as out: out.write(label+\"\\n\")\ndef replacement(self): record(\"replacement\")\nclass C(unittest.TestCase):\n @classmethod\n def setUpClass(cls):\n record(\"class-setup\")\n cls.test_one.__code__=replacement.__code__\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "class-fixture-code", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-function.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-function.json new file mode 100644 index 000000000..a56958fd2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-function.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpcayj4vjv/run_tests.py", + "--output", + "/tmp/tmpcayj4vjv/receipt.json" + ], + "events": [ + "class-setup" + ], + "exit_code": 1, + "fixture_sha256": "efe68977ed42ebbe361cced53f36f08c570de9a65d44f8fb9947ebe03518b3ea", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpcayj4vjv/events').open(\"a\") as out: out.write(label+\"\\n\")\ndef replacement(self): record(\"replacement\")\nclass C(unittest.TestCase):\n @classmethod\n def setUpClass(cls):\n record(\"class-setup\")\n cls.test_one=replacement\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "class-fixture-function", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-same-code-function.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-same-code-function.json new file mode 100644 index 000000000..c4bc001db --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/class-fixture-same-code-function.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpjdip3eva/run_tests.py", + "--output", + "/tmp/tmpjdip3eva/receipt.json" + ], + "events": [ + "class-setup" + ], + "exit_code": 1, + "fixture_sha256": "83674db8459f6720029714d37333865f6dc2d50b17490ee5db510ba9d813a749", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpjdip3eva/events').open(\"a\") as out: out.write(label+\"\\n\")\ndef replacement(self): record(\"replacement\")\nclass C(unittest.TestCase):\n @classmethod\n def setUpClass(cls):\n record(\"class-setup\")\n cls.test_one=__import__(\"types\").FunctionType(cls.test_one.__code__,cls.test_one.__globals__)\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "class-fixture-same-code-function", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-0-class.json new file mode 100644 index 000000000..c4b913b88 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpnv0uaej9/run_tests.py", + "--output", + "/tmp/tmpnv0uaej9/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "29c8b6571ec28b990ca2bb0a27ba41b20fe4f152ea831b8ac8ca1af1cc25f12b", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpnv0uaej9/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record(\"descriptor\")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Descriptor(test_second)\n", + "label": "construction-descriptor-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-class.json new file mode 100644 index 000000000..7d004764f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpm8k1arl_/run_tests.py", + "--output", + "/tmp/tmpm8k1arl_/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "d66a4dc1faacd85872c73db30843006ceee9e1383dec2e502de98235625bdbf8", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpm8k1arl_/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record(\"descriptor\")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Descriptor(test_second)\n", + "label": "construction-descriptor-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-method.json new file mode 100644 index 000000000..524893813 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp6t1zxb83/run_tests.py", + "--output", + "/tmp/tmp6t1zxb83/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "e7ecbba7d90e5ac0abc8ae63fd6d3754d53b8d9210436f6ca3d1eed7866ef761", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp6t1zxb83/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record(\"descriptor\")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Descriptor(test_second)\n", + "label": "construction-descriptor-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_second (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-0-class.json new file mode 100644 index 000000000..86db69c32 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpmsubqr6g/run_tests.py", + "--output", + "/tmp/tmpmsubqr6g/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "c052be9126413bef161c089cb3cada4c55174dbacf676d0de7c14f4db70c9d5b", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpmsubqr6g/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(classmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-classmethod-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-class.json new file mode 100644 index 000000000..858e80f9e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmprqsgbmxq/run_tests.py", + "--output", + "/tmp/tmprqsgbmxq/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "257e8325c763018bc2383cf444b342861b714af569adb2cde3ba191c73657fd7", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmprqsgbmxq/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(classmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-classmethod-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-method.json new file mode 100644 index 000000000..be184d7ca --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-classmethod-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmplk29b5xq/run_tests.py", + "--output", + "/tmp/tmplk29b5xq/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "ce401c1f48dc9a7656e8cc656d1eeb69f7f5967bd517d97198300587ee953221", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmplk29b5xq/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(classmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-classmethod-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_second (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-0-class.json new file mode 100644 index 000000000..19d67aee7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp4_wm4gtn/run_tests.py", + "--output", + "/tmp/tmp4_wm4gtn/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "1ddb32291d5886151f536c0fa6020e7504a09e0f1c745b77c0107c20c1720538", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp4_wm4gtn/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-staticmethod-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-class.json new file mode 100644 index 000000000..149b10b2e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpg46nbkoi/run_tests.py", + "--output", + "/tmp/tmpg46nbkoi/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "59305e1ee65694b6372e98165d36d412f68e12028d0e2e6f413f41c4998469a6", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpg46nbkoi/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-staticmethod-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-method.json new file mode 100644 index 000000000..20348f616 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-descriptor-staticmethod-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmph0jwi3o6/run_tests.py", + "--output", + "/tmp/tmph0jwi3o6/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "0cebfc5963cbb02e8f9bc9f2061d5beeaae10e5d6b77c1892b93afe72e18d63d", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmph0jwi3o6/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"descriptor-subclass\")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n test_second=Alias(test_second)\n", + "label": "construction-descriptor-staticmethod-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_second (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-0-class.json new file mode 100644 index 000000000..0a329613d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpyiaib2tl/run_tests.py", + "--output", + "/tmp/tmpyiaib2tl/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "5aed1ccbb70955b66b3ed2aaae2497c32fb6493021cd233170633d19dca36341", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpyiaib2tl/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __getattribute__(self,name):\n record(\"attribute\")\n return super().__getattribute__(name)\n def test_one(self): record(\"body\")\n", + "label": "construction-getattribute-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-class.json new file mode 100644 index 000000000..3f09c3cc2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpzdxnasbw/run_tests.py", + "--output", + "/tmp/tmpzdxnasbw/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "e932e4bb499f469d11495d48d1f162fde53b62c74e0a1caa97c2ef7697a14faf", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpzdxnasbw/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __getattribute__(self,name):\n record(\"attribute\")\n return super().__getattribute__(name)\n def test_one(self): record(\"body\")\n", + "label": "construction-getattribute-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-method.json new file mode 100644 index 000000000..f28a8e212 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-getattribute-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpe8gt3a5w/run_tests.py", + "--output", + "/tmp/tmpe8gt3a5w/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "9371c50354c00badc3af3e82ab1bfb0f88300302be0607011d644f98e4f498a1", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpe8gt3a5w/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __getattribute__(self,name):\n record(\"attribute\")\n return super().__getattribute__(name)\n def test_one(self): record(\"body\")\n", + "label": "construction-getattribute-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-0-class.json new file mode 100644 index 000000000..c29d9fe2e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpq5xja09z/run_tests.py", + "--output", + "/tmp/tmpq5xja09z/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "a5645a8da110dd735e2c57f19b4cdda4e32eb2ed320eabc5a6f985328928ae56", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpq5xja09z/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __init__(self,*a,**k):\n record(\"constructor\")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "construction-init-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-class.json new file mode 100644 index 000000000..47d488d32 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp1b75vg7p/run_tests.py", + "--output", + "/tmp/tmp1b75vg7p/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "f2c536ced542b954dfb3db2cce5fce7905e4df18d9a8dad41c8ba7bfa82d65b9", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp1b75vg7p/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __init__(self,*a,**k):\n record(\"constructor\")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "construction-init-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-method.json new file mode 100644 index 000000000..a7ac39225 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-init-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpb81o6fpt/run_tests.py", + "--output", + "/tmp/tmpb81o6fpt/receipt.json", + "--test", + "test_identity.C.test_first" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "032e02e737d91282aa34b0b6c6066392aaf2ec5317c5e2aa070f9352bb4203ae", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpb81o6fpt/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __init__(self,*a,**k):\n record(\"constructor\")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "construction-init-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_first (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_first" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-0-class.json new file mode 100644 index 000000000..dfd66f175 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpzm2livje/run_tests.py", + "--output", + "/tmp/tmpzm2livje/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "dda452945b802e3f6780eb38df91b1921f87929bf2ac7035ee5ae7c4ffa729c2", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpzm2livje/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Meta(type):\n def __call__(cls,*a,**k):\n record(\"metaclass\")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record(\"body\")\n", + "label": "construction-metaclass-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-class.json new file mode 100644 index 000000000..6c72fa8b3 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpfs1gu81j/run_tests.py", + "--output", + "/tmp/tmpfs1gu81j/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "416fb7f501b06823796d75ca0084724c2727b2c6bf135c49bafb6046b12b95f1", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpfs1gu81j/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Meta(type):\n def __call__(cls,*a,**k):\n record(\"metaclass\")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record(\"body\")\n", + "label": "construction-metaclass-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-method.json new file mode 100644 index 000000000..f5a1b9599 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-metaclass-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpof50u_5p/run_tests.py", + "--output", + "/tmp/tmpof50u_5p/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "e0f321203cc3f734dc17c138e0363873bd5d08cdf0460aee41d11e69f27d77ba", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpof50u_5p/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Meta(type):\n def __call__(cls,*a,**k):\n record(\"metaclass\")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record(\"body\")\n", + "label": "construction-metaclass-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-0-class.json new file mode 100644 index 000000000..6af813dd3 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpap5l7lkg/run_tests.py", + "--output", + "/tmp/tmpap5l7lkg/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "fd1f2895b439d2a3be74df51f23234f64b88a3adf75e17a4b57d21c6fd139391", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpap5l7lkg/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record(\"constructor\")\n return super().__new__(cls)\n def test_one(self): record(\"body\")\n", + "label": "construction-new-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-class.json new file mode 100644 index 000000000..51eecf935 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpv2wbo91r/run_tests.py", + "--output", + "/tmp/tmpv2wbo91r/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "b04449b605a2ff7bf1b25376ec9b04dc4d9e780126e1feace2982247f48a3496", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpv2wbo91r/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record(\"constructor\")\n return super().__new__(cls)\n def test_one(self): record(\"body\")\n", + "label": "construction-new-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-method.json new file mode 100644 index 000000000..8c62dd4f0 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-new-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmppn8lk2ln/run_tests.py", + "--output", + "/tmp/tmppn8lk2ln/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "d59598e462f21aca57710a6fb87f3e4be5fcd31d8524bc2dd2ed99af9c8fcee8", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmppn8lk2ln/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record(\"constructor\")\n return super().__new__(cls)\n def test_one(self): record(\"body\")\n", + "label": "construction-new-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-0-class.json new file mode 100644 index 000000000..832f19f7d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpn1xhssbi/run_tests.py", + "--output", + "/tmp/tmpn1xhssbi/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "928c49b89afee33898ed1ceaa89f011344ab805be8387f782b108c5c3f8ecb18", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpn1xhssbi/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __setattr__(self,name,value):\n record(\"attribute\")\n return super().__setattr__(name,value)\n def test_one(self): record(\"body\")\n", + "label": "construction-setattr-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-class.json new file mode 100644 index 000000000..9a7846f4b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp61u14ikf/run_tests.py", + "--output", + "/tmp/tmp61u14ikf/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "3f5272ee7eebb8b3f49a0881df9c607149f4af03834ad5ff83617a16ba93da40", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp61u14ikf/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __setattr__(self,name,value):\n record(\"attribute\")\n return super().__setattr__(name,value)\n def test_one(self): record(\"body\")\n", + "label": "construction-setattr-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-method.json new file mode 100644 index 000000000..35c451c11 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-setattr-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmprzy6l7ot/run_tests.py", + "--output", + "/tmp/tmprzy6l7ot/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "280c07837e80705cae4dd6d561b007d910b80f8d00532df58f456a62fb5bbcd4", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmprzy6l7ot/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def __setattr__(self,name,value):\n record(\"attribute\")\n return super().__setattr__(name,value)\n def test_one(self): record(\"body\")\n", + "label": "construction-setattr-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-0-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-0-class.json new file mode 100644 index 000000000..44d80440a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-0-class.json @@ -0,0 +1,47 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp7gc987j7/run_tests.py", + "--output", + "/tmp/tmp7gc987j7/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "e26937c68785fc7a5c982c14722ec508aef29200959597c984bb812e3f2a7055", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp7gc987j7/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass InitDescriptor:\n def __get__(self,instance,owner):\n record(\"special-descriptor\")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record(\"body\")\n", + "label": "construction-special-descriptor-0-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-class.json new file mode 100644 index 000000000..80210b1ff --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-class.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpegkh6t4m/run_tests.py", + "--output", + "/tmp/tmpegkh6t4m/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "e1579b45f97d162eeb0a14576687243e7803a4b1d1ad52f6fe610106f180e944", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpegkh6t4m/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass InitDescriptor:\n def __get__(self,instance,owner):\n record(\"special-descriptor\")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record(\"body\")\n", + "label": "construction-special-descriptor-1-class", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported TestCase constructor/metaclass/attribute dispatch" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-method.json new file mode 100644 index 000000000..f92c99174 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/construction-special-descriptor-1-method.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpuh5l_if7/run_tests.py", + "--output", + "/tmp/tmpuh5l_if7/receipt.json", + "--test", + "test_identity.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "e526e773241aec9a00a566589676f3b113d9b8856370054e861f5799dd8d9b61", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpuh5l_if7/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass InitDescriptor:\n def __get__(self,instance,owner):\n record(\"special-descriptor\")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record(\"body\")\n", + "label": "construction-special-descriptor-1-method", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/custom-run.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/custom-run.json new file mode 100644 index 000000000..e0998c21f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/custom-run.json @@ -0,0 +1,50 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmphbvc29vr/run_tests.py", + "--output", + "/tmp/tmphbvc29vr/receipt.json", + "--test", + "test_identity.C" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "933f23b512d1675cf9c77bb9299eaa6870a552b10df3ee6473424853517625b9", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmphbvc29vr/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def run(self,result=None):\n record(\"custom-run\")\n return super().run(result)\n def test_one(self): record(\"body\")\n", + "label": "custom-run", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported TestCase.run override" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/during-body-change.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/during-body-change.json new file mode 100644 index 000000000..f5902c2ba --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/during-body-change.json @@ -0,0 +1,60 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmps2t53dcv/run_tests.py", + "--output", + "/tmp/tmps2t53dcv/receipt.json" + ], + "events": [ + "first" + ], + "exit_code": 1, + "fixture_sha256": "0133bae76e4a821c8f4673ff71c42d73cfc6b5c8538336e38d8716d822e0a864", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmps2t53dcv/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self):\n record(\"first\")\n type(self).test_second=type(self).test_first\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\n", + "label": "during-body-change", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [ + "test_identity.C.test_first" + ], + "body_finished_ids": [ + "test_identity.C.test_first" + ], + "errors": 1, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_first" + ], + "invalid_population": [ + "selected class/function/code identity changed during execution", + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "test_first (test_identity.C.test_first) ... ERROR\n\n======================================================================\nERROR: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmps2t53dcv/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmps2t53dcv/run_tests.py\", line 304, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmps2t53dcv/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_first" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 1, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_first (test_identity.C.test_first) ... ERROR\n\n======================================================================\nERROR: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmps2t53dcv/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmps2t53dcv/run_tests.py\", line 304, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmps2t53dcv/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias-assertion.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias-assertion.json new file mode 100644 index 000000000..78e251a34 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias-assertion.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpj38wdl0f/run_tests.py", + "--output", + "/tmp/tmpj38wdl0f/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "cea11d3690ed666c2eac157dcf78a634cc357e0e42d9677d24ba96f5edc6837f", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpj38wdl0f/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self):\n record(\"first\")\n self.fail(\"first body assertion\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n C.test_second=C.test_first\n return tests\n", + "label": "hook-alias-assertion", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias.json new file mode 100644 index 000000000..638578b69 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-alias.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmppzriq5m4/run_tests.py", + "--output", + "/tmp/tmppzriq5m4/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "2da57de2dec285aae6fe4dc674973ef016e497bc6dc9d506b21a4bb60b69c70e", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmppzriq5m4/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n C.test_second=C.test_first\n return tests\n", + "label": "hook-alias", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-omission.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-omission.json new file mode 100644 index 000000000..489511ccf --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-omission.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpz1j1gwer/run_tests.py", + "--output", + "/tmp/tmpz1j1gwer/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "2c6964d3d3ad6e6ad158b6fe4533982210ab84f0ad8d438f91942cb7c77235be", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpz1j1gwer/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n return unittest.TestSuite([C(\"test_first\")])\n", + "label": "hook-omission", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-subclass.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-subclass.json new file mode 100644 index 000000000..d7717a683 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/hook-subclass.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpvw91s37d/run_tests.py", + "--output", + "/tmp/tmpvw91s37d/receipt.json" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "a43625e49ba97834a353db1191b64b373c3ce62e284243c75de74058a6356035", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpvw91s37d/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self):\n record(\"second\")\n self.fail(\"retained second body\")\ndef load_tests(loader, tests, pattern):\n record(\"hook\")\n def replacement(self): record(\"replacement\")\n R=type(\"C\",(C,),{\"test_first\":replacement,\"test_second\":replacement,\"__module__\":__name__,\"__qualname__\":\"C\"})\n globals()[\"C\"]=R\n return loader.loadTestsFromTestCase(R)\n", + "label": "hook-subclass", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "unsupported module load_tests hook: test_identity" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/instance-class-change.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/instance-class-change.json new file mode 100644 index 000000000..50d78d0b3 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/instance-class-change.json @@ -0,0 +1,54 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpdmmdtexf/run_tests.py", + "--output", + "/tmp/tmpdmmdtexf/receipt.json" + ], + "events": [ + "setup" + ], + "exit_code": 1, + "fixture_sha256": "e251ee79b1fbd0a34698b8269d03c06eabd0f4a81caeadcafa2d80e5c346f83b", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpdmmdtexf/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def setUp(self):\n record(\"setup\")\n self.__class__=type(\"C\",(type(self),),{\"__module__\":__name__,\"__qualname__\":\"C\"})\n def test_one(self):\n record(\"original\")\n self.fail(\"original body retained\")\n", + "label": "instance-class-change", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 1, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_one" + ], + "invalid_population": [ + "selected class/function/code identity changed during execution" + ], + "lifecycle_failures": 0, + "log": "test_one (test_identity.C.test_one) ... ERROR\n\n======================================================================\nERROR: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpdmmdtexf/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmpdmmdtexf/run_tests.py\", line 283, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmpdmmdtexf/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_one" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_one" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 1, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_one (test_identity.C.test_one) ... ERROR\n\n======================================================================\nERROR: test_one (test_identity.C.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpdmmdtexf/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/case.py\", line 589, in _callTestMethod\n if method() is not None:\n ^^^^^^^^\n File \"/tmp/tmpdmmdtexf/run_tests.py\", line 283, in body\n require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution)\n File \"/tmp/tmpdmmdtexf/run_tests.py\", line 154, in require_identities\n raise IdentityMismatch('selected body identity changed')\nIdentityMismatch: selected body identity changed\n\nRan 1 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/module-dir-cannot-hide.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/module-dir-cannot-hide.json new file mode 100644 index 000000000..0ca24285a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/module-dir-cannot-hide.json @@ -0,0 +1,69 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpfenzwg7y/run_tests.py", + "--output", + "/tmp/tmpfenzwg7y/receipt.json" + ], + "events": [ + "hidden", + "visible" + ], + "exit_code": 1, + "fixture_sha256": "25a642c10db7f4c9877a24a2b1b067640921d6ed8dbb70dcfeb2121da3701739", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpfenzwg7y/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Hidden(unittest.TestCase):\n def test_hidden(self):\n record(\"hidden\")\n self.fail(\"hidden body retained\")\nclass Visible(unittest.TestCase):\n def test_visible(self): record(\"visible\")\ndef __dir__():\n record(\"module-dir\")\n return [\"Visible\"]\n", + "label": "module-dir-cannot-hide", + "optimize": 1, + "outcome": "KILLED", + "receipt": { + "assertion_events": [ + { + "origin": "body", + "parent_id": "test_identity.Hidden.test_hidden" + } + ], + "assertion_failures": 1, + "body_assertion_ids": [ + "test_identity.Hidden.test_hidden" + ], + "body_entered_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "body_finished_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_hidden (test_identity.Hidden.test_hidden) ... FAIL\ntest_visible (test_identity.Visible.test_visible) ... ok\n\n======================================================================\nFAIL: test_hidden (test_identity.Hidden.test_hidden)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpfenzwg7y/run_tests.py\", line 323, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: hidden body retained\n\nRan 2 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "selection": [ + "discover:test_*.py" + ], + "skipped": 0, + "started_ids": [ + "test_identity.Hidden.test_hidden", + "test_identity.Visible.test_visible" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 2, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_hidden (test_identity.Hidden.test_hidden) ... FAIL\ntest_visible (test_identity.Visible.test_visible) ... ok\n\n======================================================================\nFAIL: test_hidden (test_identity.Hidden.test_hidden)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpfenzwg7y/run_tests.py\", line 323, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: hidden body retained\n\nRan 2 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-assertion.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-assertion.json new file mode 100644 index 000000000..5340d7065 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-assertion.json @@ -0,0 +1,71 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpr1153npp/run_tests.py", + "--output", + "/tmp/tmpr1153npp/receipt.json", + "--test", + "test_identity.C" + ], + "events": [ + "first", + "second" + ], + "exit_code": 1, + "fixture_sha256": "dae10503d80fa47b7d4fd54ea0f302faff0831c6b785c4fad357ff200dd8ea39", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpr1153npp/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\"); self.fail(\"body\")\n def test_second(self): record(\"second\")\n", + "label": "named-assertion", + "optimize": 1, + "outcome": "KILLED", + "receipt": { + "assertion_events": [ + { + "origin": "body", + "parent_id": "test_identity.C.test_first" + } + ], + "assertion_failures": 1, + "body_assertion_ids": [ + "test_identity.C.test_first" + ], + "body_entered_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "body_finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_first (test_identity.C.test_first) ... FAIL\ntest_second (test_identity.C.test_second) ... ok\n\n======================================================================\nFAIL: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpr1153npp/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "subtest_events": [], + "subtests": 0, + "successful": false, + "tests_run": 2, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_first (test_identity.C.test_first) ... FAIL\ntest_second (test_identity.C.test_second) ... ok\n\n======================================================================\nFAIL: test_first (test_identity.C.test_first)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpr1153npp/run_tests.py\", line 275, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-class.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-class.json new file mode 100644 index 000000000..c713e0992 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-class.json @@ -0,0 +1,64 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpsc6af5p_/run_tests.py", + "--output", + "/tmp/tmpsc6af5p_/receipt.json", + "--test", + "test_identity.C" + ], + "events": [ + "first", + "second" + ], + "exit_code": 0, + "fixture_sha256": "a1760be54d7d3d955d7758750dea15342b5bdc0b593511e0724053baf3659a03", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpsc6af5p_/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self): record(\"second\")\n", + "label": "named-class", + "optimize": 1, + "outcome": "SURVIVED", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "body_finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "selection": [ + "test_identity.C" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_first", + "test_identity.C.test_second" + ], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 2, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_first (test_identity.C.test_first) ... ok\ntest_second (test_identity.C.test_second) ... ok\n\nRan 2 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-method.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-method.json new file mode 100644 index 000000000..03549b657 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/named-method.json @@ -0,0 +1,58 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpja15artg/run_tests.py", + "--output", + "/tmp/tmpja15artg/receipt.json", + "--test", + "test_identity.C.test_second" + ], + "events": [ + "second" + ], + "exit_code": 0, + "fixture_sha256": "761bd4a58f04c356c56108ff7a8dec830098d92f4bb00e84e25b618e6aee02dc", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpja15artg/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_first(self): record(\"first\")\n def test_second(self): record(\"second\")\n", + "label": "named-method", + "optimize": 1, + "outcome": "SURVIVED", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [ + "test_identity.C.test_second" + ], + "body_finished_ids": [ + "test_identity.C.test_second" + ], + "errors": 0, + "expected_failures": 0, + "finished_ids": [ + "test_identity.C.test_second" + ], + "invalid_population": [], + "lifecycle_failures": 0, + "log": "test_second (test_identity.C.test_second) ... ok\n\nRan 1 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [ + "test_identity.C.test_second" + ], + "selection": [ + "test_identity.C.test_second" + ], + "skipped": 0, + "started_ids": [ + "test_identity.C.test_second" + ], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 1, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "test_second (test_identity.C.test_second) ... ok\n\nRan 1 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-helper-descriptor.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-helper-descriptor.json new file mode 100644 index 000000000..03a58703f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-helper-descriptor.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmpvd3ua1h1/run_tests.py", + "--output", + "/tmp/tmpvd3ua1h1/receipt.json", + "--test", + "test_identity.C.helper" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "065d6e6484174adf0c40fdd0f15062b76b6832ce7b33f6377e4d332389ac58b8", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmpvd3ua1h1/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass Alias(staticmethod):\n def __get__(self,instance,owner):\n record(\"helper-descriptor\")\n return owner.test_one.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_one(self): record(\"test\")\n def helper(self):\n record(\"retained-helper\")\n self.fail(\"original helper body\")\n helper=Alias(helper)\n", + "label": "selector-helper-descriptor", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.C.helper (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.C.helper" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-proxy.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-proxy.json new file mode 100644 index 000000000..acb5f0ecb --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-optimized-fixtures/selector-proxy.json @@ -0,0 +1,49 @@ +{ + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/tmp/tmp5co9njkg/run_tests.py", + "--output", + "/tmp/tmp5co9njkg/receipt.json", + "--test", + "test_identity.proxy.C.test_one" + ], + "events": [], + "exit_code": 1, + "fixture_sha256": "0d0a8f1f7f7fdb1c8827ceae24eda01a758d635f174dabb83a4431d92f774045", + "fixture_source": "import unittest\nfrom pathlib import Path\ndef record(label):\n with Path('/tmp/tmp5co9njkg/events').open(\"a\") as out: out.write(label+\"\\n\")\nclass C(unittest.TestCase):\n def test_one(self): record(\"body\")\nclass Proxy:\n def __getattr__(self,name):\n record(\"proxy\")\n return C\nproxy=Proxy()\n", + "label": "selector-proxy", + "optimize": 1, + "outcome": "ERROR", + "receipt": { + "assertion_events": [], + "assertion_failures": 0, + "body_assertion_ids": [], + "body_entered_ids": [], + "body_finished_ids": [], + "errors": 0, + "expected_failures": 0, + "finished_ids": [], + "invalid_population": [ + "empty selected population", + "unsupported test selector: test_identity.proxy.C.test_one (ValueError)" + ], + "lifecycle_failures": 0, + "log": "\nRan 0 tests\n", + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selected_ids": [], + "selection": [ + "test_identity.proxy.C.test_one" + ], + "skipped": 0, + "started_ids": [], + "subtest_events": [], + "subtests": 0, + "successful": true, + "tests_run": 0, + "unexpected_successes": 0 + }, + "stderr": "", + "stdout": "\nRan 0 tests\n" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-red.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-red.json new file mode 100644 index 000000000..35a7b0cb4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-red.json @@ -0,0 +1,138 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "invalid_population": [], + "tests_run": 5, + "assertion_failures": 8, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... FAIL\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... \n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function') ... FAIL\n test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code') ... FAIL\ntest_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... FAIL\ntest_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... \n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass') ... FAIL\n test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission') ... FAIL\ntest_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok\n\n======================================================================\nFAIL: test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/run_tests.py\", line 134, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: Lists differ: ['factory', 'body'] != []\n\nFirst list contains 2 additional elements.\nFirst extra element 0:\n'factory'\n\n- ['factory', 'body']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['test_identity.factory'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='function')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/tests/test_mutation_harness.py\", line 371, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (test_identity.C.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (test_identity.C.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmppxqadj75/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: original body retained\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': ['test_identity.C.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_one', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) (change='code')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/tests/test_mutation_harness.py\", line 371, in test_class_fixture_function_and_code_substitutions_are_refused\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_one (test_identity.C.test_one) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_one'], 'finished_ids': ['test_identity.C.test_one'], 'body_entered_ids': ['test_identity.C.test_one'], 'body_finished_ids': ['test_identity.C.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/run_tests.py\", line 134, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpkd9kuhjj/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: retained second body\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='alias-assertion')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_first (test_identity.C.test_first) ... FAIL\\ntest_second (test_identity.C.test_second) ... FAIL\\n\\n======================================================================\\nFAIL: test_first (test_identity.C.test_first)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpthi6zkib/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: first body assertion\\n\\n======================================================================\\nFAIL: test_second (test_identity.C.test_second)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpthi6zkib/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: first body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'test_identity.C.test_first', 'origin': 'body'}, {'parent_id': 'test_identity.C.test_second', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='subclass')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\ntest_second (test_identity.C.test_second) ... ok\\n\\nRan 2 tests\\n', 'started_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_entered_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_finished_ids': ['test_identity.C.test_first', 'test_identity.C.test_second'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\n======================================================================\nFAIL: test_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) (shape='omission')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/proposed/tests/test_mutation_harness.py\", line 339, in test_module_alias_subclass_and_population_hooks_refused_before_execution\n self.assertEqual(outcome,'ERROR',value)\nAssertionError: 'SURVIVED' != 'ERROR'\n- SURVIVED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['discover:test_*.py'], 'selected_ids': ['test_identity.C.test_first'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 0, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': True, 'log': 'test_first (test_identity.C.test_first) ... ok\\n\\nRan 1 tests\\n', 'started_ids': ['test_identity.C.test_first'], 'finished_ids': ['test_identity.C.test_first'], 'body_entered_ids': ['test_identity.C.test_first'], 'body_finished_ids': ['test_identity.C.test_first'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 5 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population" + ], + "body_assertion_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 8, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "origin": "body" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "origin": "body" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "origin": "subtest" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.json new file mode 100644 index 000000000..7b3b8e841 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.json @@ -0,0 +1,57 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "invalid_population": [], + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok\ntest_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... ok\n\nRan 2 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.log new file mode 100644 index 000000000..a166626db --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-normal.log @@ -0,0 +1,4 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok +test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... ok + +Ran 2 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.json new file mode 100644 index 000000000..7b3b8e841 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.json @@ -0,0 +1,57 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "invalid_population": [], + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok\ntest_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... ok\n\nRan 2 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.log new file mode 100644 index 000000000..a166626db --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/identity-refresh-optimized.log @@ -0,0 +1,4 @@ +test_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok +test_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... ok + +Ran 2 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.json new file mode 100644 index 000000000..4978f5342 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.json @@ -0,0 +1,126 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 18, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.log new file mode 100644 index 000000000..e74c98226 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-normal.log @@ -0,0 +1,3 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.json new file mode 100644 index 000000000..4978f5342 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.json @@ -0,0 +1,126 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_entered_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_finished_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 18, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.log new file mode 100644 index 000000000..e74c98226 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/raw/selector-descriptor-optimized.log @@ -0,0 +1,3 @@ +test_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/RESULTS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/RESULTS.json new file mode 100644 index 000000000..8b5248e93 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/RESULTS.json @@ -0,0 +1,59 @@ +{ + "new_obligation": "Constructor aliases declared methods before existing snapshots", + "no_completed_verification_repeated": true, + "results": [ + { + "tool": "kernel_replay", + "source_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "fixture_sha256": "09e99756efd44899aa0cb96cc63ff2f7478735dbe8cab5b5c06bea03c3b2b862", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/receipt.json" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_constructor.C.test_first", + "test_constructor.C.test_second" + ], + "invalid_population": [], + "body_trace": [ + "first", + "first" + ], + "receipt": "review-probes/constructor-alias/kernel_replay/receipt.json" + }, + { + "tool": "layer_a", + "source_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "fixture_sha256": "732ae96329bbe88c287ae6bf30a605c035a255487de99bda7bb116641d5b5be8", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/layer_a/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/layer_a/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/layer_a/receipt.json" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_auditor.C.test_first", + "test_auditor.C.test_second" + ], + "invalid_population": [], + "body_trace": [ + "first", + "first" + ], + "receipt": "review-probes/constructor-alias/layer_a/receipt.json" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/receipt.json new file mode 100644 index 000000000..f4bd65964 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/receipt.json @@ -0,0 +1,40 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "discover:test_*.py" + ], + "selected_ids": [ + "test_constructor.C.test_first", + "test_constructor.C.test_second" + ], + "invalid_population": [], + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_first (test_constructor.C.test_first) ... ok\ntest_second (test_constructor.C.test_second) ... ok\n\nRan 2 tests\n", + "started_ids": [ + "test_constructor.C.test_first", + "test_constructor.C.test_second" + ], + "finished_ids": [ + "test_constructor.C.test_first", + "test_constructor.C.test_second" + ], + "body_entered_ids": [ + "test_constructor.C.test_first", + "test_constructor.C.test_second" + ], + "body_finished_ids": [ + "test_constructor.C.test_first", + "test_constructor.C.test_second" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/run_tests.py new file mode 100644 index 000000000..c9fec335f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/run_tests.py @@ -0,0 +1,396 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def loadTestsFromTestCase(self,testCaseClass): + return self.remember(super().loadTestsFromTestCase(testCaseClass)) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + suites=[] + for name in dir(module): + value=getattr(module,name) + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent,current=current,getattr(current,part) + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.remember(unittest.TestSuite([parent(parts[-1])])) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/stdout.log new file mode 100644 index 000000000..960f1e390 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/stdout.log @@ -0,0 +1,4 @@ +test_first (test_constructor.C.test_first) ... ok +test_second (test_constructor.C.test_second) ... ok + +Ran 2 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/tests/test_constructor.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/tests/test_constructor.py new file mode 100644 index 000000000..1326295dd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/tests/test_constructor.py @@ -0,0 +1,12 @@ +import unittest +from pathlib import Path +def record(label): + with Path('/workspace/cbz-0/delivery/grader-identity-fix/review-probes/constructor-alias/kernel_replay/trace.txt').open("a") as f: f.write(label+"\n") +class C(unittest.TestCase): + def __init__(self, methodName="runTest"): + super().__init__(methodName) + type(self).test_second=type(self).test_first + def test_first(self): record("first") + def test_second(self): + record("second") + self.fail("retained original second body") diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/trace.txt b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/trace.txt new file mode 100644 index 000000000..f8bb6daa0 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/constructor-alias/trace.txt @@ -0,0 +1,2 @@ +first +first diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/RESULTS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/RESULTS.json new file mode 100644 index 000000000..ed4011b9d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/RESULTS.json @@ -0,0 +1,61 @@ +{ + "new_obligation": "Named method descriptor executes and changes declaration before ordinary-class refusal", + "no_completed_verification_repeated": true, + "results": [ + { + "tool": "kernel_replay", + "source_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "fixture_sha256": "c49611a85b9d6a0ac3bde70143bc66c3718cec1c267d659a8c42401cc307ccd0", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/receipt.json", + "--test", + "test_descriptor.C.test_second" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_descriptor.C.test_second" + ], + "invalid_population": [], + "body_trace": [ + "descriptor", + "first" + ], + "receipt": "review-probes/method-descriptor-alias/kernel_replay/receipt.json" + }, + { + "tool": "layer_a", + "source_sha256": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822", + "fixture_sha256": "83cacd8148b1a86bdcc38c9fa678e7a393302954fecf7c2f312df22589a94fa2", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/layer_a/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/layer_a/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/layer_a/receipt.json", + "--test", + "test_auditor.C.test_second" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_auditor.C.test_second" + ], + "invalid_population": [], + "body_trace": [ + "descriptor", + "first" + ], + "receipt": "review-probes/method-descriptor-alias/layer_a/receipt.json" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/receipt.json new file mode 100644 index 000000000..ca5a43a12 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/receipt.json @@ -0,0 +1,35 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_descriptor.C.test_second" + ], + "selected_ids": [ + "test_descriptor.C.test_second" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_second (test_descriptor.C.test_second) ... ok\n\nRan 1 tests\n", + "started_ids": [ + "test_descriptor.C.test_second" + ], + "finished_ids": [ + "test_descriptor.C.test_second" + ], + "body_entered_ids": [ + "test_descriptor.C.test_second" + ], + "body_finished_ids": [ + "test_descriptor.C.test_second" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/run_tests.py new file mode 100644 index 000000000..40ff65a20 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/run_tests.py @@ -0,0 +1,444 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def ordinary_test_class(self,testCaseClass): + # Construction and attribute dispatch must not rewrite the population. + if type(testCaseClass) is not type: + return False + for name in ('__init__','__new__','__getattribute__','__setattr__','__delattr__'): + if getattr(testCaseClass,name,None) is not getattr(unittest.TestCase,name,None): + return False + for base in testCaseClass.__mro__: + if '__getattr__' in base.__dict__: + return False + for name,value in base.__dict__.items(): + if name.startswith(self.testMethodPrefix) or name=='runTest': + function=value.__func__ if isinstance(value,(staticmethod,classmethod)) else value + if not inspect.isfunction(function): + return False + return True + + def frozen_cases(self,testCaseClass,names): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + # Capture declaration identities before even standard construction. + declared={name:function_chain(getattr(testCaseClass,name,None)) for name in names} + suite=unittest.TestSuite(testCaseClass(name) for name in names) + self.remember(suite) + for test in suite_leaves(suite): + binding=self.bindings.get(id(test)) + original=declared.get(getattr(test,'_testMethodName',None)) + if binding is None or not same_function_chain(binding['declared'],original): + self.invalid.append('selected declaration changed during construction') + elif not same_function_chain(binding['instance'],original): + self.invalid.append('selected instance body changed during construction') + else: + binding['declared']=original + return suite + + def loadTestsFromTestCase(self,testCaseClass): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + names=self.getTestCaseNames(testCaseClass) + if not names and hasattr(testCaseClass,'runTest'): + names=['runTest'] + return self.frozen_cases(testCaseClass,names) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + suites=[] + for name in sorted(module.__dict__): + value=module.__dict__[name] + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent=current + if inspect.ismodule(current): + current=current.__dict__[part] + elif isinstance(current,type) and type(current) is not type: + raise ValueError('unsupported selector metaclass') + else: + current=getattr(current,part) + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.frozen_cases(parent,[parts[-1]]) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,KeyError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/stdout.log new file mode 100644 index 000000000..3dbe41d6f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/stdout.log @@ -0,0 +1,3 @@ +test_second (test_descriptor.C.test_second) ... ok + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/tests/test_descriptor.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/tests/test_descriptor.py new file mode 100644 index 000000000..29dc10e17 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/tests/test_descriptor.py @@ -0,0 +1,16 @@ +import unittest +from pathlib import Path +def record(label): + with Path('/workspace/cbz-0/delivery/grader-identity-fix/review-probes/method-descriptor-alias/kernel_replay/trace.txt').open("a") as f: f.write(label+"\n") +class C(unittest.TestCase): + def test_first(self): record("first") + def test_second(self): + record("second") + self.fail("retained original second body") +ORIGINAL_SECOND=C.test_second +class Rebind: + def __get__(self,instance,owner): + record("descriptor") + owner.test_second=owner.test_first + return owner.test_second +C.test_second=Rebind() diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/trace.txt b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/trace.txt new file mode 100644 index 000000000..ccfd64fd6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/method-descriptor-alias/trace.txt @@ -0,0 +1,2 @@ +descriptor +first diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/RESULTS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/RESULTS.json new file mode 100644 index 000000000..e7088ed64 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/RESULTS.json @@ -0,0 +1,55 @@ +{ + "new_obligation": "Module __dir__ omits TestCase declaration before snapshots", + "no_completed_verification_repeated": true, + "results": [ + { + "tool": "kernel_replay", + "source_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "fixture_sha256": "000f7e0f21e6895a40b759992937fa712b6de326b6d17c0522086135a9a6c533", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/receipt.json" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_module_dir.Visible.test_first" + ], + "invalid_population": [], + "body_trace": [ + "first" + ], + "receipt": "review-probes/module-dir-omission/kernel_replay/receipt.json" + }, + { + "tool": "layer_a", + "source_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "fixture_sha256": "62371bcd5cd50b1c651a4076fcbe1ecd82f14cce6b848d9b2a99eb4a07ef284e", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/layer_a/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/layer_a/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/layer_a/receipt.json" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_auditor.Visible.test_first" + ], + "invalid_population": [], + "body_trace": [ + "first" + ], + "receipt": "review-probes/module-dir-omission/layer_a/receipt.json" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/receipt.json new file mode 100644 index 000000000..e4a2982fd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/receipt.json @@ -0,0 +1,35 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "discover:test_*.py" + ], + "selected_ids": [ + "test_module_dir.Visible.test_first" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_first (test_module_dir.Visible.test_first) ... ok\n\nRan 1 tests\n", + "started_ids": [ + "test_module_dir.Visible.test_first" + ], + "finished_ids": [ + "test_module_dir.Visible.test_first" + ], + "body_entered_ids": [ + "test_module_dir.Visible.test_first" + ], + "body_finished_ids": [ + "test_module_dir.Visible.test_first" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/run_tests.py new file mode 100644 index 000000000..c9fec335f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/run_tests.py @@ -0,0 +1,396 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def loadTestsFromTestCase(self,testCaseClass): + return self.remember(super().loadTestsFromTestCase(testCaseClass)) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + suites=[] + for name in dir(module): + value=getattr(module,name) + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent,current=current,getattr(current,part) + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.remember(unittest.TestSuite([parent(parts[-1])])) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/stdout.log new file mode 100644 index 000000000..2970060d8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/stdout.log @@ -0,0 +1,3 @@ +test_first (test_module_dir.Visible.test_first) ... ok + +Ran 1 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/tests/test_module_dir.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/tests/test_module_dir.py new file mode 100644 index 000000000..40ec0dda6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/tests/test_module_dir.py @@ -0,0 +1,11 @@ +import unittest +from pathlib import Path +def record(label): + with Path('/workspace/cbz-0/delivery/grader-identity-fix/review-probes/module-dir-omission/kernel_replay/trace.txt').open("a") as f: f.write(label+"\n") +class Visible(unittest.TestCase): + def test_first(self): record("first") +class Hidden(unittest.TestCase): + def test_hidden(self): + record("hidden") + self.fail("hidden declared body retained") +def __dir__(): return ["Visible"] diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/trace.txt b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/trace.txt new file mode 100644 index 000000000..9c59e24b8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/module-dir-omission/trace.txt @@ -0,0 +1 @@ +first diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/RESULTS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/RESULTS.json new file mode 100644 index 000000000..add73f840 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/RESULTS.json @@ -0,0 +1,61 @@ +{ + "new_obligation": "Custom subclass of permitted staticmethod dispatches before freeze", + "no_completed_verification_repeated": true, + "results": [ + { + "tool": "kernel_replay", + "source_sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "fixture_sha256": "db453ae68e561d99e25d2d5e2019b293dc33a4570cc7b9fe2e9665934e02b3c6", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/receipt.json" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_static_alias.C.test_first", + "test_static_alias.C.test_second" + ], + "invalid_population": [], + "body_trace": [ + "descriptor", + "first", + "first" + ], + "receipt": "review-probes/staticmethod-subclass-alias/kernel_replay/receipt.json" + }, + { + "tool": "layer_a", + "source_sha256": "6a719ffd05533bdd982b2dbb5c398ba7c5fc41b277c6e2277b33dab56689b463", + "fixture_sha256": "38b8b9585b565a3f89d7506ccab34a5c56d3198ab8ef6ddf799b06d98d9633a4", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/layer_a/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/layer_a/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/layer_a/receipt.json" + ], + "exit_code": 0, + "outcome": "SURVIVED", + "selected_ids": [ + "test_auditor.C.test_first", + "test_auditor.C.test_second" + ], + "invalid_population": [], + "body_trace": [ + "descriptor", + "first", + "first" + ], + "receipt": "review-probes/staticmethod-subclass-alias/layer_a/receipt.json" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/receipt.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/receipt.json new file mode 100644 index 000000000..741bade1d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/receipt.json @@ -0,0 +1,40 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "discover:test_*.py" + ], + "selected_ids": [ + "test_static_alias.C.test_first", + "test_static_alias.C.test_second" + ], + "invalid_population": [], + "tests_run": 2, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_first (test_static_alias.C.test_first) ... ok\ntest_second (test_static_alias.C.test_second) ... ok\n\nRan 2 tests\n", + "started_ids": [ + "test_static_alias.C.test_first", + "test_static_alias.C.test_second" + ], + "finished_ids": [ + "test_static_alias.C.test_first", + "test_static_alias.C.test_second" + ], + "body_entered_ids": [ + "test_static_alias.C.test_first", + "test_static_alias.C.test_second" + ], + "body_finished_ids": [ + "test_static_alias.C.test_first", + "test_static_alias.C.test_second" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/run_tests.py new file mode 100644 index 000000000..9d5d46d31 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/run_tests.py @@ -0,0 +1,456 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def ordinary_test_class(self,testCaseClass): + # Construction and attribute dispatch must not rewrite the population. + if type(testCaseClass) is not type: + return False + for name in ('__init__','__new__','__getattribute__','__setattr__','__delattr__'): + if getattr(testCaseClass,name,None) is not getattr(unittest.TestCase,name,None): + return False + for base in testCaseClass.__mro__: + if '__getattr__' in base.__dict__: + return False + for name,value in base.__dict__.items(): + if name.startswith(self.testMethodPrefix) or name=='runTest': + function=value.__func__ if isinstance(value,(staticmethod,classmethod)) else value + if not inspect.isfunction(function): + return False + return True + + def frozen_cases(self,testCaseClass,names): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + # Capture declaration identities before even standard construction. + declared={name:function_chain(getattr(testCaseClass,name,None)) for name in names} + suite=unittest.TestSuite(testCaseClass(name) for name in names) + self.remember(suite) + for test in suite_leaves(suite): + binding=self.bindings.get(id(test)) + original=declared.get(getattr(test,'_testMethodName',None)) + if binding is None or not same_function_chain(binding['declared'],original): + self.invalid.append('selected declaration changed during construction') + elif not same_function_chain(binding['instance'],original): + self.invalid.append('selected instance body changed during construction') + else: + binding['declared']=original + return suite + + def loadTestsFromTestCase(self,testCaseClass): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + names=self.getTestCaseNames(testCaseClass) + if not names and hasattr(testCaseClass,'runTest'): + names=['runTest'] + return self.frozen_cases(testCaseClass,names) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + if type(module) is not type(sys): + self.invalid.append('unsupported module attribute dispatch') + return unittest.TestSuite() + suites=[] + for name in sorted(module.__dict__): + value=module.__dict__[name] + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent=current + if inspect.ismodule(current): + if type(current) is not type(sys): + raise ValueError('unsupported module attribute dispatch') + current=current.__dict__[part] + elif isinstance(current,type): + if type(current) is not type: + raise ValueError('unsupported selector metaclass') + if issubclass(current,unittest.TestCase) and not self.ordinary_test_class(current): + raise ValueError('unsupported TestCase declaration traversal') + declared=inspect.getattr_static(current,part) + if not (inspect.isfunction(declared) or isinstance(declared,(type,staticmethod,classmethod))): + raise ValueError('unsupported selector descriptor') + current=getattr(current,part) + else: + raise ValueError('unsupported selector object traversal') + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.frozen_cases(parent,[parts[-1]]) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,KeyError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stderr.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stdout.log b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stdout.log new file mode 100644 index 000000000..7f67622e0 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/stdout.log @@ -0,0 +1,4 @@ +test_first (test_static_alias.C.test_first) ... ok +test_second (test_static_alias.C.test_second) ... ok + +Ran 2 tests diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/tests/test_static_alias.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/tests/test_static_alias.py new file mode 100644 index 000000000..44fa8de80 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/tests/test_static_alias.py @@ -0,0 +1,15 @@ +import unittest +from pathlib import Path +def record(label): + with Path('/workspace/cbz-0/delivery/grader-identity-fix/review-probes/staticmethod-subclass-alias/kernel_replay/trace.txt').open("a") as f: f.write(label+"\n") +class Alias(staticmethod): + def __get__(self,instance,owner): + record("descriptor") + owner.test_second=owner.test_first + return owner.test_first +class C(unittest.TestCase): + def test_first(self): record("first") + @Alias + def test_second(self): + record("second") + self.fail("retained original second body") diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/trace.txt b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/trace.txt new file mode 100644 index 000000000..cd3ab53a9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/review-probes/staticmethod-subclass-alias/trace.txt @@ -0,0 +1,3 @@ +descriptor +first +first diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/BASELINE_BINDINGS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/BASELINE_BINDINGS.json new file mode 100644 index 000000000..579a9d18d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/BASELINE_BINDINGS.json @@ -0,0 +1,13 @@ +{ + "layer_a/baseline/TOOLING_REGISTRY.md": "45e1cdf0074c210a969eb12735f224ed6e49082ff3747c12c897f24b4aec5526", + "layer_a/baseline/README.md": "38ef29a8d8a3bc41cd52eba41affb499c40475f76c605c019a12e8255f5ab7ea", + "layer_a/baseline/mutation_test.py": "840d2c86b9c7b1fb934c6fae0f300afa17aca6de5551ca8db70ac47147073b7f", + "layer_a/baseline/SPEC.md": "f3f72bced46b1713f3c2efc5eddf5835d85670609ca71f27af49a710485cd69b", + "layer_a/baseline/tests/test_mutation_runner.py": "9190916dea425ab71aad73acbb70b4100890592f2a462375cb3a922ff62a1ff3", + "kernel_replay/baseline/REGISTRY.json": "94fb19a0cf04443873c99d620895df9e3d0a1c9b044bdb8535cb5adec1e4d936", + "kernel_replay/baseline/mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "kernel_replay/baseline/README.md": "11d33b55820e85213708a9e429dbbffa67f9cdbe06cb7f8920ee35899b44e7ad", + "kernel_replay/baseline/SPEC.md": "bbae2e56db3bb72bf329e760c8226386894e51e5b60423b6975f3dae9e90b2c2", + "kernel_replay/baseline/run_tests.py": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "kernel_replay/baseline/tests/test_mutation_harness.py": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/EXACT_DESCRIPTOR_GUARD_MUTATIONS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/EXACT_DESCRIPTOR_GUARD_MUTATIONS.json new file mode 100644 index 000000000..fa56751ea --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/EXACT_DESCRIPTOR_GUARD_MUTATIONS.json @@ -0,0 +1,318 @@ +{ + "scope": "3 exact-descriptor/static-inspection refusal safeguards per tool/mode; prior11themes remain separate", + "results": [ + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-static-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "e9bf166388951ffd996f6950bfd87bcee4420376ee284021780eb32c3f683acf", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-named-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "82b65607cdb27ca2476c70065373dcd22e0f2dfcf89234d9c6e7d224eb910e86", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "invoke-special-descriptor-during-profile-inspection", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "6146779c1c6d6ec1f1996bec9adac1702472a55d74331fea878014d0783b1e0e", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 3, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-static-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "e9bf166388951ffd996f6950bfd87bcee4420376ee284021780eb32c3f683acf", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-named-descriptor-subclasses", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "82b65607cdb27ca2476c70065373dcd22e0f2dfcf89234d9c6e7d224eb910e86", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "invoke-special-descriptor-during-profile-inspection", + "source_file": "run_tests.py", + "original_sha256": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "mutant_sha256": "6146779c1c6d6ec1f1996bec9adac1702472a55d74331fea878014d0783b1e0e", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 3, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "allow-static-descriptor-subclasses", + "source_file": "mutation_test.py", + "original_sha256": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "mutant_sha256": "ede80a1befeaf8d4390836cb1355ddf41f626cb42b930f69b44346abb2655b14", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-static-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "allow-named-descriptor-subclasses", + "source_file": "mutation_test.py", + "original_sha256": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "mutant_sha256": "fb57ab7191d2c9e8c19619bcee0c175ccd6e310dd800810c5d74e466ca1a1545", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-named-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "invoke-special-descriptor-during-profile-inspection", + "source_file": "mutation_test.py", + "original_sha256": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "mutant_sha256": "1625d671be71084113ee84f614e498e0f69f4b440e0c669514fa20aa0d9d25e0", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 3, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/invoke-special-descriptor-during-profile-inspection/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "allow-static-descriptor-subclasses", + "source_file": "mutation_test.py", + "original_sha256": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "mutant_sha256": "ede80a1befeaf8d4390836cb1355ddf41f626cb42b930f69b44346abb2655b14", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-static-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "allow-named-descriptor-subclasses", + "source_file": "mutation_test.py", + "original_sha256": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "mutant_sha256": "fb57ab7191d2c9e8c19619bcee0c175ccd6e310dd800810c5d74e466ca1a1545", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-named-descriptor-subclasses/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "invoke-special-descriptor-during-profile-inspection", + "source_file": "mutation_test.py", + "original_sha256": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "mutant_sha256": "1625d671be71084113ee84f614e498e0f69f4b440e0c669514fa20aa0d9d25e0", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 3, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/invoke-special-descriptor-during-profile-inspection/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + } + ], + "all_assertion_killed": true +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_EXACT_RUNTIME_BINDINGS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_EXACT_RUNTIME_BINDINGS.json new file mode 100644 index 000000000..69aa25f2d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_EXACT_RUNTIME_BINDINGS.json @@ -0,0 +1,6 @@ +{ + "kernel_replay/run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "kernel_replay/tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "layer_a/mutation_test.py": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "layer_a/tests/test_mutation_runner.py": "9ecf6dbdc0cf30ecf1b9c4f72d6cda21bc8bfe4eac3a5383ebe4e8b1e93a2866" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_RUNTIME_BINDINGS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_RUNTIME_BINDINGS.json new file mode 100644 index 000000000..ad129e267 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FINAL_RUNTIME_BINDINGS.json @@ -0,0 +1,6 @@ +{ + "kernel_replay/run_tests.py": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "kernel_replay/tests/test_mutation_harness.py": "99d0bc18609f4966e7e8a12f4731cb13fb45a23d4689467da2c3fd564ef74030", + "layer_a/mutation_test.py": "6a719ffd05533bdd982b2dbb5c398ba7c5fc41b277c6e2277b33dab56689b463", + "layer_a/tests/test_mutation_runner.py": "849c787473367390fa56d8b75447bd489d18a1a308df0fd94f910dd47decc4de" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FOLLOWUP_GUARD_MUTATIONS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FOLLOWUP_GUARD_MUTATIONS.json new file mode 100644 index 000000000..50b07278a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FOLLOWUP_GUARD_MUTATIONS.json @@ -0,0 +1,214 @@ +{ + "scope": "2 new construction/module-discovery safeguards per tool/mode; prior8themes remain separate", + "results": [ + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-custom-construction", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "239b9bb1455f063b77b6edf33c643629a386dba6f5882414645c760eb36b3bca", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 14, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-custom-construction/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-module-dir-population-omission", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "50ac770b50929e18b882660873cef5029802ef8e1331af724d2029cadbe5a6cd", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-custom-construction", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "239b9bb1455f063b77b6edf33c643629a386dba6f5882414645c760eb36b3bca", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 14, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-custom-construction/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-module-dir-population-omission", + "source_file": "run_tests.py", + "original_sha256": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "mutant_sha256": "50ac770b50929e18b882660873cef5029802ef8e1331af724d2029cadbe5a6cd", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "allow-custom-construction", + "source_file": "mutation_test.py", + "original_sha256": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822", + "mutant_sha256": "5ad3ae089fbb172a81138d32ff277d02f6e2036da2cae628040f60ca976c885b", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 14, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/allow-custom-construction/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-custom-construction/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-custom-construction/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-custom-construction/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "allow-module-dir-population-omission", + "source_file": "mutation_test.py", + "original_sha256": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822", + "mutant_sha256": "5fba8791484fc9cebde8083d23e7bbb76b7ba93cc67278d03b1e98649582e866", + "test": "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-module-dir-population-omission/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-module-dir-population-omission/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-module-dir-population-omission/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "allow-custom-construction", + "source_file": "mutation_test.py", + "original_sha256": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822", + "mutant_sha256": "5ad3ae089fbb172a81138d32ff277d02f6e2036da2cae628040f60ca976c885b", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 14, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/allow-custom-construction/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-custom-construction/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-custom-construction/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-custom-construction/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "allow-module-dir-population-omission", + "source_file": "mutation_test.py", + "original_sha256": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822", + "mutant_sha256": "5fba8791484fc9cebde8083d23e7bbb76b7ba93cc67278d03b1e98649582e866", + "test": "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-module-dir-population-omission/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-module-dir-population-omission/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-module-dir-population-omission/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + } + ], + "all_assertion_killed": true +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FROZEN_RUNTIME_BINDINGS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FROZEN_RUNTIME_BINDINGS.json new file mode 100644 index 000000000..a72fb44a5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/FROZEN_RUNTIME_BINDINGS.json @@ -0,0 +1,6 @@ +{ + "kernel_replay/run_tests.py": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "kernel_replay/tests/test_mutation_harness.py": "8d42a69f5b9a73705837111d59bbbe56c5f41ee84362ff1b006ea38226a37690", + "layer_a/mutation_test.py": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822", + "layer_a/tests/test_mutation_runner.py": "708061a74bdc800addd5394f058605f4e063e172dd6933e715639a499f6c7956" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/GUARD_MUTATIONS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/GUARD_MUTATIONS.json new file mode 100644 index 000000000..8376e90f8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/GUARD_MUTATIONS.json @@ -0,0 +1,838 @@ +{ + "scope": "8 new runner identity safeguard themes per tool/mode; not production scanner/replay mutants", + "results": [ + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-module-hook-refusal", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "8142b73d6348b8786526b24fad189a7aba19dd0f321e8ae12ac3735fd6d3bc36", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "accept-callable-selector-factory", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "c9b312a9492ddd05d7aba67f3cfa15f889fd0aa76436f92ad188600033dc23f1", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-selected-class-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0aa711f14ef8f822fea2773205e2ff7afdf4d34dbd93d49e88b5c4b9db5d2ce8", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-original-function-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "209ff6dea5ae38e7e842612b34702bb5f86f54d59e4b53f5209e465ea4c9d63e", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-function-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-original-code-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "6b84b3db0b2164dcf775d0e165debd791ab95f41ef7835bac0d4fc72ec77f937", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-original-code-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-declared-function-chain", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "904814c32bdb60c2230f9f3d8ca25331c734537c7433a2fbe166fa12e42979e2", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 2, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "skip-before-fixture-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "384fc58ca23882fcd0ce34b28e0d4285481a5eed0bc44a05c924fd5f3cfe93cc", + "test": "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "skip-runtime-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0eb854056f3c5e06515566c9a82503d12410c5a5ae4533af8d31ceee2cc2e1e7", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-module-hook-refusal", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "8142b73d6348b8786526b24fad189a7aba19dd0f321e8ae12ac3735fd6d3bc36", + "test": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "accept-callable-selector-factory", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "c9b312a9492ddd05d7aba67f3cfa15f889fd0aa76436f92ad188600033dc23f1", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-selected-class-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0aa711f14ef8f822fea2773205e2ff7afdf4d34dbd93d49e88b5c4b9db5d2ce8", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-original-function-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "209ff6dea5ae38e7e842612b34702bb5f86f54d59e4b53f5209e465ea4c9d63e", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-original-code-object", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "6b84b3db0b2164dcf775d0e165debd791ab95f41ef7835bac0d4fc72ec77f937", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-declared-function-chain", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "904814c32bdb60c2230f9f3d8ca25331c734537c7433a2fbe166fa12e42979e2", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 2, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "skip-before-fixture-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "384fc58ca23882fcd0ce34b28e0d4285481a5eed0bc44a05c924fd5f3cfe93cc", + "test": "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "skip-runtime-identity-validation", + "source_file": "run_tests.py", + "original_sha256": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "mutant_sha256": "0eb854056f3c5e06515566c9a82503d12410c5a5ae4533af8d31ceee2cc2e1e7", + "test": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-module-hook-refusal", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "d3c75a4a0e016689305e35efd4b0e411d70ab407c6ba848ec3f56311535b95e5", + "test": "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-module-hook-refusal/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-module-hook-refusal/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-module-hook-refusal/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "accept-callable-selector-factory", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "15c3862ae29cb0a7c9d0428ef71b3df36b51c42f2c232e97b678c02d6ebcab2c", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/accept-callable-selector-factory/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/accept-callable-selector-factory/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/accept-callable-selector-factory/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-selected-class-object", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "50fb2b9807aec42ea9178932281358efd04441ed7a388df0b334708058739f74", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-selected-class-object/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-selected-class-object/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-selected-class-object/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-original-function-object", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "097aecc889eca40d5de5cacd5190728d4bfc64cf69b99f3b676f67f48363831e", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/ignore-original-function-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-original-function-object/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-original-function-object/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-original-function-object/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-original-code-object", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "f1177fa84d86dcfd6b8e2c01cfbe5ee800abef85887c0631e1f73c7912923a42", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/ignore-original-code-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-original-code-object/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-original-code-object/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-original-code-object/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-declared-function-chain", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "657dd39dd0bf9eafeaa962bfa34c7dcb3dbef9eb55320bc59cd0d623f20844bb", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 2, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-declared-function-chain/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-declared-function-chain/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/ignore-declared-function-chain/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "skip-before-fixture-identity-validation", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "5563a02b0532f7833fc94744004b2a18c27ec146c62f4d17f9a3e7c4a149f658", + "test": "test_mutation_runner.IdentityHarnessRules.test_postload_substitution_refused_before_any_fixture", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/skip-before-fixture-identity-validation/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_postload_substitution_refused_before_any_fixture" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "skip-runtime-identity-validation", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "c0beceede6c771e4cd8b506f01bfb05c5cb40736f0e4765f6cfdd2527aab13f7", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/skip-runtime-identity-validation/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/skip-runtime-identity-validation/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/skip-runtime-identity-validation/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-module-hook-refusal", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "d3c75a4a0e016689305e35efd4b0e411d70ab407c6ba848ec3f56311535b95e5", + "test": "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-module-hook-refusal/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-module-hook-refusal/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-module-hook-refusal/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "accept-callable-selector-factory", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "15c3862ae29cb0a7c9d0428ef71b3df36b51c42f2c232e97b678c02d6ebcab2c", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/accept-callable-selector-factory/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/accept-callable-selector-factory/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/accept-callable-selector-factory/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-selected-class-object", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "50fb2b9807aec42ea9178932281358efd04441ed7a388df0b334708058739f74", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-selected-class-object/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-selected-class-object/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-selected-class-object/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-original-function-object", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "097aecc889eca40d5de5cacd5190728d4bfc64cf69b99f3b676f67f48363831e", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-original-function-object/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-original-function-object/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-original-function-object/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-original-code-object", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "f1177fa84d86dcfd6b8e2c01cfbe5ee800abef85887c0631e1f73c7912923a42", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-original-code-object/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-original-code-object/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-original-code-object/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-declared-function-chain", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "657dd39dd0bf9eafeaa962bfa34c7dcb3dbef9eb55320bc59cd0d623f20844bb", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 2, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-declared-function-chain/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-declared-function-chain/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/ignore-declared-function-chain/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "skip-before-fixture-identity-validation", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "5563a02b0532f7833fc94744004b2a18c27ec146c62f4d17f9a3e7c4a149f658", + "test": "test_mutation_runner.IdentityHarnessRules.test_postload_substitution_refused_before_any_fixture", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/skip-before-fixture-identity-validation/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_postload_substitution_refused_before_any_fixture" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "skip-runtime-identity-validation", + "source_file": "mutation_test.py", + "original_sha256": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "mutant_sha256": "c0beceede6c771e4cd8b506f01bfb05c5cb40736f0e4765f6cfdd2527aab13f7", + "test": "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 4, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/skip-runtime-identity-validation/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/skip-runtime-identity-validation/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/skip-runtime-identity-validation/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused" + ] + } + ], + "all_assertion_killed": true +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/OPTIMIZATION_PROVENANCE.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/OPTIMIZATION_PROVENANCE.json new file mode 100644 index 000000000..27dd1e177 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/OPTIMIZATION_PROVENANCE.json @@ -0,0 +1,46 @@ +{ + "claim": "Source-bound invocation/environment provenance; no new process or test execution for this record", + "guard_controllers": [ + { + "stage": "initial", + "controller": "guard_mutations.py", + "sha256": "caefdde1a8e496c43cd15188e704d05ec94c91a64a6974b13e93f12f7d957d76", + "driver_sets_child_env": "env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0'", + "driver_explicit_optimized_flag": "(['-O'] if mode=='optimized' else [])", + "subprocess_receipt": "GUARD_MUTATIONS.json" + }, + { + "stage": "construction", + "controller": "guard_mutations_followup.py", + "sha256": "333684e94c36693c189e70fc5395560b001375a1ebc0038d0b6b9c1809a4498b", + "driver_sets_child_env": "env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0'", + "driver_explicit_optimized_flag": "(['-O'] if mode=='optimized' else [])", + "subprocess_receipt": "FOLLOWUP_GUARD_MUTATIONS.json" + }, + { + "stage": "selector", + "controller": "guard_mutations_selector.py", + "sha256": "b99161237ea5372440b6c2b21ce3d71e1b8e795bc3c366083a620608fc0527da", + "driver_sets_child_env": "env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0'", + "driver_explicit_optimized_flag": "(['-O'] if mode=='optimized' else [])", + "subprocess_receipt": "SELECTOR_GUARD_MUTATIONS.json" + }, + { + "stage": "exact-descriptor", + "controller": "guard_mutations_exact_descriptors.py", + "sha256": "95bd1cd9ce9a46dd43cfc198ea3231a09ba3e5a148dd27a7eb5bfe1b0b7afd7f", + "driver_sets_child_env": "env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0'", + "driver_explicit_optimized_flag": "(['-O'] if mode=='optimized' else [])", + "subprocess_receipt": "EXACT_DESCRIPTOR_GUARD_MUTATIONS.json" + } + ], + "control_mode_rule": "Optimized control launches use PYTHONOPTIMIZE=1 and -O for the outer runner. run_identity_fixture uses subprocess.run without an env override, so its -B -S child inherits PYTHONOPTIMIZE=1. Each fixture record states outer sys.flags.optimize; this is source-based inheritance evidence, not a separately instrumented child mode field.", + "actual_optimized_control_invocations": { + "kernel_replay": [ + "PYTHONOPTIMIZE=1 CBZ_IDENTITY_CONTROL_EVIDENCE=... python3 -B -S -O run_tests.py --test ... --output ..." + ], + "layer_a": [ + "PYTHONOPTIMIZE=1 CBZ_IDENTITY_CONTROL_EVIDENCE=... python3 -B -S -O mutation_test.py --internal-test-runner --test-root ... --test ... --output ..." + ] + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/SELECTOR_GUARD_MUTATIONS.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/SELECTOR_GUARD_MUTATIONS.json new file mode 100644 index 000000000..d21075c24 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/SELECTOR_GUARD_MUTATIONS.json @@ -0,0 +1,110 @@ +{ + "scope": "1 named-selector descriptor/proxy refusal safeguard per tool/mode; prior10themes remain separate", + "results": [ + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-selector-descriptor-or-proxy-execution", + "source_file": "run_tests.py", + "original_sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "mutant_sha256": "9a7581db5795949d996b30ef389ba9a5bc50b0356272b736b372135700610ddd", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-selector-descriptor-or-proxy-execution", + "source_file": "run_tests.py", + "original_sha256": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "mutant_sha256": "9a7581db5795949d996b30ef389ba9a5bc50b0356272b736b372135700610ddd", + "test": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/run_tests.py", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/kernel_replay/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "--test", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "allow-selector-descriptor-or-proxy-execution", + "source_file": "mutation_test.py", + "original_sha256": "6a719ffd05533bdd982b2dbb5c398ba7c5fc41b277c6e2277b33dab56689b463", + "mutant_sha256": "22138feb3737b6588118d7c625503b712491108e535d03a6372dc5517698b8dd", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/normal/allow-selector-descriptor-or-proxy-execution/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "allow-selector-descriptor-or-proxy-execution", + "source_file": "mutation_test.py", + "original_sha256": "6a719ffd05533bdd982b2dbb5c398ba7c5fc41b277c6e2277b33dab56689b463", + "mutant_sha256": "22138feb3737b6588118d7c625503b712491108e535d03a6372dc5517698b8dd", + "test": "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "outcome": "KILLED", + "exit_code": 1, + "assertion_failures": 1, + "errors": 0, + "receipt": "layer_a/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "command": [ + "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "-B", + "-S", + "-O", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/mutation_test.py", + "--internal-test-runner", + "--test-root", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/tests", + "--output", + "/workspace/cbz-0/delivery/grader-identity-fix/layer_a/evidence/guard-mutants/optimized/allow-selector-descriptor-or-proxy-execution/receipt.json", + "--test", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ] + } + ], + "all_assertion_killed": true +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review-final.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review-final.json new file mode 100644 index 000000000..f98731763 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review-final.json @@ -0,0 +1,252 @@ +{ + "status": "CLEAR", + "scope": "Read-only saved evidence and AST/source bindings; no tests, runner code, scanner, Lean or GitHub mutations executed", + "final_runtime_bindings": { + "kernel_replay/run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "kernel_replay/tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "layer_a/mutation_test.py": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "layer_a/tests/test_mutation_runner.py": "9ecf6dbdc0cf30ecf1b9c4f72d6cda21bc8bfe4eac3a5383ebe4e8b1e93a2866" + }, + "new_guard_records": 12, + "new_guard_groups": { + "kernel_replay/normal": 3, + "kernel_replay/optimized": 3, + "layer_a/normal": 3, + "layer_a/optimized": 3 + }, + "guards": [ + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-static-descriptor-subclasses", + "receipt_sha256": "dacc27276045f70447f6c4031cca240b1a1c091e8c3f0c17a879a1bb1689ee86", + "mutant_sha256": "e9bf166388951ffd996f6950bfd87bcee4420376ee284021780eb32c3f683acf", + "stdout_sha256": "0e4ce00f228c0ddd70d1228469d0252b502ab1c02b5866ee2562449053f9fa55", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "allow-named-descriptor-subclasses", + "receipt_sha256": "257d42e9dfebc157d85648819e198e709c52bc5da95352778a1736df161e54f7", + "mutant_sha256": "82b65607cdb27ca2476c70065373dcd22e0f2dfcf89234d9c6e7d224eb910e86", + "stdout_sha256": "cdb58d50e19cd4c113d9471bcde70684cfad3a6e2e0f1cbd4c4b4820adb7113d", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "invoke-special-descriptor-during-profile-inspection", + "receipt_sha256": "13c88c8a2be257315a5d0eeefbb8203d2c785d96032f26ed9ace6a4910db6064", + "mutant_sha256": "6146779c1c6d6ec1f1996bec9adac1702472a55d74331fea878014d0783b1e0e", + "stdout_sha256": "64943c1cf2287c26b9e46c838cf887a38e3a6164e3aa1b1ac7c9808c047b8133", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-static-descriptor-subclasses", + "receipt_sha256": "70863c355a543fbcae70db28d3dec3c880b5362d2c819ada85908770e1c974cd", + "mutant_sha256": "e9bf166388951ffd996f6950bfd87bcee4420376ee284021780eb32c3f683acf", + "stdout_sha256": "fcadb6913cdb9ee6347633157df98faa8813196e5d07575e2c11420809af981d", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "allow-named-descriptor-subclasses", + "receipt_sha256": "5dcd1dd848214054f34d3abafdcc889a8affb171239590d593a60088fd4d6c82", + "mutant_sha256": "82b65607cdb27ca2476c70065373dcd22e0f2dfcf89234d9c6e7d224eb910e86", + "stdout_sha256": "32d182607d4798e7ee4fc6467af278446bf57ae5e2bcf83f0863b19d7f3a8aff", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "invoke-special-descriptor-during-profile-inspection", + "receipt_sha256": "ad124dd4a4d92d75633edf8cec56843779d60e1537c5524d63be033fdf8f0f65", + "mutant_sha256": "6146779c1c6d6ec1f1996bec9adac1702472a55d74331fea878014d0783b1e0e", + "stdout_sha256": "445cb37e5df70fa30d7313c8a66a51aab7c52705a0144a01175cd3e3decb4b48", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "allow-static-descriptor-subclasses", + "receipt_sha256": "f28545912be951e689daf784c6dcea14af32956523e8f50ea211310df7b8f1e9", + "mutant_sha256": "ede80a1befeaf8d4390836cb1355ddf41f626cb42b930f69b44346abb2655b14", + "stdout_sha256": "3aae99517742cc9bb25837f59f624e0be7d1818aa10e285df19ddc15cf541347", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "allow-named-descriptor-subclasses", + "receipt_sha256": "8fb296c76a2a74db157771d31a1e56362b079d1bb1bfc981380a9a5e03ff1bea", + "mutant_sha256": "fb57ab7191d2c9e8c19619bcee0c175ccd6e310dd800810c5d74e466ca1a1545", + "stdout_sha256": "c33daa05a2d9aeeea38bb78160afcadb97a56a8ecad784c1439518c06e3d7566", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "invoke-special-descriptor-during-profile-inspection", + "receipt_sha256": "9bcd76726a5c1a2c5ce92b2315d3aa5d7b160b274e87b2facc8ab785f4c4101e", + "mutant_sha256": "1625d671be71084113ee84f614e498e0f69f4b440e0c669514fa20aa0d9d25e0", + "stdout_sha256": "b9bc6e17bbf9f330b77d512247e67529081b60c770045c6a5fa06f334a7edfa8", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "allow-static-descriptor-subclasses", + "receipt_sha256": "6bd610fd832daf45a9d69870ff62f51a0fb174d057675b3f5bd2df7a8499c860", + "mutant_sha256": "ede80a1befeaf8d4390836cb1355ddf41f626cb42b930f69b44346abb2655b14", + "stdout_sha256": "d1e7937d55ccfab67f8f18219c3af5fa75526ab326094e1fbddc07af0f0bff26", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "allow-named-descriptor-subclasses", + "receipt_sha256": "80e1a55c4b1832e4b1b2e3f8bcf52ef2fd4649c90476bae9e706e5dd178c0c15", + "mutant_sha256": "fb57ab7191d2c9e8c19619bcee0c175ccd6e310dd800810c5d74e466ca1a1545", + "stdout_sha256": "140cc0a2a7fc415fdf1e374d27fc239cf87f45d5a7ac433f92fa8f0ce000ad09", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "invoke-special-descriptor-during-profile-inspection", + "receipt_sha256": "b7d9c8d9134e431e1a469396457924e4e1e0bce77603e0185ea9d93aeefcb503", + "mutant_sha256": "1625d671be71084113ee84f614e498e0f69f4b440e0c669514fa20aa0d9d25e0", + "stdout_sha256": "32aac4525911039afc5a12ba8223f298f96add9da0ef20f2aaed3bd1c666bccd", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + } + ], + "expanded_method_green_receipts": [ + { + "tool": "kernel_replay", + "mode": "normal", + "path": "kernel_replay/evidence/exact-descriptor-normal.json", + "sha256": "670b9c7966deb56347a6313f175055a3467eea95a5ee36bc36c7c729d104aa19", + "tests_run": 1, + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "pass": true + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "path": "kernel_replay/evidence/exact-descriptor-optimized.json", + "sha256": "670b9c7966deb56347a6313f175055a3467eea95a5ee36bc36c7c729d104aa19", + "tests_run": 1, + "selected_ids": [ + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "pass": true + }, + { + "tool": "layer_a", + "mode": "normal", + "path": "layer_a/evidence/exact-descriptor-normal.json", + "sha256": "b9e916aa036ab7c96bf44974b9e658cffef362f5037d36cf6718e261495a2a08", + "tests_run": 1, + "selected_ids": [ + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "pass": true + }, + { + "tool": "layer_a", + "mode": "optimized", + "path": "layer_a/evidence/exact-descriptor-optimized.json", + "sha256": "b9e916aa036ab7c96bf44974b9e658cffef362f5037d36cf6718e261495a2a08", + "tests_run": 1, + "selected_ids": [ + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body" + ], + "pass": true + } + ], + "method_partition": [ + { + "tool": "kernel_replay", + "earlier_test_source_sha256": "da9bb463c0675be7729067c8a46e55b5171293c15be598c5e891051818c49850", + "final_test_source_sha256": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "method_count": 27, + "unchanged_method_count": 25, + "changed_methods": [ + "IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "added": [], + "removed": [], + "expected_two_expansions_only": true + }, + { + "tool": "layer_a", + "earlier_test_source_sha256": "4e33dcb77a0f897976462e8c10b46de65bc2eeddba8d2b0f3604f3b3832f2b19", + "final_test_source_sha256": "9ecf6dbdc0cf30ecf1b9c4f72d6cda21bc8bfe4eac3a5383ebe4e8b1e93a2866", + "method_count": 22, + "unchanged_method_count": 20, + "changed_methods": [ + "IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body", + "IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution" + ], + "added": [], + "removed": [], + "expected_two_expansions_only": true + } + ], + "historical_guard_evidence": [ + { + "path": "GUARD_MUTATIONS.json", + "sha256": "6b1aec98f57510cd79545105bf76f8a8ce7c13fd093e766f8c73e2c4c0c90e47", + "records": 32, + "bound_generations": [ + "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5" + ], + "all_reported_assertion_kills": true, + "status": "Preserved generation-bound evidence; not relabeled as final-source executions" + }, + { + "path": "FOLLOWUP_GUARD_MUTATIONS.json", + "sha256": "98d94d858a285800aa80a8348661820c81152e6d0afdeae75a662e152704f43d", + "records": 8, + "bound_generations": [ + "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822" + ], + "all_reported_assertion_kills": true, + "status": "Preserved generation-bound evidence; not relabeled as final-source executions" + }, + { + "path": "SELECTOR_GUARD_MUTATIONS.json", + "sha256": "b6442e84be54f748ea79229c1ea37bb69d9de87331cd182835717710de0ab789", + "records": 4, + "bound_generations": [ + "6a719ffd05533bdd982b2dbb5c398ba7c5fc41b277c6e2277b33dab56689b463", + "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739" + ], + "all_reported_assertion_kills": true, + "status": "Preserved generation-bound evidence; not relabeled as final-source executions" + } + ], + "prior_review": "evidence-binding-review.json applies to original32guard campaign and 27/19 method composition at its own generation; retained unchanged", + "issues": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review.json new file mode 100644 index 000000000..50b922420 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/evidence-binding-review.json @@ -0,0 +1,546 @@ +{ + "scope": "Saved evidence/source-binding review only; no tests or source execution", + "guard_records": 32, + "group_counts": { + "kernel_replay/normal": 8, + "kernel_replay/optimized": 8, + "layer_a/normal": 8, + "layer_a/optimized": 8 + }, + "all_assertion_kills": true, + "guard_binding_issues": [], + "guards": [ + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-module-hook-refusal", + "source_matches": true, + "receipt_sha256": "82d9d9508e3cee208451ea30117a80859059acc544e0d45994cc607207fbf4e0", + "stdout_sha256": "131cd115c6f7276371fcae16b569695615ebbc09acb44004f6d49da14791b57b", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "accept-callable-selector-factory", + "source_matches": true, + "receipt_sha256": "baba96a43a9dcf624751479fc879661adfa617335a3ccdd98836a5a337e76b19", + "stdout_sha256": "a4f61543cf899a8dfdff8aa239fc7d040323705951a89520afe425d9160048d5", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-selected-class-object", + "source_matches": true, + "receipt_sha256": "9368effe87b7026ee56326ac2bfbb02fb3846dcfaa30c46c9edc8f9eea671af2", + "stdout_sha256": "0fca7743d1528fd0caeff923e3bd66d212e8faed96cce674084858e21cbbe6e8", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-original-function-object", + "source_matches": true, + "receipt_sha256": "677b9414a3d5f79761dbe0c534bacae97a1a5560599fe0a95b24ce0aedf2203c", + "stdout_sha256": "ba675913565db0ab300e877f4a68d86095e93bbb4ae4a506f6c21cd5cc9cf05a", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-original-code-object", + "source_matches": true, + "receipt_sha256": "6ba4cd787c000c83398716f4ab10780934bff389a904826e9785076d12e9a2b2", + "stdout_sha256": "c06c22298a93324ef57ef5ec01306f4a95f0aee48c20c72f4b13501e82c1f0a6", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "ignore-declared-function-chain", + "source_matches": true, + "receipt_sha256": "4c797eff30d6ec75211fe5dd9ac8724201d4eb1c323778208901774b295d74e1", + "stdout_sha256": "2dc5e52a36522ba885f03b3fa2bbc4e0b249721e63b21def01f675631a618fb1", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "skip-before-fixture-identity-validation", + "source_matches": true, + "receipt_sha256": "764e27b223102f80c2f4205274f8e8497e223b34ab22671eaf9672a0ab07107d", + "stdout_sha256": "8083dbdad1524a319d74f7f962438a1b872022cbef57c055e89bf17bee07ef9c", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "normal", + "name": "skip-runtime-identity-validation", + "source_matches": true, + "receipt_sha256": "3b5c89b611116d109077f4dbc355f35f2474206e7857cac415c899573ff67577", + "stdout_sha256": "ab0a256a565772334158862c880ed6eb2c4fd3e477a722ebe0e29c638f1aa27d", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-module-hook-refusal", + "source_matches": true, + "receipt_sha256": "d57ddd5fd4a058f008282ceaa3d13ca3ed9b78f27f40b39bcee2cd197876db0c", + "stdout_sha256": "31d647dcc331324b7acab5600088c237444f119d562ea8bff537f68599b660e6", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "accept-callable-selector-factory", + "source_matches": true, + "receipt_sha256": "b3bd6e635e5808da0275afa316d76bf82ffdbc99ab45d6e747c81c997a5e76a8", + "stdout_sha256": "ffdcec1225452ec36f4367fd6689162604ac819b0eee542d103c57a2311dc38d", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-selected-class-object", + "source_matches": true, + "receipt_sha256": "51ddf2022fddca741c937eba1b54370efbac5aa0a39db82785f79c88dd3d61e6", + "stdout_sha256": "a21ef10e371c89af08b3b0fac8d4e0ff4ea36fcea557a6a69fda210e2225a79d", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-original-function-object", + "source_matches": true, + "receipt_sha256": "e009453bc240aa4830374a0fc35353162eb21da5523a3f0ca9df7cd882abee16", + "stdout_sha256": "8ceac458094bf4a89b9d1169c25f2b54b7ed9038903a630ac9dfeaff256c6894", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-original-code-object", + "source_matches": true, + "receipt_sha256": "934289850dce49d3106fc172b98ed35a901f506da3c46955bfc9e753e6f56bb2", + "stdout_sha256": "6342af0480511f4d6201f5861a444a4b986778645b4cfbbe1de7e0b842b4ce04", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "ignore-declared-function-chain", + "source_matches": true, + "receipt_sha256": "8302b411e1d3d74371df57720be55a7aece8ed96595255c37273de9d959bd42c", + "stdout_sha256": "393ee57739b21a4ffce0476c5aeb842646e71e13a4e6cf52a03f102d1acc76f8", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "skip-before-fixture-identity-validation", + "source_matches": true, + "receipt_sha256": "e4288ddf0d8d153e013de44a785fd07caf32556257f6eeefc85391c6ddf4c1e6", + "stdout_sha256": "e23b918b83fa66490ea9c70fc0e08c0572ffbdbc4f88264f7f7399f02c7a2c83", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "kernel_replay", + "mode": "optimized", + "name": "skip-runtime-identity-validation", + "source_matches": true, + "receipt_sha256": "66eb45a3af0f0b21e3af533dbaebd31d66af938f4509d56b7752720a04ff3dca", + "stdout_sha256": "610f634f0f4f2aa74dc7290e412f7b82c22373560c5a00aea593ee122231e47e", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-module-hook-refusal", + "source_matches": true, + "receipt_sha256": "1fcdcec589357c9698002816c9a2cc2da7ef89e9bec3c3fcc77d072d871b4ba6", + "stdout_sha256": "10c4a74f1879280a183048df3769c22da4bf0b44d00a0b4c5362b47fa3348974", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "accept-callable-selector-factory", + "source_matches": true, + "receipt_sha256": "95f38caf779339f0df5144950fbd8ebb3db1cbe830dd4b340966a63164131bd1", + "stdout_sha256": "33c243b3f417b51b4e543cadb5adcffc374e144da7663a2a3708031366196775", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-selected-class-object", + "source_matches": true, + "receipt_sha256": "daea778ff8a281508b831197629c86b49afddc9a9a97b67652e295479d4a2437", + "stdout_sha256": "884434c0d991ede0e8063200abba1739645a6539f64fe8dacd3411c0d7c0fc48", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-original-function-object", + "source_matches": true, + "receipt_sha256": "d5ec3c04816ec3b503b76ca183ffec2abfdfe5a5667bd5385b5a7c682fa77776", + "stdout_sha256": "f2fbc257aa08c8e15112265ece739fa256c5f1e684543fedcbc09c956526f39f", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-original-code-object", + "source_matches": true, + "receipt_sha256": "1e732c2804b4c5b170e6145c0b96b401f9acf187dda6276bbf542ec9c68c3ca6", + "stdout_sha256": "e18c136278aef1621300591f38faeda9c0355457492a68bd160e9cebc2c6f6a1", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "ignore-declared-function-chain", + "source_matches": true, + "receipt_sha256": "05a8e9981eb5531b00fb239eb95ef99dd0ae6f98257d8b238904665053f77e07", + "stdout_sha256": "bb4c88de0ed2ae924daadd6305b6b89589d202efd7990829cf97d6170e805908", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "skip-before-fixture-identity-validation", + "source_matches": true, + "receipt_sha256": "891158d4327bcdc26d56c30bd6b513a8c53554d8d9663600f38dee454893ab33", + "stdout_sha256": "2b6711f7cdd53ee3ac9f678334e9ea0a7bb986fff5db6457adfb77f53b92de23", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "normal", + "name": "skip-runtime-identity-validation", + "source_matches": true, + "receipt_sha256": "77a2dfd576779a82b72e555ca362d634c4489e4142f7af7e9b7ddae147133fb1", + "stdout_sha256": "fdece6b874654dbc2db2f62990a9d5095a722d112a701784a3b067aad6db9127", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-module-hook-refusal", + "source_matches": true, + "receipt_sha256": "acc0ba6b8c760d73a5c4455a61f5345bc9c87d4f859de5dc39f6ceccd3a39a74", + "stdout_sha256": "59aaad6c18be71d742a8d28887402d67d0471e5b622a65509ed91abd66c4f52a", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "accept-callable-selector-factory", + "source_matches": true, + "receipt_sha256": "f9894757e336fd605f9f096635a4dd84e4e9c31f793adde6f6c80d388ad65dc5", + "stdout_sha256": "5d7da0bd3a60b3302398bdc4b8d5eb96348ddd78377635acf3ce2e781a5c2f0c", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-selected-class-object", + "source_matches": true, + "receipt_sha256": "d5049184078f8d9ebe83a36029688e186f303a66e1e6807f6828b47485a33470", + "stdout_sha256": "6987a74bf9ea756fcdaf36278325855b3dae0500a173e31fd528e3a21ea55327", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-original-function-object", + "source_matches": true, + "receipt_sha256": "f3f82222d60248f95cd9902f05bec1948f878f4d38dd2732ac73042a44e6219b", + "stdout_sha256": "012ddee87c272f33e54eca3222781cd5905b92ede14ca026df194ac1df2d7dd5", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-original-code-object", + "source_matches": true, + "receipt_sha256": "bb5a76e0d130e5c30c9c6103ad15cad420a0d3b87a5a4ee582af335b76bb81c8", + "stdout_sha256": "678e86c135c1f105c3734a8895c3903c131720a4371805deed1a914d90061afb", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "ignore-declared-function-chain", + "source_matches": true, + "receipt_sha256": "8cb24652959e3f72923cddca041caa2b4ceee7243e8a42c7f4ac55d76dd7f508", + "stdout_sha256": "ffa5c35c6397d2bb7a6b94ed86557075793c914fa138536c0a29d46302a7f3ba", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "skip-before-fixture-identity-validation", + "source_matches": true, + "receipt_sha256": "88676906a3284c2eba755067453b4ff764488c4d0869d467c04324631e52e68e", + "stdout_sha256": "178195cfb98f52d296c6baa95898a98f47b41c3403b8c1b3154627b9999b332b", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + }, + { + "tool": "layer_a", + "mode": "optimized", + "name": "skip-runtime-identity-validation", + "source_matches": true, + "receipt_sha256": "7fccce4dc941be0b6c16db7bfdc6ff9611b42fa5d5761b0ec4fd94476224afe1", + "stdout_sha256": "ab135043b118837bf905b6df39bbd2e050f0a7c0a6b7bd07e51f619342af82fb", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "issues": [] + } + ], + "composed_methods": { + "kernel_replay/normal": { + "distinct_methods": 27, + "all_latest_method_observations_pass": true, + "runs": [ + { + "path": "kernel_replay/evidence/affected-normal-dev2.json", + "sha256": "ef08c5c93359f1337011243c26307dbd975ac6a996a73a25f6cac9d7afaf7096", + "selected_count": 26, + "tests_run": 26, + "failures": 0, + "errors": 0, + "successful": true + }, + { + "path": "kernel_replay/evidence/identity-refresh-normal.json", + "sha256": "3ba00e79be0fbee01f828085670ba7db19d1b6c737ad9e3cfd2f41690c921a7e", + "selected_count": 2, + "tests_run": 2, + "failures": 0, + "errors": 0, + "successful": true + } + ], + "methods": { + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish": "PASS", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population": "PASS", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives": "PASS", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors": "PASS", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion": "PASS", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion": "PASS", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors": "PASS", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies": "PASS", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill": "PASS", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture": "PASS" + } + }, + "kernel_replay/optimized": { + "distinct_methods": 27, + "all_latest_method_observations_pass": true, + "runs": [ + { + "path": "kernel_replay/evidence/affected-optimized.json", + "sha256": "ef08c5c93359f1337011243c26307dbd975ac6a996a73a25f6cac9d7afaf7096", + "selected_count": 26, + "tests_run": 26, + "failures": 0, + "errors": 0, + "successful": true + }, + { + "path": "kernel_replay/evidence/identity-refresh-optimized.json", + "sha256": "3ba00e79be0fbee01f828085670ba7db19d1b6c737ad9e3cfd2f41690c921a7e", + "selected_count": 2, + "tests_run": 2, + "failures": 0, + "errors": 0, + "successful": true + } + ], + "methods": { + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish": "PASS", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population": "PASS", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives": "PASS", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors": "PASS", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion": "PASS", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion": "PASS", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors": "PASS", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies": "PASS", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error": "PASS", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill": "PASS", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work": "PASS", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population": "PASS", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture": "PASS" + } + }, + "layer_a/normal": { + "distinct_methods": 19, + "all_latest_method_observations_pass": true, + "runs": [ + { + "path": "layer_a/evidence/affected-normal-dev2.json", + "sha256": "e6be88aa5ae13bb357a411e1bea72766e8bea06a9145a5c6e2480d397762cea6", + "selected_count": 18, + "tests_run": 18, + "failures": 1, + "errors": 0, + "successful": false + }, + { + "path": "layer_a/evidence/canonical-population-normal.json", + "sha256": "c72ad83604addc0eea4a4894754729f0ffafa305e70c3b72ff4de55014c6a416", + "selected_count": 1, + "tests_run": 1, + "failures": 0, + "errors": 0, + "successful": true + }, + { + "path": "layer_a/evidence/identity-refresh-normal.json", + "sha256": "d0ebe8680885cc7ec059046e3b5c63a1f1b49a1a48af313251baf81bf10ab471", + "selected_count": 2, + "tests_run": 2, + "failures": 0, + "errors": 0, + "successful": true + } + ], + "methods": { + "test_mutation_runner.LifecycleHarnessRules.test_assertion_event_provenance_rejects_duplicate_direct_failures": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_body_assertion_kills_and_identity_survives": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_body_scoped_subtests_have_exact_parent_assertion_events": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_empty_duplicate_synthetic_and_rewritten_method_ids_are_rejected": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_errors_skips_expected_failures_and_subtests_are_ambiguous": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_expected_population_is_bound_before_mutation": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_missing_forged_or_noninteger_receipts_fail_closed": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_setup_teardown_cleanup_assertions_cannot_kill": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_mixed_lazy_function_shapes_are_refused_before_any_body": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_sync_bodies_require_none_and_refuse_other_returns_without_iteration": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_sync_lazy_returns_are_rejected_without_advancing_objects": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_wraps_decorated_lazy_functions_are_refused_at_population": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_custom_testcase_run_is_refused_before_execution": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_identity_change_during_body_is_not_a_clean_kill": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_named_class_and_method_selection_preserve_exact_population": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_postload_substitution_refused_before_any_fixture": "PASS" + } + }, + "layer_a/optimized": { + "distinct_methods": 19, + "all_latest_method_observations_pass": true, + "runs": [ + { + "path": "layer_a/evidence/affected-optimized.json", + "sha256": "e046d1f5a0ac987c8c25d8dbcdcb21b63f432898520e980503ffa67f39b9a672", + "selected_count": 18, + "tests_run": 18, + "failures": 0, + "errors": 0, + "successful": true + }, + { + "path": "layer_a/evidence/identity-refresh-optimized.json", + "sha256": "d0ebe8680885cc7ec059046e3b5c63a1f1b49a1a48af313251baf81bf10ab471", + "selected_count": 2, + "tests_run": 2, + "failures": 0, + "errors": 0, + "successful": true + } + ], + "methods": { + "test_mutation_runner.LifecycleHarnessRules.test_assertion_event_provenance_rejects_duplicate_direct_failures": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_body_assertion_kills_and_identity_survives": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_body_scoped_subtests_have_exact_parent_assertion_events": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_empty_duplicate_synthetic_and_rewritten_method_ids_are_rejected": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_errors_skips_expected_failures_and_subtests_are_ambiguous": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_expected_population_is_bound_before_mutation": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_missing_forged_or_noninteger_receipts_fail_closed": "PASS", + "test_mutation_runner.LifecycleHarnessRules.test_setup_teardown_cleanup_assertions_cannot_kill": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_mixed_lazy_function_shapes_are_refused_before_any_body": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_sync_bodies_require_none_and_refuse_other_returns_without_iteration": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_sync_lazy_returns_are_rejected_without_advancing_objects": "PASS", + "test_mutation_runner.LazyBodyHarnessRules.test_wraps_decorated_lazy_functions_are_refused_at_population": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_callable_factory_selector_is_refused_before_factory_or_body": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_class_fixture_function_and_code_substitutions_are_refused": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_custom_testcase_run_is_refused_before_execution": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_identity_change_during_body_is_not_a_clean_kill": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_module_alias_subclass_and_population_hooks_refused_before_execution": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_named_class_and_method_selection_preserve_exact_population": "PASS", + "test_mutation_runner.IdentityHarnessRules.test_postload_substitution_refused_before_any_fixture": "PASS" + } + } + }, + "bound_runtime_sha256": { + "kernel_replay": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "layer_a": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc" + }, + "status": "CLEAR" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations.py new file mode 100644 index 000000000..bef7ffd08 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +"""Bounded actual runner-source guard omissions; no scanner/Lean mutations.""" +import ast, hashlib, importlib.util, json, os +from pathlib import Path +import shutil, subprocess, sys +ROOT=Path(__file__).resolve().parent + +def sha(raw):return hashlib.sha256(raw).hexdigest() +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m + +GUARDS=[ + ('ignore-module-hook-refusal',"if module.__dict__.get('load_tests') is not None:",'if False:', 'test_module_alias_subclass_and_population_hooks_refused_before_execution'), + ('accept-callable-selector-factory',"raise ValueError('unsupported callable or selector kind')",'return self.remember(super().loadTestsFromName(name,module))','test_callable_factory_selector_is_refused_before_factory_or_body'), + ('ignore-selected-class-object',"type(test) is not binding['class']",'False','test_class_fixture_function_and_code_substitutions_are_refused'), + ('ignore-original-function-object','a is c and b is d','b is d','test_class_fixture_function_and_code_substitutions_are_refused'), + ('ignore-original-code-object','a is c and b is d','a is c','test_class_fixture_function_and_code_substitutions_are_refused'), + ('ignore-declared-function-chain',"if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']):",'if False:','test_class_fixture_function_and_code_substitutions_are_refused'), + ('skip-before-fixture-identity-validation','if not identity_matches(test,bindings.get(id(test))):','if False:','test_postload_substitution_refused_before_any_fixture'), + ('skip-runtime-identity-validation','if any(not identity_matches(test,bindings.get(id(test))) for test in cases):','if False:','test_class_fixture_function_and_code_substitutions_are_refused'), +] +report=[] +for tool in ['kernel_replay','layer_a']: + parent=ROOT/tool/'proposed';filename='run_tests.py' if tool=='kernel_replay' else 'mutation_test.py' + original=(parent/filename).read_text(); healthy=load(parent/('mutations.py' if tool=='kernel_replay' else 'mutation_test.py'),'healthy_'+tool) + for mode in ['normal','optimized']: + for name,before,after,method in GUARDS: + if original.count(before)!=1:raise ValueError((tool,name,'nonunique anchor',original.count(before))) + changed=original.replace(before,after,1);ast.parse(changed) + work=ROOT/tool/'evidence'/'guard-mutants'/mode/name + work.mkdir(parents=True,exist_ok=True) + for p in parent.glob('*.py'):(work/p.name).write_bytes(p.read_bytes()) + shutil.copytree(parent/'tests',work/'tests',dirs_exist_ok=True) + (work/filename).write_text(changed) + out=work/'receipt.json';env=dict(os.environ);env.pop('PYTHONPATH',None);env['PYTHONDONTWRITEBYTECODE']='1';env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0' + command=[sys.executable,'-B','-S']+(['-O'] if mode=='optimized' else [])+[str(work/filename)] + cls='test_mutation_harness.IdentityHarnessTests' if tool=='kernel_replay' else 'test_mutation_runner.IdentityHarnessRules' + if tool=='layer_a':command+=['--internal-test-runner','--test-root',str(work/'tests')] + command+=['--output',str(out),'--test',cls+'.'+method] + p=subprocess.run(command,cwd=work,env=env,capture_output=True,text=True,timeout=20) + (work/'stdout.log').write_text(p.stdout);(work/'stderr.log').write_text(p.stderr) + value=json.loads(out.read_text()) if out.exists() else {} + outcome=(healthy.classify(value,p.returncode) if tool=='kernel_replay' else healthy.classify_test_result(value,p.returncode)) + report.append({'tool':tool,'mode':mode,'name':name,'source_file':filename,'original_sha256':sha(original.encode()),'mutant_sha256':sha(changed.encode()),'test':cls+'.'+method,'outcome':outcome,'exit_code':p.returncode,'assertion_failures':value.get('assertion_failures'),'errors':value.get('errors'),'receipt':str(out.relative_to(ROOT)),'command':command}) + print(tool,mode,name,outcome,flush=True) +(ROOT/'GUARD_MUTATIONS.json').write_text(json.dumps({'scope':'8 new runner identity safeguard themes per tool/mode; not production scanner/replay mutants','results':report,'all_assertion_killed':all(x['outcome']=='KILLED' and x['errors']==0 for x in report)},indent=2)+'\n') +if any(x['outcome']!='KILLED' or x['errors']!=0 for x in report):raise SystemExit(1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_exact_descriptors.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_exact_descriptors.py new file mode 100644 index 000000000..5f563e427 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_exact_descriptors.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +"""Bounded actual runner-source guard omissions; no scanner/Lean mutations.""" +import ast, hashlib, importlib.util, json, os +from pathlib import Path +import shutil, subprocess, sys +ROOT=Path(__file__).resolve().parent + +def sha(raw):return hashlib.sha256(raw).hexdigest() +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m + +GUARDS=[('allow-static-descriptor-subclasses', 'type(value) in (staticmethod,classmethod)', 'isinstance(value,(staticmethod,classmethod))', 'test_callable_factory_selector_is_refused_before_factory_or_body'), ('allow-named-descriptor-subclasses', 'type(declared) in (type,staticmethod,classmethod)', 'isinstance(declared,(type,staticmethod,classmethod))', 'test_callable_factory_selector_is_refused_before_factory_or_body'), ('invoke-special-descriptor-during-profile-inspection', 'inspect.getattr_static(testCaseClass,name,None) is not inspect.getattr_static(unittest.TestCase,name,None)', 'getattr(testCaseClass,name,None) is not getattr(unittest.TestCase,name,None)', 'test_callable_factory_selector_is_refused_before_factory_or_body')] + +report=[] +for tool in ['kernel_replay','layer_a']: + parent=ROOT/tool/'proposed';filename='run_tests.py' if tool=='kernel_replay' else 'mutation_test.py' + original=(parent/filename).read_text(); healthy=load(parent/('mutations.py' if tool=='kernel_replay' else 'mutation_test.py'),'healthy_'+tool) + for mode in ['normal','optimized']: + for name,before,after,method in GUARDS: + if original.count(before)!=1:raise ValueError((tool,name,'nonunique anchor',original.count(before))) + changed=original.replace(before,after,1);ast.parse(changed) + work=ROOT/tool/'evidence'/'guard-mutants'/mode/name + work.mkdir(parents=True,exist_ok=True) + for p in parent.glob('*.py'):(work/p.name).write_bytes(p.read_bytes()) + shutil.copytree(parent/'tests',work/'tests',dirs_exist_ok=True) + (work/filename).write_text(changed) + out=work/'receipt.json';env=dict(os.environ);env.pop('PYTHONPATH',None);env['PYTHONDONTWRITEBYTECODE']='1';env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0' + command=[sys.executable,'-B','-S']+(['-O'] if mode=='optimized' else [])+[str(work/filename)] + cls='test_mutation_harness.IdentityHarnessTests' if tool=='kernel_replay' else 'test_mutation_runner.IdentityHarnessRules' + if tool=='layer_a':command+=['--internal-test-runner','--test-root',str(work/'tests')] + command+=['--output',str(out),'--test',cls+'.'+method] + p=subprocess.run(command,cwd=work,env=env,capture_output=True,text=True,timeout=20) + (work/'stdout.log').write_text(p.stdout);(work/'stderr.log').write_text(p.stderr) + value=json.loads(out.read_text()) if out.exists() else {} + outcome=(healthy.classify(value,p.returncode) if tool=='kernel_replay' else healthy.classify_test_result(value,p.returncode)) + report.append({'tool':tool,'mode':mode,'name':name,'source_file':filename,'original_sha256':sha(original.encode()),'mutant_sha256':sha(changed.encode()),'test':cls+'.'+method,'outcome':outcome,'exit_code':p.returncode,'assertion_failures':value.get('assertion_failures'),'errors':value.get('errors'),'receipt':str(out.relative_to(ROOT)),'command':command}) + print(tool,mode,name,outcome,flush=True) +(ROOT/'EXACT_DESCRIPTOR_GUARD_MUTATIONS.json').write_text(json.dumps({'scope':'3 exact-descriptor/static-inspection refusal safeguards per tool/mode; prior11themes remain separate','results':report,'all_assertion_killed':all(x['outcome']=='KILLED' and x['errors']==0 for x in report)},indent=2)+'\n') +if any(x['outcome']!='KILLED' or x['errors']!=0 for x in report):raise SystemExit(1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_followup.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_followup.py new file mode 100644 index 000000000..ac076c010 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_followup.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +"""Bounded actual runner-source guard omissions; no scanner/Lean mutations.""" +import ast, hashlib, importlib.util, json, os +from pathlib import Path +import shutil, subprocess, sys +ROOT=Path(__file__).resolve().parent + +def sha(raw):return hashlib.sha256(raw).hexdigest() +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m + +GUARDS=[('allow-custom-construction', "def ordinary_test_class(self,testCaseClass):\n # Construction and attribute dispatch must not rewrite the population.\n if type(testCaseClass) is not type:\n return False\n for name in ('__init__','__new__','__getattribute__','__setattr__','__delattr__'):\n if getattr(testCaseClass,name,None) is not getattr(unittest.TestCase,name,None):\n return False\n for base in testCaseClass.__mro__:\n if '__getattr__' in base.__dict__:\n return False\n for name,value in base.__dict__.items():\n if name.startswith(self.testMethodPrefix) or name=='runTest':\n function=value.__func__ if isinstance(value,(staticmethod,classmethod)) else value\n if not inspect.isfunction(function):\n return False\n return True", 'def ordinary_test_class(self,testCaseClass):\n return True', 'test_callable_factory_selector_is_refused_before_factory_or_body'), ('allow-module-dir-population-omission', 'for name in sorted(module.__dict__):\n value=module.__dict__[name]', 'for name in dir(module):\n value=getattr(module,name)', 'test_module_alias_subclass_and_population_hooks_refused_before_execution')] + +report=[] +for tool in ['kernel_replay','layer_a']: + parent=ROOT/tool/'proposed';filename='run_tests.py' if tool=='kernel_replay' else 'mutation_test.py' + original=(parent/filename).read_text(); healthy=load(parent/('mutations.py' if tool=='kernel_replay' else 'mutation_test.py'),'healthy_'+tool) + for mode in ['normal','optimized']: + for name,before,after,method in GUARDS: + if original.count(before)!=1:raise ValueError((tool,name,'nonunique anchor',original.count(before))) + changed=original.replace(before,after,1);ast.parse(changed) + work=ROOT/tool/'evidence'/'guard-mutants'/mode/name + work.mkdir(parents=True,exist_ok=True) + for p in parent.glob('*.py'):(work/p.name).write_bytes(p.read_bytes()) + shutil.copytree(parent/'tests',work/'tests',dirs_exist_ok=True) + (work/filename).write_text(changed) + out=work/'receipt.json';env=dict(os.environ);env.pop('PYTHONPATH',None);env['PYTHONDONTWRITEBYTECODE']='1';env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0' + command=[sys.executable,'-B','-S']+(['-O'] if mode=='optimized' else [])+[str(work/filename)] + cls='test_mutation_harness.IdentityHarnessTests' if tool=='kernel_replay' else 'test_mutation_runner.IdentityHarnessRules' + if tool=='layer_a':command+=['--internal-test-runner','--test-root',str(work/'tests')] + command+=['--output',str(out),'--test',cls+'.'+method] + p=subprocess.run(command,cwd=work,env=env,capture_output=True,text=True,timeout=20) + (work/'stdout.log').write_text(p.stdout);(work/'stderr.log').write_text(p.stderr) + value=json.loads(out.read_text()) if out.exists() else {} + outcome=(healthy.classify(value,p.returncode) if tool=='kernel_replay' else healthy.classify_test_result(value,p.returncode)) + report.append({'tool':tool,'mode':mode,'name':name,'source_file':filename,'original_sha256':sha(original.encode()),'mutant_sha256':sha(changed.encode()),'test':cls+'.'+method,'outcome':outcome,'exit_code':p.returncode,'assertion_failures':value.get('assertion_failures'),'errors':value.get('errors'),'receipt':str(out.relative_to(ROOT)),'command':command}) + print(tool,mode,name,outcome,flush=True) +(ROOT/'FOLLOWUP_GUARD_MUTATIONS.json').write_text(json.dumps({'scope':'2 new construction/module-discovery safeguards per tool/mode; prior8themes remain separate','results':report,'all_assertion_killed':all(x['outcome']=='KILLED' and x['errors']==0 for x in report)},indent=2)+'\n') +if any(x['outcome']!='KILLED' or x['errors']!=0 for x in report):raise SystemExit(1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_selector.py b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_selector.py new file mode 100644 index 000000000..22733d6a5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/guard_mutations_selector.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +"""Bounded actual runner-source guard omissions; no scanner/Lean mutations.""" +import ast, hashlib, importlib.util, json, os +from pathlib import Path +import shutil, subprocess, sys +ROOT=Path(__file__).resolve().parent + +def sha(raw):return hashlib.sha256(raw).hexdigest() +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m + +GUARDS=[('allow-selector-descriptor-or-proxy-execution', " for part in parts:\n parent=current\n if inspect.ismodule(current):\n if type(current) is not type(sys):\n raise ValueError('unsupported module attribute dispatch')\n current=current.__dict__[part]\n elif isinstance(current,type):\n if type(current) is not type:\n raise ValueError('unsupported selector metaclass')\n if issubclass(current,unittest.TestCase) and not self.ordinary_test_class(current):\n raise ValueError('unsupported TestCase declaration traversal')\n declared=inspect.getattr_static(current,part)\n if not (inspect.isfunction(declared) or isinstance(declared,(type,staticmethod,classmethod))):\n raise ValueError('unsupported selector descriptor')\n current=getattr(current,part)\n else:\n raise ValueError('unsupported selector object traversal')", ' for part in parts:\n parent=current\n if inspect.ismodule(current):\n current=current.__dict__[part]\n else:\n current=getattr(current,part)', 'test_callable_factory_selector_is_refused_before_factory_or_body')] + +report=[] +for tool in ['kernel_replay','layer_a']: + parent=ROOT/tool/'proposed';filename='run_tests.py' if tool=='kernel_replay' else 'mutation_test.py' + original=(parent/filename).read_text(); healthy=load(parent/('mutations.py' if tool=='kernel_replay' else 'mutation_test.py'),'healthy_'+tool) + for mode in ['normal','optimized']: + for name,before,after,method in GUARDS: + if original.count(before)!=1:raise ValueError((tool,name,'nonunique anchor',original.count(before))) + changed=original.replace(before,after,1);ast.parse(changed) + work=ROOT/tool/'evidence'/'guard-mutants'/mode/name + work.mkdir(parents=True,exist_ok=True) + for p in parent.glob('*.py'):(work/p.name).write_bytes(p.read_bytes()) + shutil.copytree(parent/'tests',work/'tests',dirs_exist_ok=True) + (work/filename).write_text(changed) + out=work/'receipt.json';env=dict(os.environ);env.pop('PYTHONPATH',None);env['PYTHONDONTWRITEBYTECODE']='1';env['PYTHONOPTIMIZE']='1' if mode=='optimized' else '0' + command=[sys.executable,'-B','-S']+(['-O'] if mode=='optimized' else [])+[str(work/filename)] + cls='test_mutation_harness.IdentityHarnessTests' if tool=='kernel_replay' else 'test_mutation_runner.IdentityHarnessRules' + if tool=='layer_a':command+=['--internal-test-runner','--test-root',str(work/'tests')] + command+=['--output',str(out),'--test',cls+'.'+method] + p=subprocess.run(command,cwd=work,env=env,capture_output=True,text=True,timeout=20) + (work/'stdout.log').write_text(p.stdout);(work/'stderr.log').write_text(p.stderr) + value=json.loads(out.read_text()) if out.exists() else {} + outcome=(healthy.classify(value,p.returncode) if tool=='kernel_replay' else healthy.classify_test_result(value,p.returncode)) + report.append({'tool':tool,'mode':mode,'name':name,'source_file':filename,'original_sha256':sha(original.encode()),'mutant_sha256':sha(changed.encode()),'test':cls+'.'+method,'outcome':outcome,'exit_code':p.returncode,'assertion_failures':value.get('assertion_failures'),'errors':value.get('errors'),'receipt':str(out.relative_to(ROOT)),'command':command}) + print(tool,mode,name,outcome,flush=True) +(ROOT/'SELECTOR_GUARD_MUTATIONS.json').write_text(json.dumps({'scope':'1 named-selector descriptor/proxy refusal safeguard per tool/mode; prior10themes remain separate','results':report,'all_assertion_killed':all(x['outcome']=='KILLED' and x['errors']==0 for x in report)},indent=2)+'\n') +if any(x['outcome']!='KILLED' or x['errors']!=0 for x in report):raise SystemExit(1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.json new file mode 100644 index 000000000..f72601e59 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.json @@ -0,0 +1,64 @@ +{ + "verdict": "CLEAR_SCOPED_ENGINEERING", + "scope": "Source/evidence review of final ordinary unittest declaration/identity loader repair; no full G0, scanner, Lean, mathematical, hosted or federation acceptance claim", + "final_bindings": { + "kernel_replay/run_tests.py": "2c54e05593641f0b20dc565d5b8e24cdd819f739d7f38b5130631402d5616efb", + "kernel_replay/tests/test_mutation_harness.py": "c16063e29d3e91b315120f1143ec6763608bb5ed33d90af6fa839f82ed489022", + "layer_a/mutation_test.py": "cf742de46c1e386deeb11b122ed5bccdcab0778666b0b2774fab78e57eed1ad2", + "layer_a/tests/test_mutation_runner.py": "9ecf6dbdc0cf30ecf1b9c4f72d6cda21bc8bfe4eac3a5383ebe4e8b1e93a2866" + }, + "closed_findings": [ + { + "id": "IDENTITY-REVIEW-F1", + "boundary": "Custom TestCase constructors/metaclasses/attribute dispatch are refused before instantiation; declared function/code chains are captured before standard construction and compared afterward." + }, + { + "id": "IDENTITY-REVIEW-F2", + "boundary": "Default discovery enumerates actual ordinary-module dictionary declarations and does not invoke module __dir__ or __getattr__." + }, + { + "id": "IDENTITY-REVIEW-F3", + "boundary": "Named selector traversal checks the supported TestCase profile before class attribute access, uses raw static declaration inspection, and refuses non-module/non-class proxy/factory traversal." + }, + { + "id": "IDENTITY-REVIEW-F4", + "boundary": "Supported descriptors are exact built-in staticmethod/classmethod types; subclasses are refused. Constructor and dispatch-member inspection uses inspect.getattr_static, so the profile inspector does not invoke custom descriptors." + } + ], + "source_partition": "Compared with c77ee122/50c0e2d first reviewed generation, IdentityLoader is the only changed existing top-level definition in either runtime. The actual function/code binding, body lifecycle, exception identity, synchronous None-return profile, accounting and classifier logic remain unchanged. Shared nine-definition identity blocks match by AST across both tools.", + "test_partition": "Only the two existing identity methods for module population hooks and callable/constructor/descriptor factories expand; no identity-stage methods are deleted or added after the seven-method generation. All other methods retain exact AST identity.", + "verification_evidence": { + "fresh_current_guard_observations": 12, + "fresh_current_themes_per_tool_mode": 3, + "fresh_current_assertion_kills": 12, + "fresh_current_errors": 0, + "fresh_targeted_positive_receipts": 4, + "fresh_targeted_method_count_per_receipt": 1, + "fresh_targeted_modes": [ + "normal", + "optimized" + ], + "preserved_prior_guard_observations": 44, + "preserved_prior_campaign_sizes": [ + 32, + 8, + 4 + ], + "composed_guard_observations_all_generations": 56, + "distinct_guard_themes_per_tool": 14, + "not_production_mutant_count": true, + "composed_distinct_affected_methods_per_mode": { + "kernel_replay": 27, + "layer_a": 19 + }, + "binding_review": "evidence-binding-review-final.json" + }, + "preservation": "All earlier AMEND reviews, failed omission probes, original failed normal run and generation-bound receipts remain intact. They are not overwritten or relabeled as final-source executions.", + "review_execution": "Final review used source, AST, hashes and saved receipts only; no completed test or probe was rerun. Earlier new-counterexample executions remain explicitly generation-bound.", + "limitations": [ + "Trusted ordinary Python test source/runtime and source/runner custody are required; this is not an arbitrary malicious-code sandbox.", + "The finite controls verify declared supported discovery/identity/lifecycle behavior, not universal semantic test completeness or universal scanner correctness.", + "Canonical registration, portable documentation composition, current-head CI, integration and final federation gates remain the root integrator\u2019s separate obligations." + ], + "findings": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.md b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.md new file mode 100644 index 000000000..cf753a465 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-final.md @@ -0,0 +1,33 @@ +# Final scoped loader identity review + +**CLEAR_SCOPED_ENGINEERING** at kernel runtime `2c54e055` / harness `c16063e2` +and layer-a runtime `cf742de4` / harness `9ecf6dbd`. + +The four demonstrated identity/population findings are closed. The loader +snapshots declared function/code chains before standard construction; rejects +unsupported constructors, metaclasses and attribute dispatch; enumerates actual +module declarations; and validates named selectors before invoking class +attributes. Descriptor allowance uses exact built-in types, and constructor +inspection is static. Unsupported descriptor subclasses and selector proxies +cannot transform the selected population before its snapshot. + +The final twelve guard observations are actual assertion kills with zero +errors. Four saved normal/optimized targeted receipts each pass the expanded +factory/descriptor method. The preceding 32, 8 and 4 guard observations remain +separately bound to their earlier generations. Together these are 56 guard +observations across 14 themes per tool and two modes, not 56 production scanner +or replay mutations and not a fresh whole campaign. Applicable affected method +unions remain kernel 27 and layer-a 19 per mode. + +Source partition review shows only `IdentityLoader` changed after the first +reviewed identity generation; the lifecycle, function/code matching and +classifier definitions remain exact. Only two existing identity methods expand +with the new controls. All other test methods retain exact AST identity. The +independent evidence-binding review confirms current source/test hashes, mutant +sources, raw receipts and logs. Final review repeated no completed test. + +All AMEND reviews, failed omission probes and earlier generation receipts are +preserved. This verdict covers the documented ordinary trusted Python profile; +it is not an arbitrary-code sandbox, universal scanner proof, scientific or +federation CBZ-0 claim. Root retains canonical registration, documentation +composition, current-head CI and integration obligations. diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.json new file mode 100644 index 000000000..5e8857409 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.json @@ -0,0 +1,47 @@ +{ + "verdict": "AMEND", + "scope": "Only changed construction/module discovery boundaries and applicable evidence; no completed verification rerun", + "reviewed_runtime_hashes": { + "kernel_replay": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "layer_a": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822" + }, + "frozen_bindings_read": { + "kernel_replay/run_tests.py": "730bf28746f6574dc11cf9d8b63d759c6edab1aafed8d2a73b21f2388278cef3", + "kernel_replay/tests/test_mutation_harness.py": "8d42a69f5b9a73705837111d59bbbe56c5f41ee84362ff1b006ea38226a37690", + "layer_a/mutation_test.py": "c07a257fd5a641b67e00431616fe2e3cfd0426ebc0066383bf328356c227f822", + "layer_a/tests/test_mutation_runner.py": "708061a74bdc800addd5394f058605f4e063e172dd6933e715639a499f6c7956" + }, + "closed_previous_findings": [ + { + "id": "IDENTITY-REVIEW-F1", + "state": "SOURCE_AND_SCOPED_EVIDENCE_CLOSED", + "reason": "Ordinary construction, metaclass and attribute dispatch checked before instantiation; class function/code declarations snapshotted before construction and compared afterward." + }, + { + "id": "IDENTITY-REVIEW-F2", + "state": "SOURCE_AND_SCOPED_EVIDENCE_CLOSED", + "reason": "Module enumeration now uses sorted actual module dictionary keys/direct values, bypassing module __dir__ and __getattr__." + } + ], + "new_findings": [ + { + "id": "IDENTITY-REVIEW-F3", + "severity": "P1", + "title": "Reject method descriptors before named-selector resolution", + "cause": "loadTestsFromName calls getattr(TestCaseClass,part) before ordinary_test_class is checked by frozen_cases. An unsupported descriptor can alias itself to another body before that guard sees the class.", + "observed": "Both exact proposed runners return SURVIVED/exit0 with selected C.test_second, invalid_population=[], trace descriptor,first. The retained original second body is absent.", + "evidence": "review-probes/method-descriptor-alias/RESULTS.json", + "fix": "Validate an ordinary TestCase class before accessing a method selector and avoid invoking custom descriptors. Refuse non-module/non-TestCase object traversal rather than allowing selector factory side effects." + } + ], + "followup_guard_evidence": { + "records": 8, + "themes_per_tool_mode": 2, + "actual_assertion_kills": 8, + "errors": 0, + "file": "FOLLOWUP_GUARD_MUTATIONS.json" + }, + "prior_evidence": "Original32 guard executions and normal/optimized27kernel19layer applicable method unions retain source-specific validity; not new whole40guard/fullG0 runs. Original AMEND/probes remain preserved.", + "new_execution": "Exactlytwo new normal-mode CLI probes for new named-method descriptor path; no completed tests/math/Lean/scanner jobs rerun.", + "limits": "Ordinary trusted Python runtime and source custody; no malicious sandbox or universal scanner correctness claim." +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.md b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.md new file mode 100644 index 000000000..5c8f9fce6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-followup.md @@ -0,0 +1,22 @@ +# Follow-up independent identity review + +Verdict: **AMEND** at kernel `730bf287` and layer-a `c07a257f`. + +The constructor and module-directory findings from the original review are +closed in source and scoped evidence. The loader checks ordinary construction +before instantiation, freezes declared function/code chains before construction, +and enumerates the actual module dictionary. The eight new guard executions are +actual assertion kills with zero errors. Earlier applicable evidence remains +separate; it is not relabeled as a new whole campaign. + +**IDENTITY-REVIEW-F3 / P1:** Exact named-method resolution still invokes a custom +class descriptor through `getattr` before validating the ordinary TestCase class. +The descriptor can replace itself with another ordinary method. Both runners +then return SURVIVED/exit 0 for `C.test_second`, with trace `descriptor, first` +and no original second-body execution. The failing original body is retained. + +Validate ordinary TestCase classes before traversing their attributes and refuse +unsupported descriptor/object traversal before invoking it. The new exact-source +probes and receipts are under `review-probes/method-descriptor-alias/`. Only these +two newly uncovered normal-mode paths were executed; no completed verification +was repeated. Preserve the original review and all red evidence. diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.json new file mode 100644 index 000000000..cfdde9fe2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.json @@ -0,0 +1,31 @@ +{ + "verdict": "AMEND", + "scope": "Final named-selector boundary review at exact d1783e48/6a719ffd runtime generation", + "reviewed_bindings": { + "kernel_replay/run_tests.py": "d1783e4892e5ae406762d8917cadb8d84534fd271744fdd92a1e285a72e26739", + "kernel_replay/tests/test_mutation_harness.py": "99d0bc18609f4966e7e8a12f4731cb13fb45a23d4689467da2c3fd564ef74030", + "layer_a/mutation_test.py": "6a719ffd05533bdd982b2dbb5c398ba7c5fc41b277c6e2277b33dab56689b463", + "layer_a/tests/test_mutation_runner.py": "849c787473367390fa56d8b75447bd489d18a1a308df0fd94f910dd47decc4de" + }, + "closed_finding": "IDENTITY-REVIEW-F3 named raw descriptor/proxy traversal ordering is fixed in source and four targeted guard assertion kills; earlier F1/F2 source/evidence remain applicable.", + "findings": [ + { + "id": "IDENTITY-REVIEW-F4", + "severity": "P1", + "title": "Refuse subclasses of allowed descriptor types before lookup", + "cause": "ordinary_test_class unwraps staticmethod/classmethod with isinstance, and selector descriptor allowance also uses isinstance. Custom subclasses can override __get__ while still passing these checks.", + "actual_observation": "Both exact proposed runners report SURVIVED/exit0, two distinct names, invalid_population=[], trace descriptor,first,first. The original second failing body is retained but omitted.", + "evidence": "review-probes/staticmethod-subclass-alias/RESULTS.json", + "minimal_fix": "Allow exact staticmethod/classmethod types only; reject custom subclasses before any descriptor lookup. Use static lookup for constructor/dispatch member comparisons as well, so the refusal inspector itself does not execute a custom descriptor." + } + ], + "targeted_guard_evidence": { + "records": 4, + "assertion_kills": 4, + "errors": 0, + "file": "SELECTOR_GUARD_MUTATIONS.json" + }, + "new_execution": "Two new normal-mode probes for unsupported staticmethod subclass dispatch; no completed verification rerun.", + "prior_verification": "Previous40 generation-bound guard executions and27/19method unions remain separate applicable observations; not relabeled fresh final-source whole campaigns.", + "limits": "Trusted ordinary Python test source/runtime, no arbitrary malicious-code sandbox or universal scanner correctness claim." +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.md b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.md new file mode 100644 index 000000000..4904c22e7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review-selector-boundary.md @@ -0,0 +1,19 @@ +# Selector boundary review + +AMEND at exact kernel `d1783e48` and layer-a `6a719ffd`. + +F3's raw descriptor/proxy traversal ordering is fixed, with four actual new +guard assertion kills and zero errors. Previous findings and applicable +verification remain separately preserved. + +**F4 / P1:** `isinstance(..., (staticmethod, classmethod))` also permits custom +subclasses with an overriding `__get__`. Both runners accept such a descriptor, +which aliases the second declared method to the first before snapshots. The +actual results are SURVIVED/exit 0 with two names and trace +`descriptor, first, first`; the retained second failing body is absent. + +Use exact built-in descriptor types for the supported profile, and inspect +constructor/attribute-dispatch members statically so the refusal check itself +cannot invoke a custom descriptor. Exact-source probes and receipts are in +`review-probes/staticmethod-subclass-alias/`. Only these two new normal-mode +probes were executed; no completed check was repeated. diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.json new file mode 100644 index 000000000..fb8ceee8e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.json @@ -0,0 +1,54 @@ +{ + "scope": "Independent bounded source/evidence review of loader identity repair; no mathematical/scanner/Lean/full-suite replay", + "verdict": "AMEND", + "runtime_probe_hashes": { + "kernel_replay": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "layer_a": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc" + }, + "reviewed_files": { + "kernel_replay/proposed/run_tests.py": "c77ee122e788fbb2a88ffaba12e0b4de75209b6f18ce2b6053fed68a5a4ce4d5", + "kernel_replay/proposed/tests/test_mutation_harness.py": "da9bb463c0675be7729067c8a46e55b5171293c15be598c5e891051818c49850", + "layer_a/proposed/mutation_test.py": "50c0e2d64fecbaa232fa867eb7c9e4a1a4f02ed1ea163389c1111ba700c729cc", + "layer_a/proposed/tests/test_mutation_runner.py": "4e33dcb77a0f897976462e8c10b46de65bc2eeddba8d2b0f3604f3b3832f2b19" + }, + "findings": [ + { + "id": "IDENTITY-REVIEW-F1", + "severity": "P1", + "title": "Freeze declarations before TestCase construction", + "locations": [ + "kernel_replay/proposed/run_tests.py:IdentityLoader.loadTestsFromTestCase", + "layer_a/proposed/mutation_test.py:IdentityLoader.loadTestsFromTestCase" + ], + "cause": "super().loadTestsFromTestCase instantiates TestCases before remember captures function and code identities. A custom __init__ can alias the second declared method to the first before either snapshot.", + "observed": "Both exact proposed runners return SURVIVED/exit0, invalid_population=[], two distinct selected identities and trace first,first, while the retained failing second method never executes.", + "evidence": "review-probes/constructor-alias/RESULTS.json", + "fix": "Capture class/declaration function/code identities before construction and compare afterward; alternatively refuse custom __init__/__new__/metaclasses before instantiating unsupported TestCases." + }, + { + "id": "IDENTITY-REVIEW-F2", + "severity": "P1", + "title": "Enumerate actual module declarations instead of module __dir__", + "locations": [ + "kernel_replay/proposed/run_tests.py:IdentityLoader.loadTestsFromModule", + "layer_a/proposed/mutation_test.py:IdentityLoader.loadTestsFromModule" + ], + "cause": "dir(module) invokes a module-owned __dir__, so the advertised declaration-derived population can omit an actual TestCase declaration before any snapshot.", + "observed": "Both exact proposed runners return SURVIVED/exit0 with only Visible.test_first selected, invalid_population=[], and trace first; declared Hidden.test_hidden retains a failing body but never executes.", + "evidence": "review-probes/module-dir-omission/RESULTS.json", + "fix": "Enumerate actual module.__dict__ keys/values without module __dir__/__getattr__, or explicitly refuse such population hooks. Refuse custom TestCase metaclasses or derive class method names from actual declarations to avoid the analogous class-dir hook." + } + ], + "evidence_review": "evidence-binding-review.json", + "observed_evidence_summary": { + "guard_executions": 32, + "distinct_guard_themes_per_tool_mode": 8, + "all_assertion_killed": true, + "errors": 0, + "kernel_distinct_affected_methods_per_mode": 27, + "layer_a_distinct_affected_methods_per_mode": 19, + "composition": "Staged applicable passing method union; not a new whole run. Original failed layer normal receipt retained; one strengthened canonical-population test rerun alone." + }, + "new_execution": "Exactly four new isolated CLI probes, one constructor-alias and one module-dir omission in each runner; normal mode only. No completed verification repeated.", + "limits": "Trusted ordinary Python test-source/runtime custody remains required. This is not arbitrary malicious-code isolation or universal scanner correctness. Existing mathematical and source-specific evidence is not invalidated." +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.md b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.md new file mode 100644 index 000000000..80bc9e26a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/independent-review.md @@ -0,0 +1,35 @@ +# Independent loader identity review + +Verdict: **AMEND** at kernel runtime `c77ee122` and layer-a runtime `50c0e2d6`. +The existing alias/subclass hook repair and class/function/code checks are useful, +but two earlier population transformations still produce false green results. + +- **IDENTITY-REVIEW-F1 / P1:** TestCase constructors execute before `remember()` + captures the declarations. An ordinary custom `__init__` can alias the second + declared method to the first. Both runners report SURVIVED/exit 0 with two + distinct names, no invalid population, and `first, first` body traces. The + retained failing second original body is absent. Freeze before construction, + or refuse unsupported constructors/metaclasses before instantiation. +- **IDENTITY-REVIEW-F2 / P1:** `dir(module)` invokes a module-owned `__dir__`. + Returning only `Visible` hides a declared `Hidden` TestCase from the canonical + population. Both runners report SURVIVED/exit 0 with only the visible passing + body. Enumerate actual module dictionary declarations or explicitly refuse + these hooks; handle custom TestCase metaclass directory hooks conservatively. + +Full source-bound fixtures, structured receipts, stdout/stderr and body traces +are under `review-probes/constructor-alias/` and +`review-probes/module-dir-omission/`. These four new normal-mode executions check +newly discovered obligations; no completed test, scanner, Lean or mathematical +verification was rerun. + +The independent evidence-binding check is clear for all 32 prior guard +executions (eight themes per tool/mode): all are actual assertion kills with zero +errors and matching runtime/test copies, receipts and logs. Passing affected +method unions are kernel 27 and layer-a 19 per mode. The original failed layer +normal run remains visible; its changed canonical-population expectation is +superseded only by the targeted stricter test receipt, not relabeled green. +These valid prior observations do not cover the two new counterexamples. + +This review concerns trusted ordinary Python test-source/runtime behavior. It +claims no arbitrary-code sandbox, complete scanner correctness, mathematical +promotion, provider-distinct review or federation CBZ-0 completion. diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/new_tests_template.py.txt b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/new_tests_template.py.txt new file mode 100644 index 000000000..ffcc9d5c9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/new_tests_template.py.txt @@ -0,0 +1,90 @@ + +class IdentityHarnessCLASS(unittest.TestCase): + """Real ordinary-body controls for loader and in-process identity binding.""" + + def run_identity_fixture(self, label, source, selectors=()): + import hashlib + with tempfile.TemporaryDirectory() as temporary: + root=Path(temporary);(root/'tests').mkdir() + runner=root/'RUNNER_FILE' + shutil.copy2(TOOL_ROOT/'RUNNER_FILE',runner) + events=root/'events' + header=('import unittest\nfrom pathlib import Path\n' + +'def record(label):\n with Path('+repr(str(events))+').open("a") as out: out.write(label+"\\n")\n') + fixture=root/'tests'/'FIXTURE_FILE' + fixture.write_text(header+source) + output=root/'receipt.json' + command=[sys.executable,'-B','-S',str(runner),*RUNNER_ARGS,'--output',str(output)] + for selector in selectors:command.extend(['--test',selector]) + p=subprocess.run(command,capture_output=True,text=True,timeout=15) + self.assertTrue(output.exists(),p.stderr) + value=json.loads(output.read_text()) + outcome=CLASSIFY_CALL + observed=events.read_text().splitlines() if events.exists() else [] + record={'label':label,'optimize':sys.flags.optimize,'fixture_source':header+source, + 'fixture_sha256':hashlib.sha256(fixture.read_bytes()).hexdigest(), + 'command':command,'exit_code':p.returncode,'outcome':outcome, + 'events':observed,'receipt':value,'stdout':p.stdout,'stderr':p.stderr} + destination=os.environ.get('CBZ_IDENTITY_CONTROL_EVIDENCE') + if destination: + out=Path(destination);out.mkdir(parents=True,exist_ok=True) + (out/(label+'.json')).write_text(json.dumps(record,sort_keys=True,indent=2)+'\n') + return outcome,value,observed + + def test_module_alias_subclass_and_population_hooks_refused_before_execution(self): + base=('class C(unittest.TestCase):\n' + +' def test_first(self): record("first")\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + hooks=[('alias','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('alias-assertion','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('subclass','def load_tests(loader, tests, pattern):\n record("hook")\n def replacement(self): record("replacement")\n R=type("C",(C,),{"test_first":replacement,"test_second":replacement,"__module__":__name__,"__qualname__":"C"})\n globals()["C"]=R\n return loader.loadTestsFromTestCase(R)\n'), + ('omission','def load_tests(loader, tests, pattern):\n record("hook")\n return unittest.TestSuite([C("test_first")])\n')] + for label,hook in hooks: + with self.subTest(shape=label): + source=base+hook + if label=='alias-assertion':source=source.replace('def test_first(self): record("first")','def test_first(self):\n record("first")\n self.fail("first body assertion")') + outcome,value,events=self.run_identity_fixture('hook-'+label,source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_named_class_and_method_selection_preserve_exact_population(self): + source='class C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self): record("second")\n' + for label,selectors,wanted in [('class',('FIXTURE_MODULE.C',),['first','second']), + ('method',('FIXTURE_MODULE.C.test_second',),['second'])]: + with self.subTest(selector=label): + outcome,value,events=self.run_identity_fixture('named-'+label,source,selectors) + self.assertEqual(outcome,'SURVIVED',value) + self.assertEqual(events,wanted,value) + outcome,value,events=self.run_identity_fixture('named-assertion',source.replace('record("first")','record("first"); self.fail("body")'),('FIXTURE_MODULE.C',)) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['first','second'],value) + + def test_callable_factory_selector_is_refused_before_factory_or_body(self): + source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'def factory():\n record("factory")\n return unittest.TestSuite([C("test_one")])\n') + outcome,value,events=self.run_identity_fixture('callable-factory',source,('FIXTURE_MODULE.factory',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_class_fixture_function_and_code_substitutions_are_refused(self): + base=('def replacement(self): record("replacement")\n' + +'class C(unittest.TestCase):\n' + +' @classmethod\n def setUpClass(cls):\n record("class-setup")\n CHANGE\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + for label,change in [('function','cls.test_one=replacement'),('code','cls.test_one.__code__=replacement.__code__')]: + with self.subTest(change=label): + outcome,value,events=self.run_identity_fixture('class-fixture-'+label,base.replace('CHANGE',change)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['class-setup'],value) + self.assertTrue(value['invalid_population'],value) + + def test_identity_change_during_body_is_not_a_clean_kill(self): + source=('class C(unittest.TestCase):\n' + +' def test_first(self):\n record("first")\n type(self).test_second=type(self).test_first\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + outcome,value,events=self.run_identity_fixture('during-body-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['first'],value) + self.assertTrue(value['invalid_population'],value) diff --git a/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/source-partition-review.json b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/source-partition-review.json new file mode 100644 index 000000000..8ca93d038 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/grader-identity-fix/shared/source-partition-review.json @@ -0,0 +1,16 @@ +{ + "kernel_replay": { + "changed_existing_definitions": [ + "IdentityLoader" + ], + "added_definitions": [], + "removed_definitions": [] + }, + "layer_a": { + "changed_existing_definitions": [ + "IdentityLoader" + ], + "added_definitions": [], + "removed_definitions": [] + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/initial-import-shadow-failure.json b/cbz/contributions/math514/kernel_replay/evidence/initial-import-shadow-failure.json new file mode 100644 index 000000000..7f37e0231 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/initial-import-shadow-failure.json @@ -0,0 +1,124 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:46:52.961267+00:00", + "ok": false, + "results": [ + { + "module": "Good", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:46:52.964569+00:00", + "status": "FAIL", + "ok": false, + "returncode": 1, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ], + "pid": 6310, + "stdout": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean:7:0: error: failed to read file '/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/LeanChecker.olean', invalid header\n", + "stdout_bytes": 186, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-10-29T17:46:53.084312+00:00", + "elapsed_seconds": 0.11974903999998787 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "Good" + ], + "modules": [ + { + "name": "Good", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "33a97a3aa093a062266d2413e150c183d9af83af179e54c9cbe18cf210f1ea7b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:46:53.086088+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/initial-low-address-limit-failures.json b/cbz/contributions/math514/kernel_replay/evidence/initial-low-address-limit-failures.json new file mode 100644 index 000000000..d611ffd0d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/initial-low-address-limit-failures.json @@ -0,0 +1,497 @@ +{ + "observation": "2 GiB RLIMIT_AS caused Lean runtime thread-creation failure before replay; never G4 green", + "results": [ + { + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:44:16.175513+00:00", + "ok": false, + "results": [ + { + "module": "BadPrivate", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:44:16.178164+00:00", + "status": "FAIL", + "ok": false, + "returncode": -6, + "memory_mib": 2048, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "8bfbbc22b30cae5c06f461b8794eb23fa3b46737ff3179d90a258720f1bbf022" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPrivate.olean", + "sha256": "5866a6393bb6a5096ba4df704bf5b37929e00b96fef148ac447b4232af821b54" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPrivate.olean.server", + "sha256": "cf93f6bc88fd4fa19439767fa35f8a928d4d8aa80ceac1dbcdaf304a2faf904a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPrivate.olean.private", + "sha256": "ee71ee16ed119b9090e9162e84905ea59d317da4a7d461442529ffa860e64649" + } + ], + "pid": 5869, + "stdout": "", + "stdout_bytes": 0, + "stderr": "libc++abi: terminating due to uncaught exception of type lean::exception: failed to create thread: Resource temporarily unavailable\n", + "stderr_bytes": 132, + "ended": "2026-10-29T17:44:16.186762+00:00", + "elapsed_seconds": 0.008620387000519258 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o" + ], + "expected_modules": [ + "BadPrivate" + ], + "modules": [ + { + "name": "BadPrivate", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "8bfbbc22b30cae5c06f461b8794eb23fa3b46737ff3179d90a258720f1bbf022" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPrivate.olean", + "sha256": "5866a6393bb6a5096ba4df704bf5b37929e00b96fef148ac447b4232af821b54" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPrivate.olean.server", + "sha256": "cf93f6bc88fd4fa19439767fa35f8a928d4d8aa80ceac1dbcdaf304a2faf904a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPrivate.olean.private", + "sha256": "ee71ee16ed119b9090e9162e84905ea59d317da4a7d461442529ffa860e64649" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "b7445b89a03fb95e9fa859afa9da7cae7396b2e34819bbb7aaa76df7e3b69c6b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:44:16.188348+00:00" + }, + { + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:44:16.190374+00:00", + "ok": false, + "results": [ + { + "module": "BadPublic", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:44:16.193113+00:00", + "status": "FAIL", + "ok": false, + "returncode": -6, + "memory_mib": 2048, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPublic.olean", + "sha256": "d7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPublic.olean.server", + "sha256": "5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPublic.olean.private", + "sha256": "84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a" + } + ], + "pid": 5871, + "stdout": "", + "stdout_bytes": 0, + "stderr": "libc++abi: terminating due to uncaught exception of type lean::exception: failed to create thread: Resource temporarily unavailable\n", + "stderr_bytes": 132, + "ended": "2026-10-29T17:44:16.201642+00:00", + "elapsed_seconds": 0.008529789000021992 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o" + ], + "expected_modules": [ + "BadPublic" + ], + "modules": [ + { + "name": "BadPublic", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "35b45c63cdfd6f48fd5820d1c48e9e101bfd87c582ef0b5112543c533d597fbe" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPublic.olean", + "sha256": "d7fa376fa71a436b9663d2a87c40e32760f2d124085c304831b84be9c51e6e7a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPublic.olean.server", + "sha256": "5d56f60c99151b5065cb151c7aa90306548bda7948d4ec1e42b0961c08f9273a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/BadPublic.olean.private", + "sha256": "84f3851d24c95669b7e632062e5c0233873d4a7733e1501597765d2faea7be3a" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "b7445b89a03fb95e9fa859afa9da7cae7396b2e34819bbb7aaa76df7e3b69c6b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:44:16.203913+00:00" + }, + { + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:44:16.160197+00:00", + "ok": false, + "results": [ + { + "module": "Good", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:44:16.163043+00:00", + "status": "FAIL", + "ok": false, + "returncode": -6, + "memory_mib": 2048, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ], + "pid": 5867, + "stdout": "", + "stdout_bytes": 0, + "stderr": "libc++abi: terminating due to uncaught exception of type lean::exception: failed to create thread: Resource temporarily unavailable\n", + "stderr_bytes": 132, + "ended": "2026-10-29T17:44:16.171688+00:00", + "elapsed_seconds": 0.00864493799963384 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o" + ], + "expected_modules": [ + "Good" + ], + "modules": [ + { + "name": "Good", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "b7445b89a03fb95e9fa859afa9da7cae7396b2e34819bbb7aaa76df7e3b69c6b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:44:16.173320+00:00" + }, + { + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:44:16.205967+00:00", + "ok": false, + "results": [ + { + "module": "UnapprovedAxiom", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:44:16.208834+00:00", + "status": "FAIL", + "ok": false, + "returncode": -6, + "memory_mib": 2048, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ], + "pid": 5873, + "stdout": "", + "stdout_bytes": 0, + "stderr": "libc++abi: terminating due to uncaught exception of type lean::exception: failed to create thread: Resource temporarily unavailable\n", + "stderr_bytes": 132, + "ended": "2026-10-29T17:44:16.217433+00:00", + "elapsed_seconds": 0.008599818000220694 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o" + ], + "expected_modules": [ + "UnapprovedAxiom" + ], + "modules": [ + { + "name": "UnapprovedAxiom", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/tmp_yngox4o/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "b7445b89a03fb95e9fa859afa9da7cae7396b2e34819bbb7aaa76df7e3b69c6b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:44:16.219051+00:00" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/initial-real-symlink-replay.json b/cbz/contributions/math514/kernel_replay/evidence/initial-real-symlink-replay.json new file mode 100644 index 000000000..bd9139718 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/initial-real-symlink-replay.json @@ -0,0 +1,124 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:51:33.407865+00:00", + "ok": true, + "results": [ + { + "module": "BadPrivate", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:51:33.411291+00:00", + "status": "PASS", + "ok": true, + "returncode": 0, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ], + "pid": 9484, + "stdout": "CBZ_KERNEL_REPLAY_OK BadPrivate\n", + "stdout_bytes": 32, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-10-29T17:51:34.530680+00:00", + "elapsed_seconds": 1.1194349070001408 + } + ], + "completed_count": 1, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/symlink-negative" + ], + "expected_modules": [ + "BadPrivate" + ], + "modules": [ + { + "name": "BadPrivate", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "1ef2b114c40f9d8c665534ccfa71bb3d3bdb8a9c1b2a865e98f523bc4de111ac" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:51:34.532827+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/ARTIFACT_ORIGINS.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/ARTIFACT_ORIGINS.json new file mode 100644 index 000000000..95745f60e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/ARTIFACT_ORIGINS.json @@ -0,0 +1,545 @@ +{ + "schema_version": 1, + "published_parent": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "scope": "Hashes and copying/composition origins for staged artifact payloads. This index and PUBLICATION.json are bound by the outer overlay manifest and native commit tree, avoiding recursive self-hashes.", + "artifacts": [ + { + "path": "LAZY_BODY_FIX.md", + "sha256": "bfc30f9bca470fb5146d900759cceb3bfc6e5715442f91876adeb3cbf318c53e", + "bytes": 1970, + "origin": { + "kind": "composed", + "inputs": [ + { + "path": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/REPORT.md", + "sha256": "848e0712aa1905bd89034d8cc5cc57ebd4812864e8c3053193ad950f61778595" + } + ], + "role": "portable component report" + } + }, + { + "path": "README.md", + "sha256": "11d33b55820e85213708a9e429dbbffa67f9cdbe06cb7f8920ee35899b44e7ad", + "bytes": 11400, + "origin": { + "kind": "composed", + "inputs": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/README.md", + "sha256": "b156fcdd8faf960999c20d7078d79a3cb535c8655db9742268c99f394ee62166" + } + ], + "role": "current composed counts and supported profile" + } + }, + { + "path": "REGISTRY.json", + "sha256": "94fb19a0cf04443873c99d620895df9e3d0a1c9b044bdb8535cb5adec1e4d936", + "bytes": 12981, + "origin": { + "kind": "composed", + "inputs": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/REGISTRY.json", + "sha256": "a611413890032fa60e7b2218314181cd970eaa5b76a86df44d01fc1c316b8297" + }, + { + "path": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-delivery.json", + "sha256": "11fea899c7caa3065c8c1ca269cbf2ece6cc38e24cbd2da710646080c297d882" + } + ], + "role": "updated registry with historical generations retained" + } + }, + { + "path": "SPEC.md", + "sha256": "bbae2e56db3bb72bf329e760c8226386894e51e5b60423b6975f3dae9e90b2c2", + "bytes": 6309, + "origin": { + "kind": "composed", + "inputs": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/SPEC.md", + "sha256": "61d57843fdc637603821f5e2722fba8b0bc67686ab247f29c0d125b5583642a6" + } + ], + "role": "explicit supported body/return contract" + } + }, + { + "path": "evidence/lazy-body/DOC_ADDITIONS.md", + "sha256": "849e7e531990352e431fc1d2878d6c27c8e0512899717e7805a210961de1be94", + "bytes": 1988, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/DOC_ADDITIONS.md", + "source_sha256": "849e7e531990352e431fc1d2878d6c27c8e0512899717e7805a210961de1be94", + "role": "isolated delivery report/policy recommendation" + } + }, + { + "path": "evidence/lazy-body/EVIDENCE_PATH_MAP.json", + "sha256": "41899274439c844df971b53c5e2362ab5478de97bce36db6489997b2ac55f805", + "bytes": 6094, + "origin": { + "kind": "composed", + "inputs": [ + { + "path": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/independent-lazy-body-review.json", + "sha256": "8e6c0de322cb2296d2ac9bf472bcb29c3fcdfaa941541539e1fc467d5a47c933" + } + ], + "role": "portable aliases; no historical receipt rewritten" + } + }, + { + "path": "evidence/lazy-body/REPORT.md", + "sha256": "848e0712aa1905bd89034d8cc5cc57ebd4812864e8c3053193ad950f61778595", + "bytes": 5226, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/REPORT.md", + "source_sha256": "848e0712aa1905bd89034d8cc5cc57ebd4812864e8c3053193ad950f61778595", + "role": "isolated delivery report/policy recommendation" + } + }, + { + "path": "evidence/lazy-body/baseline/mutations.py", + "sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "bytes": 15771, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/baseline/kernel_replay/mutations.py", + "source_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "role": "published predecessor grader source" + } + }, + { + "path": "evidence/lazy-body/baseline/run_tests.py", + "sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "bytes": 9931, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/baseline/kernel_replay/run_tests.py", + "source_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "role": "published predecessor grader source" + } + }, + { + "path": "evidence/lazy-body/baseline/tests/test_mutation_harness.py", + "sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6", + "bytes": 11723, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/baseline/kernel_replay/tests/test_mutation_harness.py", + "source_sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6", + "role": "published predecessor grader source" + } + }, + { + "path": "evidence/lazy-body/current-composed-receipt.json", + "sha256": "449ce944cd40757b5a49653a79c1e5ca5e1b02fc6fdf9ea1404adf1f2ed4f51d", + "bytes": 3507, + "origin": { + "kind": "composed", + "inputs": [ + { + "path": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-delivery.json", + "sha256": "11fea899c7caa3065c8c1ca269cbf2ece6cc38e24cbd2da710646080c297d882" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/REGISTRY.json", + "sha256": "a611413890032fa60e7b2218314181cd970eaa5b76a86df44d01fc1c316b8297" + } + ], + "role": "composed current receipt; never labeled a fresh whole-suite run" + } + }, + { + "path": "evidence/lazy-body/evidence/baseline-sha256.json", + "sha256": "c3df58f59289f4631542eafe3dae9c0d21df99f2c2882bed2a0d870d936618a2", + "bytes": 530, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/baseline-sha256.json", + "source_sha256": "c3df58f59289f4631542eafe3dae9c0d21df99f2c2882bed2a0d870d936618a2", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/independent-lazy-body-review.json", + "sha256": "8e6c0de322cb2296d2ac9bf472bcb29c3fcdfaa941541539e1fc467d5a47c933", + "bytes": 6613, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/independent-lazy-body-review.json", + "source_sha256": "8e6c0de322cb2296d2ac9bf472bcb29c3fcdfaa941541539e1fc467d5a47c933", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-delivery.json", + "sha256": "11fea899c7caa3065c8c1ca269cbf2ece6cc38e24cbd2da710646080c297d882", + "bytes": 4719, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-delivery.json", + "source_sha256": "11fea899c7caa3065c8c1ca269cbf2ece6cc38e24cbd2da710646080c297d882", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-controls-green.log", + "sha256": "da1bb41469fd4cd94d35f1f2d43d8af100b892960fbb1a6ad1f791c361a62432", + "bytes": 988, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-controls-green.log", + "source_sha256": "da1bb41469fd4cd94d35f1f2d43d8af100b892960fbb1a6ad1f791c361a62432", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log", + "sha256": "93f81b1d99ea70780edd1174a1a9139e6c7f3111476aa7d242f5d302cadaa17c", + "bytes": 988, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-controls-optimized-green.log", + "source_sha256": "93f81b1d99ea70780edd1174a1a9139e6c7f3111476aa7d242f5d302cadaa17c", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-controls-red.log", + "sha256": "1951bebd0b87067104b4fe3cb0e8c0f306ab0a6e1073e237af86332ff268cca8", + "bytes": 26678, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-controls-red.log", + "source_sha256": "1951bebd0b87067104b4fe3cb0e8c0f306ab0a6e1073e237af86332ff268cca8", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log", + "sha256": "0405bd5d8c485b047b7c8fbfcad325d7bad8838cac651a12fc60b6ffbed3127a", + "bytes": 291, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants.log", + "source_sha256": "0405bd5d8c485b047b7c8fbfcad325d7bad8838cac651a12fc60b6ffbed3127a", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py", + "sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "bytes": 10557, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/guard_run_tests.py", + "source_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json", + "sha256": "4c75b2c284a9edbb5f630f1fbbbb2293136ef966331e3d22307eb02a41085631", + "bytes": 13207, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json", + "source_sha256": "4c75b2c284a9edbb5f630f1fbbbb2293136ef966331e3d22307eb02a41085631", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json", + "sha256": "80dfe0c201d2657856b4ed2abffee66281771f9742ce9de5771a3c1bef3535a0", + "bytes": 11584, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json", + "source_sha256": "80dfe0c201d2657856b4ed2abffee66281771f9742ce9de5771a3c1bef3535a0", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json", + "sha256": "44d415ab7ac37be454d05c12cec6295a0534001f7a32a830d37a2db455bb7814", + "bytes": 10959, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json", + "source_sha256": "44d415ab7ac37be454d05c12cec6295a0534001f7a32a830d37a2db455bb7814", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json", + "sha256": "e070d7f6d55d3aa529ed79583c629377ee9623af69f0680e9a03781d0a15aa06", + "bytes": 13210, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json", + "source_sha256": "e070d7f6d55d3aa529ed79583c629377ee9623af69f0680e9a03781d0a15aa06", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json", + "sha256": "652a371b954e50d7e01cf345f64bb0852584a89923a2760a169326ce1510ba53", + "bytes": 11587, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json", + "source_sha256": "652a371b954e50d7e01cf345f64bb0852584a89923a2760a169326ce1510ba53", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json", + "sha256": "1cbf59d063d01ba486d40c231753a5d6ac6c7a782b024afb79ce2bb940b883c5", + "bytes": 10962, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json", + "source_sha256": "1cbf59d063d01ba486d40c231753a5d6ac6c7a782b024afb79ce2bb940b883c5", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json", + "sha256": "17fc02e15f25ec9cb027bd01a8162e29515e391df1468555c542cf116ccf52b9", + "bytes": 3439, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/summary.json", + "source_sha256": "17fc02e15f25ec9cb027bd01a8162e29515e391df1468555c542cf116ccf52b9", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-mixed-generator-red.json", + "sha256": "4c1a65899f1c5b88cd57758aed2450104325d3a9aa3171ad253b406b3b8ccb3f", + "bytes": 2036, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-mixed-generator-red.json", + "source_sha256": "4c1a65899f1c5b88cd57758aed2450104325d3a9aa3171ad253b406b3b8ccb3f", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-profile-controls-green.log", + "sha256": "0a2db29755b11f1bfd6a442bcedead8ea641e077dd4b5e25d475183d1b8e1c78", + "bytes": 1172, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-profile-controls-green.log", + "source_sha256": "0a2db29755b11f1bfd6a442bcedead8ea641e077dd4b5e25d475183d1b8e1c78", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log", + "sha256": "6268639df35d6220ff5ccede714b65e3c53eb04889a994dd0746bd71fc724829", + "bytes": 1172, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-profile-controls-optimized-green.log", + "source_sha256": "6268639df35d6220ff5ccede714b65e3c53eb04889a994dd0746bd71fc724829", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log", + "sha256": "91a124aae2c77dcb8286902b5afcc045536c6086b48381a04a19e236278e7c05", + "bytes": 95, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant.log", + "source_sha256": "91a124aae2c77dcb8286902b5afcc045536c6086b48381a04a19e236278e7c05", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py", + "sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "bytes": 10420, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/guard_run_tests.py", + "source_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json", + "sha256": "01e76fe7102f0a2d38b321f1138590958192cd856bfc8c27bb2ebe4a2379a2f0", + "bytes": 13286, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json", + "source_sha256": "01e76fe7102f0a2d38b321f1138590958192cd856bfc8c27bb2ebe4a2379a2f0", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json", + "sha256": "034f846c1035aa2c80fa3bb633d2f49bfbc42de62024ce0cfbe2da9efa0483a5", + "bytes": 13289, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json", + "source_sha256": "034f846c1035aa2c80fa3bb633d2f49bfbc42de62024ce0cfbe2da9efa0483a5", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json", + "sha256": "65df0fae1366a05d94c0302ff2491ec5ef2f09d9b3d2dac525da36b15a51a19f", + "bytes": 1303, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/summary.json", + "source_sha256": "65df0fae1366a05d94c0302ff2491ec5ef2f09d9b3d2dac525da36b15a51a19f", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/kernel-none-return-profile-red.log", + "sha256": "edf2e042a7489afd6b14b2c6e92b4b66939292a157298a1a9e7148e90a656683", + "bytes": 9508, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-profile-red.log", + "source_sha256": "edf2e042a7489afd6b14b2c6e92b4b66939292a157298a1a9e7148e90a656683", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/original-method-shape-applicability.json", + "sha256": "16a4c32a9856e83df1e78b35930d5638f146504f1ec1ba95fbac78381072727a", + "bytes": 31066, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/original-method-shape-applicability.json", + "source_sha256": "16a4c32a9856e83df1e78b35930d5638f146504f1ec1ba95fbac78381072727a", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py", + "sha256": "a8d893661a9c8f608c7ce34ac271b29d91135dcc5d179e3b9c107e40422630be", + "bytes": 4115, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/run_kernel_lazy_guard_mutants.py", + "source_sha256": "a8d893661a9c8f608c7ce34ac271b29d91135dcc5d179e3b9c107e40422630be", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py", + "sha256": "587c79325b4bbf67f93568d3b8cc09029fdc481e873e93c61862d6f89281d521", + "bytes": 4287, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/run_kernel_none_return_guard_mutant.py", + "source_sha256": "587c79325b4bbf67f93568d3b8cc09029fdc481e873e93c61862d6f89281d521", + "role": "fresh or explicitly retained source-generation evidence" + } + }, + { + "path": "evidence/lazy-body/kernel-lazy-body.patch", + "sha256": "1773d4177ab064ea861c07856cc7401744487ceb945c0d553f20c94ec4f1fb0e", + "bytes": 11176, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/kernel-lazy-body.patch", + "source_sha256": "1773d4177ab064ea861c07856cc7401744487ceb945c0d553f20c94ec4f1fb0e", + "role": "minimal successor or cumulative historical patch" + } + }, + { + "path": "evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch", + "sha256": "f6638476a3fdc9593006a3c9e84f765bf25e9f54b362c0bf964c621c30a93f6e", + "bytes": 38061, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/kernel-lifecycle-and-lazy-cumulative.patch", + "source_sha256": "f6638476a3fdc9593006a3c9e84f765bf25e9f54b362c0bf964c621c30a93f6e", + "role": "minimal successor or cumulative historical patch" + } + }, + { + "path": "evidence/lazy-body/published-parent/PUBLICATION.json", + "sha256": "2b7ebcff1daaf2e205fa7ce620d90a7ea6e59573a749c8c2d2765ec4edf911b4", + "bytes": 31359, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/tools/kernel_replay/PUBLICATION.json", + "source_sha256": "2b7ebcff1daaf2e205fa7ce620d90a7ea6e59573a749c8c2d2765ec4edf911b4", + "role": "published predecessor metadata at 7b50d2b4c433a8f3b5442925e1ac9ff664880166" + } + }, + { + "path": "evidence/lazy-body/published-parent/README.md", + "sha256": "b156fcdd8faf960999c20d7078d79a3cb535c8655db9742268c99f394ee62166", + "bytes": 10484, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/tools/kernel_replay/README.md", + "source_sha256": "b156fcdd8faf960999c20d7078d79a3cb535c8655db9742268c99f394ee62166", + "role": "published predecessor metadata at 7b50d2b4c433a8f3b5442925e1ac9ff664880166" + } + }, + { + "path": "evidence/lazy-body/published-parent/REGISTRY.json", + "sha256": "a611413890032fa60e7b2218314181cd970eaa5b76a86df44d01fc1c316b8297", + "bytes": 9663, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/tools/kernel_replay/REGISTRY.json", + "source_sha256": "a611413890032fa60e7b2218314181cd970eaa5b76a86df44d01fc1c316b8297", + "role": "published predecessor metadata at 7b50d2b4c433a8f3b5442925e1ac9ff664880166" + } + }, + { + "path": "evidence/lazy-body/published-parent/SPEC.md", + "sha256": "61d57843fdc637603821f5e2722fba8b0bc67686ab247f29c0d125b5583642a6", + "bytes": 5379, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/tools/kernel_replay/SPEC.md", + "source_sha256": "61d57843fdc637603821f5e2722fba8b0bc67686ab247f29c0d125b5583642a6", + "role": "published predecessor metadata at 7b50d2b4c433a8f3b5442925e1ac9ff664880166" + } + }, + { + "path": "run_tests.py", + "sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "bytes": 10420, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/changed/kernel_replay/run_tests.py", + "source_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "role": "frozen reviewed successor runtime/test" + } + }, + { + "path": "tests/test_mutation_harness.py", + "sha256": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114", + "bytes": 18361, + "origin": { + "kind": "copied", + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/changed/kernel_replay/tests/test_mutation_harness.py", + "source_sha256": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114", + "role": "frozen reviewed successor runtime/test" + } + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/DOC_ADDITIONS.md b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/DOC_ADDITIONS.md new file mode 100644 index 000000000..f1591778e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/DOC_ADDITIONS.md @@ -0,0 +1,19 @@ +Suggested README/SPEC insertion: + +Mutation grading supports ordinary synchronous unittest methods that return None. Generator, coroutine, async-generator, and wraps-linked suspended method shapes are refused during pristine population discovery. Every non-None body return is ERROR, including falsey scalar values and opaque iterables. Returned work is not consumed or awaited; only a fresh native coroutine may be closed without entering its body. Creating a suspended call object is not evidence that its deferred test body executed. + +Existing source-registry entries to refresh (no new runtime module): + +- kernel_replay/run_tests.py +- kernel_replay/tests/test_mutation_harness.py +- layer_a/mutation_test.py +- layer_a/tests/test_mutation_runner.py + +Fresh successor records should state kernel60methods=40production+14earlierlifecycle+6new, layer87methods=72auditor+11earlierharness+4new. The new six/four methods ran normal/O; other applicable evidence was reused. Do not call these composed counts fresh whole-suite runs. Keep original25/57mutant and mathematical receipts source-bound and immutable. Keep the superseded type-only guard generation labeled as earlier evidence; final acceptance requires None-return policy. + +Exact final new-control commands (CBZ root working directory): + +PYTHONOPTIMIZE=0 python3 -B -S -m unittest discover -s delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests -p test_mutation_harness.py -k LazyBodyHarnessTests -v +PYTHONOPTIMIZE=1 python3 -B -S -O -m unittest discover -s delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests -p test_mutation_harness.py -k LazyBodyHarnessTests -v + +Layer commands and exact fixture/source-mutant receipt paths are in evidence/layer_a/REPORT.md. Saved guard-mutant scripts are provenance for completed runs. Their output directories already contain sealed receipts; future adapted execution must use isolated new output destinations and must not overwrite or replay unchanged evidence solely for a handoff. diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/EVIDENCE_PATH_MAP.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/EVIDENCE_PATH_MAP.json new file mode 100644 index 000000000..b84e9b726 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/EVIDENCE_PATH_MAP.json @@ -0,0 +1,43 @@ +{ + "scope": "Saved raw receipt paths remain byte-exact provenance; these aliases locate their packaged counterparts.", + "aliases": { + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-controls-optimized-green.log": "evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/original-method-shape-applicability.json": "evidence/lazy-body/evidence/original-method-shape-applicability.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/baseline-sha256.json": "evidence/lazy-body/evidence/baseline-sha256.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-profile-controls-optimized-green.log": "evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-profile-controls-green.log": "evidence/lazy-body/evidence/kernel-none-profile-controls-green.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-delivery.json": "evidence/lazy-body/evidence/kernel-delivery.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-controls-red.log": "evidence/lazy-body/evidence/kernel-lazy-controls-red.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/run_kernel_lazy_guard_mutants.py": "evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/independent-lazy-body-review.json": "evidence/lazy-body/evidence/independent-lazy-body-review.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-controls-green.log": "evidence/lazy-body/evidence/kernel-lazy-controls-green.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-mixed-generator-red.json": "evidence/lazy-body/evidence/kernel-mixed-generator-red.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-profile-red.log": "evidence/lazy-body/evidence/kernel-none-return-profile-red.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants.log": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/run_kernel_none_return_guard_mutant.py": "evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant.log": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/guard_run_tests.py": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-none-return-guard-mutant/summary.json": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/guard_run_tests.py": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/summary.json": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json" + }, + "component_source_aliases": { + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/run_tests.py": "run_tests.py", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/mutations.py": "mutations.py", + "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py": "tests/test_mutation_harness.py" + }, + "historical_inputs": { + "published_parent": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "baseline_source": "evidence/lazy-body/baseline/", + "metadata_snapshot": "evidence/lazy-body/published-parent/" + }, + "foreign_component_review_context": "The shared independent review also binds the layer-a source by hash; its own evidence is in the separately published layer-a lazy-body overlay." +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/REPORT.md b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/REPORT.md new file mode 100644 index 000000000..03880aadd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/REPORT.md @@ -0,0 +1,19 @@ +The two isolated successors close a confirmed unittest lazy-body grading gap. Against the exact published kernel7b50d2b and layer95a4f81 graders, a mixed suite containing a generator method and a genuine ordinary assertion was classified KILLED even though the generator's body sentinel never executed. Both real RED receipts are retained. + +The supported profile is now explicit: selected test methods must be ordinary synchronous Python functions or bound methods, every advertised __wrapped__ layer must have that shape, and the method must return exactly None. Generator, coroutine and async-generator function shapes are refused during pristine population discovery, before fixtures or methods run. Every non-None return—including falsey scalars and opaque iterables—is rejected. Returned objects are never evaluated for truth, compared for equality, iterated or awaited. Only a fresh native coroutine in CORO_CREATED state may be closed for disposal without executing its body. Kernel's unused async-body branch is removed under this conservative policy. + +The changes use the existing invalid_population rejection channel. Canonical population binding, body/dispatcher/lifecycle attribution, exact escaping exception identity, subtest parent/provenance accounting and existing classifiers remain in place. No new runtime module, receipt schema or public command was added. Only the two runner files and their two harness test files change; kernel mutations.py, producer/checker/Lean source and all original mutation definitions remain unchanged. + +Fresh final-profile verification is limited to the new obligation: + +- Kernel: six new methods pass normally and with PYTHONOPTIMIZE=1 and -O, inherited by fixture subprocesses. They cover ordinary None-return success and assertion failure, three declared lazy shapes, wraps-linked lazy shapes, hidden lazy returns, native/custom awaitables, and falsey/custom iterable returns without advancement. A real non-None-profile RED preceded the final guard. The final return-guard source mutant is assertion-killed in both modes. +- Layer: four new methods pass in both modes. Eighteen fixture receipts per mode contain one SURVIVED, one genuine ordinary-body KILLED and sixteen ERROR outcomes, with every lazy-execution sentinel false. Three actual final-profile guard mutants (remove rejection, accept falsey returns, iterate unknown returns) are assertion-killed in both modes. +- Earlier type-specific implementation/control generations are preserved as superseded source-bound evidence. Their unchanged pristine-shape/decorator/disposal guards remain applicable; type-specific return acceptance is not claimed as the final policy. Only the broader None-return obligation received refreshed return-guard verification. + +Current suite populations are composed, not fresh whole-suite executions: kernel40 unchanged production methods +14 prior lifecycle methods +6 new methods =60; layer72 unchanged auditor methods +11 retained harness methods +4 new methods =87. The 14/8 prior lifecycle controls, old checker-source controls, original25kernel/57auditor mutations and mathematics were not replayed. Static direct-method AST extraction of all54/83 original methods found ordinary synchronous shapes with no direct valued return or suspension; nested helper functions are excluded from their enclosing method shape. This is the specific source-applicability rationale for retaining the completed evidence. + +Exact baseline/successor hashes and method IDs are in evidence/kernel-delivery.json and evidence/layer_a/frozen-manifest.json. The four final files are in changed/{kernel_replay,layer_a}. Minimal patches target the published predecessor files; lifecycle-and-lazy cumulative patches retain the historical combined changes without rewriting earlier evidence. The final independent changed-hunk review is evidence/independent-lazy-body-review.json, SHA2568e6c0de322cb2296d2ac9bf472bcb29c3fcdfaa941541539e1fc467d5a47c933, clear for both frozen components. + +README/SPEC contract addition to adopt: “Mutation grading supports ordinary synchronous unittest methods returning None. Generator, coroutine, async-generator and wraps-linked suspended method shapes are refused during pristine discovery. Every non-None body return is ERROR. Returned work is not iterated or awaited; a fresh native coroutine may be closed without entering its body. Creating a suspended call object is not evidence that its deferred body executed.” + +Upon integration, update the existing source registry hashes for kernel_replay/run_tests.py, kernel_replay/tests/test_mutation_harness.py, layer_a/mutation_test.py and layer_a/tests/test_mutation_runner.py, plus the affected README/SPEC hashes if that paragraph is adopted. No runtime module/copy-list addition is needed. Keep old receipts/source bindings historical and record fresh/reused scope in successor registry/ledger entries. The parent owns actual-tool integration, expected-old branch publication and any hosted checks. This isolated delivery performs no canonical/remote write, Main701 amendment, original suite/mutant/Lean replay or CBZ declaration. Provider-distinct process requirements remain separate from mathematical evidence. diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/mutations.py b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/mutations.py new file mode 100644 index 000000000..cb277a39a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/mutations.py @@ -0,0 +1,257 @@ +#!/usr/bin/env python3 +"""Isolated mutation checks. Errors/skips/empty tests are never mutant kills.""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import re +import shutil +import subprocess +import sys +import tempfile + +ROOT = Path(__file__).resolve().parent + + +def classify(value, code, expected_selection=None, expected_ids=None): + """Grade only trusted runner receipts; legacy/log-only summaries fail closed. + + This validates accounting, not an adversarial author's fabricated JSON. The + receipt must come from the runner subprocess whose source is custody-bound. + """ + if (not isinstance(value, dict) or type(code) is not int or code not in (0, 1) + or value.get('receipt_schema') != 'cbz-unittest-lifecycle-v1' + or type(value.get('successful')) is not bool): + return 'ERROR' + counts = ('tests_run', 'assertion_failures', 'errors', 'skipped', + 'expected_failures', 'unexpected_successes', 'lifecycle_failures', 'subtests') + if any(type(value.get(key)) is not int or value[key] < 0 for key in counts): + return 'ERROR' + if any(value[key] for key in ('errors', 'skipped', 'expected_failures', + 'unexpected_successes', 'lifecycle_failures')): + return 'ERROR' + if value.get('invalid_population') != []: + return 'ERROR' + selection = value.get('selection') + if (not isinstance(selection, list) or not selection + or any(not isinstance(item, str) or not item for item in selection) + or expected_selection is not None and selection != expected_selection): + return 'ERROR' + keys = ('selected_ids', 'started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids') + for key in keys: + ids = value.get(key) + if (not isinstance(ids, list) or any(not isinstance(item, str) or not re.fullmatch(r'(?:[A-Za-z_]\w*\.){2,}[A-Za-z_]\w*', item) + or item.startswith('unittest.loader.') for item in ids) + or key != 'body_assertion_ids' and len(ids) != len(set(ids))): + return 'ERROR' + selected = value['selected_ids'] + if (expected_ids is not None and selected != expected_ids + or any(not any(selector == 'discover:test_*.py' or identity == selector + or identity.startswith(selector + '.') for selector in selection) + for identity in selected)): + return 'ERROR' + if (not selected or value['tests_run'] != len(selected) + or any(value[key] != selected for key in keys[1:5]) + or any(item not in selected for item in value['body_assertion_ids']) + or value['assertion_failures'] != len(value['body_assertion_ids'])): + return 'ERROR' + events = value.get('subtest_events') + assertions = value.get('assertion_events') + if not isinstance(events, list) or not isinstance(assertions, list) or value['subtests'] != len(events): + return 'ERROR' + for event in events: + if (not isinstance(event, dict) or set(event) != {'parent_id', 'phase', 'outcome'} + or event['parent_id'] not in selected or event['phase'] != 'body' + or event['outcome'] not in ('success', 'assertion')): + return 'ERROR' + for event in assertions: + if (not isinstance(event, dict) or set(event) != {'parent_id', 'origin'} + or event['parent_id'] not in selected or event['origin'] not in ('body', 'subtest')): + return 'ERROR' + direct = [event['parent_id'] for event in assertions if event['origin'] == 'body'] + if (len(set(direct)) != len(direct) + or value['body_assertion_ids'] != [event['parent_id'] for event in assertions] + or [event['parent_id'] for event in assertions if event['origin'] == 'subtest'] != + [event['parent_id'] for event in events if event['outcome'] == 'assertion']): + return 'ERROR' + if code == 1 and value['assertion_failures'] > 0 and value['successful'] is False: + return 'KILLED' + if code == 0 and value['successful'] is True and value['assertion_failures'] == 0: + return 'SURVIVED' + return 'ERROR' + + +def digest(data): + return hashlib.sha256(data).hexdigest() + + +def definitions(): + wrapper = 'test_kernel_replay.WrapperTests' + real = 'test_real_lean.RealLeanTests.' + items = [ + ('empty-coverage', 'kernel_replay.py', 'if not selections:', 'if False:', wrapper), + ('allow-artifact-symlink', 'kernel_replay.py', + " if not p.is_absolute() or p.is_symlink() or canonical != p:", + ' if False:', 'test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink'), + ('ignore-source-binding', 'kernel_replay.py', " check_binding(entry['source'])", ' pass', wrapper), + ('ignore-compiled-parts-binding', 'kernel_replay.py', "if parts_of(olean) != entry['parts']:", 'if False:', wrapper), + ('ignore-tool-binding', 'kernel_replay.py', "if m['tool'] != tool_bindings(m['sysroot']):", 'if False:', wrapper), + ('ignore-nonzero-exit', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['stdout'].splitlines().count(marker) == 1", wrapper), + ('ignore-completion-marker', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['returncode'] == 0", wrapper), + ('ignore-timeout', 'kernel_replay.py', 'p.wait(timeout=timeout_seconds)', 'p.wait(timeout=None)', wrapper), + ('ignore-memory-limit', 'kernel_replay.py', 'preexec_fn=limits(memory_mib)', 'preexec_fn=None', wrapper), + ('truncate-module-coverage', 'kernel_replay.py', "for entry in m['modules']:\n validate_manifest(m)", "for entry in m['modules'][:1]:\n validate_manifest(m)", wrapper), + ('concurrent-module-processes', 'kernel_replay.py', + " for entry in m['modules']:\n validate_manifest(m)\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n if report['results'][-1].get('cleanup', {}).get('reaped') is False:\n break # Do not start another process while an earlier PID remains unreaped.", + " from concurrent.futures import ThreadPoolExecutor\n with ThreadPoolExecutor(max_workers=2) as pool:\n report['results'] = list(pool.map(lambda entry: run_one(m, entry, memory_mib, timeout_seconds), m['modules']))", + wrapper + '.test_one_child_at_a_time_and_exact_coverage'), + ('skip-kernel-replay', 'ExactReplay.lean', ' replayFromImports target', ' pure ()', real + 'test_public_self_reference_rejected'), + ('prefix-expansion', 'ExactReplay.lean', ' replayFromImports target', + ' let sp ← searchPathRef.get\n for path in (← SearchPath.findAllWithExt sp "olean") do\n if let some name ← searchModuleNameOfFileName path sp then\n if target.isPrefixOf name then replayFromImports name', + real + 'test_exact_module_no_prefix_glob'), + ('untrusted-checker-search-path', 'kernel_replay.py', + "env['LEAN_PATH'] = os.pathsep.join([str(Path(m['sysroot']) / 'lib/lean'), *m['lean_path']])", + "env['LEAN_PATH'] = os.pathsep.join(m['lean_path'])", real + 'test_user_lean_path_cannot_shadow_checker'), + ] + return items + + +def resource_definitions(): + wrapper = 'test_kernel_replay.WrapperTests.' + return [ + ('resource-ignore-memory-upper-bound', 'kernel_replay.py', + 'not 64 <= memory_mib <= memory_mib_max', 'memory_mib < 64', + wrapper + 'test_resource_memory_upper_bounds_before_spawn'), + ('resource-ignore-inherited-memory-hard-limit', 'kernel_replay.py', + 'if hard_memory != resource.RLIM_INFINITY:', 'if False:', + wrapper + 'test_resource_memory_hard_limit_before_spawn'), + ('resource-ignore-timeout-upper-bound', 'kernel_replay.py', + 'not 0 < timeout_seconds <= MAX_TIMEOUT_SECONDS', 'not 0 < timeout_seconds', + wrapper + 'test_resource_timeout_upper_bounds_before_spawn'), + ('resource-accept-boolean-timeout', 'kernel_replay.py', + 'type(timeout_seconds) not in (int, float)', 'type(timeout_seconds) not in (int, float, bool)', + wrapper + 'test_resource_boolean_arguments_rejected'), + ('resource-drop-process-exception-normalization', 'kernel_replay.py', + 'PROCESS_ERRORS = (OSError, subprocess.SubprocessError, OverflowError, ValueError)', + 'PROCESS_ERRORS = (OSError,)', + wrapper + 'test_resource_spawn_exceptions_are_structured_errors'), + ('resource-unbounded-cleanup-wait', 'kernel_replay.py', + 'p.wait(timeout=CLEANUP_TIMEOUT_SECONDS)', 'p.wait()', + wrapper + 'test_resource_unreapable_child_cleanup_is_bounded'), + ('resource-skip-abnormal-cleanup', 'kernel_replay.py', + "if p is not None and result['status'] != 'FINISHED':", 'if False:', + wrapper + 'test_resource_unreapable_child_cleanup_is_bounded'), + ('resource-overwrite-error-with-success', 'kernel_replay.py', + " if result['status'] == 'FINISHED':", " if result['status'] != 'TIMEOUT':", + wrapper + 'test_resource_wait_errors_cannot_become_success'), + ('resource-continue-after-unreaped-child', 'kernel_replay.py', + "if report['results'][-1].get('cleanup', {}).get('reaped') is False:", 'if False:', + wrapper + 'test_resource_unreaped_child_stops_further_modules'), + ] + + +def derived_driver_mutations(lean): + upstream = (Path(lean).resolve().parent.parent / 'src/lean/LeanChecker.lean').read_text() + start = upstream.index('unsafe def replayFromImports ') + end = upstream.index('unsafe def replayFromFresh ', start) + routine = upstream[start:end] + # These intentionally unsound adapters exist only inside isolated mutants. + # The copied fragment retains the upstream Apache-2.0 provenance in the + # driver's file header; production calls the installed implementation. + exported = routine.replace('replayFromImports', 'cbzExportedOnly', 1) + a, b = exported.index(' let mut fnames'), exported.index(' let parts') + exported = exported[:a] + ' let fnames := #[mFile]\n' + exported[b:] + preload = routine.replace('replayFromImports', 'cbzPreloaded', 1) + preload = preload.replace('importModulesCore mod.imports', 'importModulesCore #[{ module }]') + preload = preload.replace('finalizeImport s mod.imports', 'finalizeImport s #[{ module }]') + original = (ROOT / 'ExactReplay.lean').read_text() + return [ + ('exported-part-only', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + exported).replace(' replayFromImports target', ' cbzExportedOnly target'), + 'test_real_lean.RealLeanTests.test_private_self_reference_rejected'), + ('preload-target-self-reference', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + preload).replace(' replayFromImports target', ' cbzPreloaded target'), + 'test_real_lean.RealLeanTests.test_public_self_reference_rejected'), + ] + + +def run_mutations(output, only=None, group='all'): + lean = os.environ.get('CBZ_TEST_LEAN', '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean') + plan = definitions() + resource_definitions() + if group == 'resource': + plan = resource_definitions() + elif group == 'wrapper': + plan = [x for x in plan if x[4].startswith('test_kernel_replay.')] + else: + plan += derived_driver_mutations(lean) + if only: + if only not in [x[0] for x in plan]: + raise ValueError('unknown mutation: ' + only) + plan = [x for x in plan if x[0] == only] + # Keep old-generation mutation receipts immutable when selecting this repair. + evidence = ROOT / ('evidence/mutations' if group == 'all' else 'evidence/resource-mutations') + evidence.mkdir(parents=True, exist_ok=True) + results = [] + populations = {} + for name, filename, old, new, test in plan: + if test not in populations: + population_path = evidence / ('population-' + str(len(populations)) + '.json') + listed = subprocess.run([sys.executable, '-B', '-S', str(ROOT / 'run_tests.py'), + '--output', str(population_path), '--test', test, '--list'], + capture_output=True, text=True, timeout=15) + population = json.loads(population_path.read_text()) if population_path.exists() else {} + if (listed.returncode != 0 or population.get('invalid_population') != [] + or not population.get('selected_ids') or population.get('selection') != [test]): + raise ValueError('cannot bind unchanged selected test population: ' + test) + populations[test] = population['selected_ids'] + with tempfile.TemporaryDirectory(dir=ROOT / 'evidence', prefix='mutant-') as d: + work = Path(d) / 'kernel_replay' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + (work / 'evidence').mkdir() + file = work / filename + original = file.read_text() + if original.count(old) != 1: + raise ValueError(f'mutation {name} did not identify exactly one source occurrence') + changed = original.replace(old, new, 1) + file.write_text(changed) + result_path = work / 'evidence/tests.json' + command = [sys.executable, str(work / 'run_tests.py'), '--output', str(result_path), '--test', test] + try: + p = subprocess.run(command, capture_output=True, text=True, timeout=90) + value = json.loads(result_path.read_text()) if result_path.exists() else {} + record = {'name': name, 'file': filename, 'test': test, + 'outcome': classify(value, p.returncode, [test], populations[test]), 'returncode': p.returncode, + 'expected_selected_ids': populations[test], + 'original_sha256': digest(original.encode()), + 'mutated_sha256': digest(changed.encode()), 'tests': value, + 'stdout': p.stdout, 'stderr': p.stderr} + except subprocess.TimeoutExpired as e: + record = {'name': name, 'outcome': 'ERROR', 'error': 'mutation test timed out'} + (evidence / (name + '.json')).write_text(json.dumps(record, indent=2) + '\n') + results.append(record) + print(name + ': ' + record['outcome'], flush=True) + result = {'group': group, 'threshold': 1.0, 'planned': len(plan), 'executed': len(results), + 'killed': sum(x['outcome'] == 'KILLED' for x in results), + 'ok': bool(results) and len(results) == len(plan) and all(x['outcome'] == 'KILLED' for x in results), + 'results': results} + Path(output).write_text(json.dumps(result, indent=2) + '\n') + return result + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--only') + parser.add_argument('--group', choices=('all', 'wrapper', 'resource'), default='all') + args = parser.parse_args() + try: + return 0 if run_mutations(args.output, args.only, args.group)['ok'] else 1 + except (ValueError, OSError) as e: + print('mutation harness ERROR: ' + str(e), file=sys.stderr) + return 2 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/run_tests.py new file mode 100644 index 000000000..87e7fd4d6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/run_tests.py @@ -0,0 +1,229 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + # _Outcome calls addFailure *after* this wrapper unwinds. + if inspect.iscoroutinefunction(original_body): + @functools.wraps(original_body) + async def async_body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected async method invoked outside body dispatch') + return await original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return await original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + body = async_body + setattr(test, test._testMethodName, body) + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection): + cases, population = describe_suite(suite, selection) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + for test in cases: + if method_id(test) is not None: + instrument(test, result) + suite.run(result) + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/tests/test_mutation_harness.py b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/tests/test_mutation_harness.py new file mode 100644 index 000000000..538a20db8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/tests/test_mutation_harness.py @@ -0,0 +1,183 @@ +"""Real runner controls for body-only mutation kills and complete selected populations.""" +import copy +import importlib.util +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import textwrap +import unittest + +ROOT = Path(__file__).resolve().parents[1] +_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') +mutations = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(mutations) + + +class MutationHarnessTests(unittest.TestCase): + def run_fixture(self, methods, selection='fixture.Case', module_tail=''): + source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', selection], + capture_output=True, text=True, timeout=10) + self.assertTrue(output.exists(), p.stderr) + value = json.loads(output.read_text()) + return mutations.classify(value, p.returncode), value, p.returncode + + def test_setup_assertion_is_not_a_kill(self): + outcome, value, _ = self.run_fixture(''' + def setUp(self): self.fail('setup only') + def test_one(self): pass + ''') + self.assertEqual(outcome, 'ERROR', value) + + def test_body_assertion_kills_after_all_selected_bodies_finish(self): + outcome, value, _ = self.run_fixture(''' + def test_one(self): self.fail('body assertion') + def test_two(self): pass + ''') + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) + + def test_dispatch_hook_assertion_without_selected_method_is_error(self): + outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") + self.assertEqual(outcome, 'ERROR', value) + + def test_selected_method_invoked_from_lifecycle_is_error(self): + for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", + "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", + "def tearDown(self): self.test_one()\ndef test_one(self): pass", + "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_clean_identity_survives(self): + outcome, value, _ = self.run_fixture('def test_one(self): pass') + self.assertEqual(outcome, 'SURVIVED', value) + + def test_lifecycle_failures_never_kill_even_with_body_assertion(self): + cases = [ + "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", + "def test_one(self): self.addCleanup(self.fail, 'cleanup')", + "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", + "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", + "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", + "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_errors_skips_and_expected_failures_are_errors(self): + cases = [ + "def test_one(self): raise RuntimeError('body runtime')", + "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", + "@unittest.skip('skip')\ndef test_one(self): pass", + "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", + "@unittest.expectedFailure\ndef test_one(self): pass", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): + for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), + ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) + self.assertEqual(value['assertion_failures'], failures) + outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") + self.assertEqual(outcome, 'SURVIVED', value) + + def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): + outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") + self.assertEqual(outcome, 'ERROR', value) + + def test_lifecycle_subtests_and_subtest_errors_are_errors(self): + for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", + "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): + cases = [ + ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), + ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), + ('def test_one(self): pass', 'fixture.Missing', ''), + ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), + ] + for source, selection, tail in cases: + with self.subTest(selection=selection, tail=tail): + outcome, value, _ = self.run_fixture(source, selection, tail) + self.assertEqual(outcome, 'ERROR', value) + + def test_population_listing_does_not_execute_fixtures_or_bodies(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") + output = root / 'population.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case', '--list'], + capture_output=True, text=True, timeout=10) + self.assertEqual(p.returncode, 0, p.stderr) + self.assertEqual(json.loads(output.read_text()), + {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], + 'invalid_population': []}) + + def test_summary_without_lifecycle_receipt_fails_closed(self): + old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, + expected_failures=0, unexpected_successes=0, successful=False) + self.assertEqual(mutations.classify(old, 1), 'ERROR') + self.assertEqual(mutations.classify({}, 1), 'ERROR') + self.assertEqual(mutations.classify(None, 1), 'ERROR') + + def test_forged_or_missing_accounting_is_error(self): + _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') + for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', + 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', + 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): + with self.subTest(missing=key): + value = copy.deepcopy(receipt) + value.pop(key, None) + self.assertEqual(mutations.classify(value, code), 'ERROR') + for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, + {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, + {'body_entered_ids': []}, {'body_finished_ids': []}, + {'finished_ids': []}, {'body_assertion_ids': []}, + {'body_assertion_ids': ['fixture.Case.test_forged']}, + {'selected_ids': ['synthetic']}, + {'selected_ids': ['unittest.loader._FailedTest.test_one']}, + {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, + {'unexpected_successes': 1}, {'assertion_failures': 2}, + {'subtests': 1}, {'assertion_events': []}, + {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): + with self.subTest(changes=changes): + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') + for exit_code in (2, -9, True): + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/current-composed-receipt.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/current-composed-receipt.json new file mode 100644 index 000000000..86f0d081f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/current-composed-receipt.json @@ -0,0 +1,72 @@ +{ + "schema_version": 1, + "status": "PASS_SCOPED_COMPOSED_NONE_RETURN_PROFILE", + "published_parent": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "current_source_sha256": { + "run_tests.py": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "tests/test_mutation_harness.py": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114" + }, + "unchanged_classifier_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "single_fresh_full_suite": false, + "current_test_methods": 60, + "composition": { + "fresh_none_profile": 6, + "reused_prior_lifecycle": 14, + "reused_wrapper": 31, + "reused_real_lean": 9 + }, + "fresh_method_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "fresh_commands": { + "normal": "PYTHONOPTIMIZE=0 python3 -B -S -m unittest discover -s delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests -p test_mutation_harness.py -k LazyBodyHarnessTests -v", + "optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O -m unittest discover -s delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests -p test_mutation_harness.py -k LazyBodyHarnessTests -v" + }, + "fresh_logs": { + "normal": { + "path": "evidence/lazy-body/evidence/kernel-none-profile-controls-green.log", + "sha256": "0a2db29755b11f1bfd6a442bcedead8ea641e077dd4b5e25d475183d1b8e1c78", + "methods": 6, + "observed_result": "OK" + }, + "optimized": { + "path": "evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log", + "sha256": "6268639df35d6220ff5ccede714b65e3c53eb04889a994dd0746bd71fc724829", + "methods": 6, + "observed_result": "OK" + } + }, + "fresh_final_return_guard": { + "distinct": 1, + "executions": 2, + "receipt": "evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json" + }, + "earlier_guard_generation": { + "distinct": 3, + "executions": 6, + "receipt": "evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json", + "reused_unchanged": [ + "pristine function shape", + "decorator shape links" + ], + "superseded": "type-only return rejection" + }, + "reused_source_evidence": { + "prior_lifecycle": "evidence/lifecycle/evidence/kernel-delivery.json", + "production_mutants": 25, + "production_trace_applicability": "original source/test bodies and mutation definitions unchanged; exact direct-method AST profile covered by appended applicability record" + }, + "source_applicability": "evidence/lazy-body/evidence/original-method-shape-applicability.json", + "review": { + "path": "evidence/lazy-body/evidence/independent-lazy-body-review.json", + "sha256": "8e6c0de322cb2296d2ac9bf472bcb29c3fcdfaa941541539e1fc467d5a47c933", + "status": "CLEAR" + }, + "hosted_ci": "No successor-head hosted CI result claimed.", + "original_suite_mutants_lean_replayed": false +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/baseline-sha256.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/baseline-sha256.json new file mode 100644 index 000000000..9db2fd693 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/baseline-sha256.json @@ -0,0 +1,7 @@ +{ + "kernel_replay/run_tests.py": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "kernel_replay/mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "kernel_replay/tests/test_mutation_harness.py": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6", + "layer_a/mutation_test.py": "e857fde3c3d7caf301e24a77972ee18d1253186613633e1b0876b61f274eebed", + "layer_a/tests/test_mutation_runner.py": "347135c69335eaa74a62f5b6380057fff24e30eafcf57b8418de69bef1be7f7d" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/independent-lazy-body-review.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/independent-lazy-body-review.json new file mode 100644 index 000000000..5f07878c5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/independent-lazy-body-review.json @@ -0,0 +1,78 @@ +{ + "final_outcome": "Kernel and layer_a CLEAR for final frozen lazy-body changed hunks. No unresolved actionable issue found. This is a source-bound scoped review and reusable evidence assessment, not a new full-run verification or CBZ declaration.", + "historical_applicability": "The static source-shape receipt records original direct selected methods as synchronous without direct valued returns or suspension; nested helpers are excluded from the enclosing method analysis. Earlier body assertion traces and mathematical verification remain applicable under their unchanged source/dependency assumptions. Provider-distinct process requirements are tracked separately.", + "kernel_replay": { + "evidence_assessment": { + "current_harness_methods": 20, + "current_selected_method_total": 60, + "final_none_guard_outcome": "KILLED in normal and optimized modes by the focused non-None return assertion control", + "fresh_final_none_guard_distinct_mutations": 1, + "fresh_final_none_guard_mode_executions": 2, + "fresh_methods_normal": 6, + "fresh_methods_optimized": 6, + "reviewer_test_executions": 0, + "unchanged_original_methods_reused": 40 + }, + "frozen_source_sha256": { + "work/kernel_replay/mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "work/kernel_replay/run_tests.py": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "work/kernel_replay/tests/test_mutation_harness.py": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114" + }, + "reused_fresh_evidence": { + "normal_six_methods": "evidence/kernel-none-profile-controls-green.log", + "optimized_six_methods": "evidence/kernel-none-profile-controls-optimized-green.log", + "original_method_source_applicability": "evidence/original-method-shape-applicability.json", + "refreshed_final_none_guard_mutant_normal_and_optimized": "evidence/kernel-none-return-guard-mutant/summary.json", + "unchanged_shape_and_decorator_guard_evidence": "evidence/kernel-lazy-guard-mutants/summary.json" + }, + "reviewed_policy": [ + "Selected methods must be ordinary synchronous Python functions or bound methods; each advertised __wrapped__ link is checked and cyclic decorator metadata is rejected.", + "Declared generator, coroutine and async-generator shapes refuse the entire selected population before any suite fixture or body runs.", + "A successfully returning selected body must return exactly None. Every other value, including False, zero, empty containers and opaque iterables, marks invalid_population.", + "Returned objects are never iterated or awaited. Disposal closes only a native unstarted coroutine in CORO_CREATED; arbitrary return objects are not advanced.", + "Invalid return evidence cannot be overridden by a different selected method producing a legitimate assertion failure.", + "The direct-script unittest.main guard now follows LazyBodyHarnessTests, resolving omission of new methods during direct invocation." + ], + "scope_limits": "Finite synchronous-method policy and changed harness review. No original broad suite, production mutant, Lean, proof or build check replayed.", + "status": "CLEAR_FOR_REVIEWED_SCOPE" + }, + "layer_a": { + "evidence_assessment": { + "fresh_final_none_profile_distinct_guard_mutations": 3, + "fresh_final_none_profile_guard_executions": 6, + "fresh_final_none_profile_guard_outcome": "All 3 mutations KILLED in normal and optimized modes", + "fresh_methods_normal": 4, + "fresh_methods_optimized": 4, + "old_classes_and_original_mutation_definitions_unchanged": true, + "retained_existing_harness_methods": 11, + "retained_existing_lifecycle_methods": 8, + "reviewer_test_executions": 0 + }, + "frozen_source_sha256": { + "evidence/layer_a/frozen/mutation_test.py": "840d2c86b9c7b1fb934c6fae0f300afa17aca6de5551ca8db70ac47147073b7f", + "evidence/layer_a/frozen/tests/test_mutation_runner.py": "9190916dea425ab71aad73acbb70b4100890592f2a462375cb3a922ff62a1ff3" + }, + "reused_fresh_evidence": { + "final_none_profile_three_guard_mutants_two_modes": "evidence/layer_a/new-guard-source-controls.json", + "frozen_manifest": "evidence/layer_a/frozen-manifest.json", + "normal_four_methods": "evidence/layer_a/normal-lazy-controls.log", + "optimized_four_methods": "evidence/layer_a/optimized-lazy-controls.log", + "original_method_source_applicability": "evidence/original-method-shape-applicability.json", + "unchanged_shape_wraps_and_native_coroutine_disposal_controls": "evidence/layer_a/lazy-types-generation/" + }, + "reviewed_changed_hunks": [ + "ordinary_sync_method traverses every wraps-linked function/method and rejects generator/coroutine/async-generator shapes and cyclic metadata.", + "inspect_test_population applies the method-shape policy during pristine list discovery; execute_test_suite refuses any invalid selected population before fixtures or test bodies.", + "The actual selected-method wrapper requires every normal return to be exactly None. All other values mark invalid_population regardless of truth value or iterable shape.", + "No return value is iterated or awaited; only a native unstarted coroutine is closed in CORO_CREATED. Custom awaitables and opaque iterables are not closed or advanced.", + "New test methods retain positive None pass/assertion cases and sentinel evidence that mixed unsupported populations and returned suspended objects do not establish completed body execution.", + "Existing lifecycle attribution, pristine population binding, classifier, old test classes and original checker mutation definitions remain outside the changed lazy-body hunks." + ], + "scope_limits": "Static review of final frozen lazy-body changed hunks only; completed four-method normal/O and three-guard two-mode evidence reused. No old full suite, original checker mutant, Lean, proof or build check repeated.", + "status": "CLEAR_FOR_REVIEWED_SCOPE" + }, + "reuse_policy": "Completed applicable mathematical and harness evidence is reusable. A review handoff or pending layer review does not erase established kernel evidence. Previously completed 14 kernel lifecycle controls and applicable source controls remain separate reusable evidence; this is not a fresh whole-suite run.", + "review_type": "independent static review of changed lazy-body runner and focused harness hunks; completed verification reused", + "reviewer": "kernel_lifecycle_review", + "schema_version": 1 +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-delivery.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-delivery.json new file mode 100644 index 000000000..8bd53d570 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-delivery.json @@ -0,0 +1,61 @@ +{ + "schema_version": 2, + "component": "kernel_replay", + "published_parent": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "changed_files": { + "run_tests.py": { + "baseline_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "changed_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3" + }, + "tests/test_mutation_harness.py": { + "baseline_sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6", + "changed_sha256": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114" + } + }, + "unchanged_classifier_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "supported_body_policy": "ordinary synchronous Python function/bound-method selected bodies must return None; every decorator __wrapped__ link must have the supported non-generator/non-coroutine/non-async-generator shape; every non-None return is rejected without bool/equality/iteration/awaiting or advancement. Only native unstarted coroutine close is used for disposal.", + "fresh_method_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "fresh_modes": [ + "normal", + "optimized with PYTHONOPTIMIZE=1 inherited by child fixtures" + ], + "reused_harness_method_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "current_harness_method_count": 20, + "unchanged_wrapper_and_real_method_count": 40, + "current_composed_method_total": 60, + "fresh_source_guard_mutants": { + "initial_type_only_generation_distinct": 3, + "initial_type_only_generation_executions": 6, + "final_none_return_guard_distinct": 1, + "final_none_return_guard_executions": 2, + "current_safeguard_themes": 3, + "unchanged_pristine_shape_and_decorator_guard_evidence_reused": true, + "note": "Runtime return guard was refreshed after the owner tightened type-only rejection to all non-None returns; earlier full receipts retained as earlier source generation." + }, + "reused_original_kernel_source_mutants": 25, + "fresh_original_suite_or_lean_or_production_mutation_replay": false, + "evidence_reuse_rationale": "Static direct-method AST extraction proves all original54 kernel and83 layer methods ordinary synchronous with no valued return/suspension. Existing14 kernel lifecycle controls,40 production methods,10 prior lifecycle safeguards and25 production source-mutant kills retain applicable ordinary-None-body evidence. Classifier/production/Lean/tests outside new harness remain unchanged. No broad replay.", + "test_guard_relocation": "Moved existing unittest.main() guard below appended new class; discovery/module-import test semantics unchanged." +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-green.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-green.log new file mode 100644 index 000000000..d6dbf6ead --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-green.log @@ -0,0 +1,10 @@ +test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok +test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok +test_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok +test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok +test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok + +---------------------------------------------------------------------- +Ran 5 tests in 1.008s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log new file mode 100644 index 000000000..67323963f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log @@ -0,0 +1,10 @@ +test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok +test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok +test_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok +test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok +test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok + +---------------------------------------------------------------------- +Ran 5 tests in 3.198s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-red.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-red.log new file mode 100644 index 000000000..3591d62b1 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-red.log @@ -0,0 +1,145 @@ +test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... + test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape="def test_a_lazy(self):\n record('lazy advanced')\n yield None") ... FAIL + test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape="async def test_a_lazy(self):\n record('lazy advanced')\n yield None") ... FAIL + test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape="async def test_a_lazy(self): record('lazy advanced')") ... FAIL +test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... FAIL +test_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok +test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... + test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='generator()') ... FAIL + test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='coroutine()') ... FAIL + test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='async_generator()') ... FAIL + test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='Awaitable()') ... FAIL +test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... + test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape="def test_a_lazy(self):\n record('lazy advanced')\n yield None") ... FAIL + test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape="async def test_a_lazy(self):\n record('lazy advanced')\n yield None") ... FAIL + test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape="async def test_a_lazy(self): record('lazy advanced')") ... FAIL + +====================================================================== +FAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape="def test_a_lazy(self):\n record('lazy advanced')\n yield None") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 226, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp3luwqy53/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body assertion\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape="async def test_a_lazy(self):\n record('lazy advanced')\n yield None") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 226, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpaz47zyw3/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body assertion\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape="async def test_a_lazy(self): record('lazy advanced')") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 227, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution + self.assertEqual(events, [], value) +AssertionError: Lists differ: ['ordinary assertion'] != [] + +First list contains 1 additional elements. +First extra element 0: +'ordinary assertion' + +- ['ordinary assertion'] ++ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpyquzg2ry/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body assertion\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 282, in test_decorator_without_wrapped_metadata_cannot_hide_lazy_return + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp0y4ucml3/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='generator()') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp5d1vppyz/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='coroutine()') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpoh_wc1nh/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='async_generator()') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpixpepvd0/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='Awaitable()') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp1wrshjar/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape="def test_a_lazy(self):\n record('lazy advanced')\n yield None") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 247, in test_wrapped_lazy_method_shapes_refuse_before_execution + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpm4xdxdy2/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape="async def test_a_lazy(self):\n record('lazy advanced')\n yield None") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 247, in test_wrapped_lazy_method_shapes_refuse_before_execution + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpyr56dlub/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape="async def test_a_lazy(self): record('lazy advanced')") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 247, in test_wrapped_lazy_method_shapes_refuse_before_execution + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmph7frt73n/run_tests.py", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +---------------------------------------------------------------------- +Ran 5 tests in 0.839s + +FAILED (failures=11) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log new file mode 100644 index 000000000..27a9e0bff --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log @@ -0,0 +1,6 @@ +normal drop-pristine-lazy-shape-rejection: KILLED +normal drop-lazy-return-rejection: KILLED +normal ignore-decorator-lazy-shape-links: KILLED +optimized drop-pristine-lazy-shape-rejection: KILLED +optimized drop-lazy-return-rejection: KILLED +optimized ignore-decorator-lazy-shape-links: KILLED diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py new file mode 100644 index 000000000..549bbdbeb --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py @@ -0,0 +1,245 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def is_lazy_return(value): + return inspect.isgenerator(value) or inspect.isasyncgen(value) or inspect.isawaitable(value) + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if is_lazy_return(value): + result.invalid_execution.append('selected method returned unsupported suspended work') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection): + cases, population = describe_suite(suite, selection) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + if not population['invalid_population']: + for test in cases: + instrument(test, result) + suite.run(result) + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json new file mode 100644 index 000000000..0f81008d4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json @@ -0,0 +1,89 @@ +{ + "name": "drop-lazy-return-rejection", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "11cb00a9617ecc1e086a5e8b146a2179c1486474b3c7d1e8f17c7307bb1c4f3a", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... \n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='generator()') ... FAIL\n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='coroutine()') ... FAIL\n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='async_generator()') ... FAIL\n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='Awaitable()') ... FAIL\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='generator()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-de9ltc2t/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmphx29nifu/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='coroutine()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-de9ltc2t/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpbxz5vc35/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='async_generator()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-de9ltc2t/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp6kab9njt/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='Awaitable()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-de9ltc2t/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpi95vb0cz/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json new file mode 100644 index 000000000..ee0a6bcc5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json @@ -0,0 +1,79 @@ +{ + "name": "drop-pristine-lazy-shape-rejection", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "2a15fa19732ff0b025cbfcc5ce29a2085e62de902988af96a17cd433d511b938", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... \n test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\") ... FAIL\n\n======================================================================\nFAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-46id22kd/kernel_replay/tests/test_mutation_harness.py\", line 227, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['ordinary assertion'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'ordinary assertion'\n\n- ['ordinary assertion']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpf3eb9jzu/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-46id22kd/kernel_replay/tests/test_mutation_harness.py\", line 227, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['ordinary assertion'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'ordinary assertion'\n\n- ['ordinary assertion']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpqbnq99yf/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-46id22kd/kernel_replay/tests/test_mutation_harness.py\", line 227, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['ordinary assertion'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'ordinary assertion'\n\n- ['ordinary assertion']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpizv2dhjz/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json new file mode 100644 index 000000000..6f7e5c964 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json @@ -0,0 +1,79 @@ +{ + "name": "ignore-decorator-lazy-shape-links", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "91a96761a6d5f66143c0f14bdf0bf56f9765d2f8cb0de88074d27d8e2204748d", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... \n test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\") ... FAIL\n\n======================================================================\nFAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-u23pheir/kernel_replay/tests/test_mutation_harness.py\", line 248, in test_wrapped_lazy_method_shapes_refuse_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['decorator executed'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'decorator executed'\n\n- ['decorator executed']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpw_4fat84/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-u23pheir/kernel_replay/tests/test_mutation_harness.py\", line 248, in test_wrapped_lazy_method_shapes_refuse_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['decorator executed'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'decorator executed'\n\n- ['decorator executed']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp28a32dc1/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-u23pheir/kernel_replay/tests/test_mutation_harness.py\", line 248, in test_wrapped_lazy_method_shapes_refuse_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['decorator executed'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'decorator executed'\n\n- ['decorator executed']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp39j3m65c/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json new file mode 100644 index 000000000..0900f29e7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json @@ -0,0 +1,89 @@ +{ + "name": "drop-lazy-return-rejection", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "11cb00a9617ecc1e086a5e8b146a2179c1486474b3c7d1e8f17c7307bb1c4f3a", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... \n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='generator()') ... FAIL\n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='coroutine()') ... FAIL\n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='async_generator()') ... FAIL\n test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='Awaitable()') ... FAIL\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='generator()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-6tvtn08n/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp_3z1dwv_/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='coroutine()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-6tvtn08n/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpn06ap42_/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='async_generator()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-6tvtn08n/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpvv4e8vz2/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) (expression='Awaitable()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-6tvtn08n/kernel_replay/tests/test_mutation_harness.py\", line 268, in test_sync_lazy_returns_refuse_without_advancing_suspended_work\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpp9la8hdp/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json new file mode 100644 index 000000000..8ababbb54 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json @@ -0,0 +1,79 @@ +{ + "name": "drop-pristine-lazy-shape-rejection", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "2a15fa19732ff0b025cbfcc5ce29a2085e62de902988af96a17cd433d511b938", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... \n test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\") ... FAIL\n\n======================================================================\nFAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-va8avq08/kernel_replay/tests/test_mutation_harness.py\", line 227, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['ordinary assertion'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'ordinary assertion'\n\n- ['ordinary assertion']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpetl4fcrt/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-va8avq08/kernel_replay/tests/test_mutation_harness.py\", line 227, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['ordinary assertion'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'ordinary assertion'\n\n- ['ordinary assertion']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp91wmdrjw/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-va8avq08/kernel_replay/tests/test_mutation_harness.py\", line 227, in test_declared_lazy_method_shapes_refuse_mixed_population_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['ordinary assertion'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'ordinary assertion'\n\n- ['ordinary assertion']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpvf6kq0t1/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json new file mode 100644 index 000000000..f2ac4d6c4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json @@ -0,0 +1,79 @@ +{ + "name": "ignore-decorator-lazy-shape-links", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "91a96761a6d5f66143c0f14bdf0bf56f9765d2f8cb0de88074d27d8e2204748d", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... \n test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\") ... FAIL\n test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\") ... FAIL\n\n======================================================================\nFAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-5cds0sxn/kernel_replay/tests/test_mutation_harness.py\", line 248, in test_wrapped_lazy_method_shapes_refuse_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['decorator executed'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'decorator executed'\n\n- ['decorator executed']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpcdw499ob/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self):\\n record('lazy advanced')\\n yield None\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-5cds0sxn/kernel_replay/tests/test_mutation_harness.py\", line 248, in test_wrapped_lazy_method_shapes_refuse_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['decorator executed'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'decorator executed'\n\n- ['decorator executed']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp2zl9tg5r/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) (shape=\"async def test_a_lazy(self): record('lazy advanced')\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-5cds0sxn/kernel_replay/tests/test_mutation_harness.py\", line 248, in test_wrapped_lazy_method_shapes_refuse_before_execution\n self.assertEqual(events, [], value)\nAssertionError: Lists differ: ['decorator executed'] != []\n\nFirst list contains 1 additional elements.\nFirst extra element 0:\n'decorator executed'\n\n- ['decorator executed']\n+ [] : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'invalid_population': ['selected method returned unsupported suspended work'], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_lazy (fixture.Case.test_a_lazy) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpubb1ce73/run_tests.py\", line 138, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_lazy', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution" + ], + "lifecycle_failures": 0, + "subtests": 3, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json new file mode 100644 index 000000000..4ce2d07e4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json @@ -0,0 +1,69 @@ +{ + "schema_version": 1, + "scope": "3 new lazy-body safeguard source mutants in each mode; no original lifecycle or production mutant replay", + "distinct_mutations": 3, + "executions": 6, + "ok": true, + "results": [ + { + "name": "drop-pristine-lazy-shape-rejection", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "2a15fa19732ff0b025cbfcc5ce29a2085e62de902988af96a17cd433d511b938", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028" + }, + { + "name": "drop-lazy-return-rejection", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "11cb00a9617ecc1e086a5e8b146a2179c1486474b3c7d1e8f17c7307bb1c4f3a", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028" + }, + { + "name": "ignore-decorator-lazy-shape-links", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "91a96761a6d5f66143c0f14bdf0bf56f9765d2f8cb0de88074d27d8e2204748d", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028" + }, + { + "name": "drop-pristine-lazy-shape-rejection", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "2a15fa19732ff0b025cbfcc5ce29a2085e62de902988af96a17cd433d511b938", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028" + }, + { + "name": "drop-lazy-return-rejection", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "11cb00a9617ecc1e086a5e8b146a2179c1486474b3c7d1e8f17c7307bb1c4f3a", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028" + }, + { + "name": "ignore-decorator-lazy-shape-links", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028", + "mutated_sha256": "91a96761a6d5f66143c0f14bdf0bf56f9765d2f8cb0de88074d27d8e2204748d", + "guard_sha256": "3180aa60b3793736a9312537856d97cfd534842b2758d324d8b0c30282fca028" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-mixed-generator-red.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-mixed-generator-red.json new file mode 100644 index 000000000..4cc3a84ce --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-mixed-generator-red.json @@ -0,0 +1,56 @@ +{ + "published_commit": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "runner_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "fixture": "mixed generator method plus ordinary body assertion", + "returncode": 1, + "outcome": "KILLED", + "generator_body_executed": false, + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "fixture.Case" + ], + "selected_ids": [ + "fixture.Case.test_a_generator", + "fixture.Case.test_b_assertion" + ], + "invalid_population": [], + "tests_run": 2, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_a_generator (fixture.Case.test_a_generator) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpcgmu99r8/run_tests.py\", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: genuine ordinary body assertion\n\nRan 2 tests\n", + "started_ids": [ + "fixture.Case.test_a_generator", + "fixture.Case.test_b_assertion" + ], + "finished_ids": [ + "fixture.Case.test_a_generator", + "fixture.Case.test_b_assertion" + ], + "body_entered_ids": [ + "fixture.Case.test_a_generator", + "fixture.Case.test_b_assertion" + ], + "body_finished_ids": [ + "fixture.Case.test_a_generator", + "fixture.Case.test_b_assertion" + ], + "body_assertion_ids": [ + "fixture.Case.test_b_assertion" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "fixture.Case.test_b_assertion", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-green.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-green.log new file mode 100644 index 000000000..08bc51096 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-green.log @@ -0,0 +1,11 @@ +test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok +test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok +test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok +test_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok +test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok +test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok + +---------------------------------------------------------------------- +Ran 6 tests in 1.302s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log new file mode 100644 index 000000000..5d32302de --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log @@ -0,0 +1,11 @@ +test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok +test_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok +test_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok +test_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok +test_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok +test_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok + +---------------------------------------------------------------------- +Ran 6 tests in 4.030s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log new file mode 100644 index 000000000..358a86de0 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log @@ -0,0 +1,2 @@ +normal drop-non-none-return-rejection: KILLED +optimized drop-non-none-return-rejection: KILLED diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py new file mode 100644 index 000000000..796a63489 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py @@ -0,0 +1,241 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection): + cases, population = describe_suite(suite, selection) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + if not population['invalid_population']: + for test in cases: + instrument(test, result) + suite.run(result) + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json new file mode 100644 index 000000000..5258aedc5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json @@ -0,0 +1,89 @@ +{ + "name": "drop-non-none-return-rejection", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "mutated_sha256": "83c6bb91ba942fd52ec30051134f027e683bcbb20392d4a0f89e93bbad778c64", + "guard_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... \n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='False') ... FAIL\n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='0') ... FAIL\n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='[]') ... FAIL\n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='DeferredIterable()') ... FAIL\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='False')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-b8jwnab3/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpiyeho7pq/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='0')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-b8jwnab3/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpgwbcx1og/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='[]')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-b8jwnab3/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp8f9me_n7/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='DeferredIterable()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-b8jwnab3/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpr9kc0nmq/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json new file mode 100644 index 000000000..4902fb427 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json @@ -0,0 +1,89 @@ +{ + "name": "drop-non-none-return-rejection", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "mutated_sha256": "83c6bb91ba942fd52ec30051134f027e683bcbb20392d4a0f89e93bbad778c64", + "guard_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "selected_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... \n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='False') ... FAIL\n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='0') ... FAIL\n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='[]') ... FAIL\n test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='DeferredIterable()') ... FAIL\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='False')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-phrpdksc/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpf6crtdzq/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='0')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-phrpdksc/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpkv4pqe4k/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='[]')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-phrpdksc/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp4sozw8xz/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\n======================================================================\nFAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='DeferredIterable()')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-lazy-guard-mutant-phrpdksc/kernel_replay/tests/test_mutation_harness.py\", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\\n\\n======================================================================\\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpnrtkn03x/run_tests.py\", line 134, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "body_entered_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "body_finished_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "body_assertion_ids": [ + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json new file mode 100644 index 000000000..a305573ea --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json @@ -0,0 +1,29 @@ +{ + "schema_version": 1, + "scope": "one refreshed final None-return policy guard mutant each mode; unchanged shape/decorator guard evidence reused", + "distinct_mutations": 1, + "executions": 2, + "ok": true, + "results": [ + { + "name": "drop-non-none-return-rejection", + "mode": "normal", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "mutated_sha256": "83c6bb91ba942fd52ec30051134f027e683bcbb20392d4a0f89e93bbad778c64", + "guard_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3" + }, + { + "name": "drop-non-none-return-rejection", + "mode": "optimized", + "test": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "mutated_sha256": "83c6bb91ba942fd52ec30051134f027e683bcbb20392d4a0f89e93bbad778c64", + "guard_sha256": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-profile-red.log b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-profile-red.log new file mode 100644 index 000000000..c97e02720 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-profile-red.log @@ -0,0 +1,54 @@ +test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... + test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='False') ... FAIL + test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='0') ... FAIL + test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='[]') ... FAIL + test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='DeferredIterable()') ... FAIL + +====================================================================== +FAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='False') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp2p6mq4yg/run_tests.py", line 138, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='0') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpko38ovm1/run_tests.py", line 138, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='[]') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpg8u7ot4y/run_tests.py", line 138, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +====================================================================== +FAIL: test_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) (expression='DeferredIterable()') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 286, in test_all_non_none_returns_refuse_without_iterating_custom_objects + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_a_return (fixture.Case.test_a_return) ... ok\ntest_b_assertion (fixture.Case.test_b_assertion) ... FAIL\n\n======================================================================\nFAIL: test_b_assertion (fixture.Case.test_b_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpr88leoew/run_tests.py", line 138, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: body\n\nRan 2 tests\n', 'started_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_entered_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_finished_ids': ['fixture.Case.test_a_return', 'fixture.Case.test_b_assertion'], 'body_assertion_ids': ['fixture.Case.test_b_assertion'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_b_assertion', 'origin': 'body'}]} + +---------------------------------------------------------------------- +Ran 1 test in 0.273s + +FAILED (failures=4) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/original-method-shape-applicability.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/original-method-shape-applicability.json new file mode 100644 index 000000000..e78f8528b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/original-method-shape-applicability.json @@ -0,0 +1,864 @@ +{ + "schema_version": 1, + "scope": "Static direct selected-method AST shapes only, no test execution. Nested helper function/generator bodies are excluded from the enclosing selected method shape.", + "files": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py", + "sha256": "2ccdd956379bf3ddbc479a10604a10db7c26acee96c54c869c7a6bafc0f2dfeb", + "method_count": 31, + "methods": [ + { + "id": "WrapperTests.test_empty_coverage_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_duplicate_modules_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_missing_module_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_individual_olean_symlink_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_search_root_and_part_symlinks_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_expected_coverage_mismatch_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_source_change_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_part_change_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_new_private_part_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_tool_binding_change_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_missing_or_wrong_marker_fatal", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_timeout_fatal", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_memory_limit_applied", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_memory_hard_limit_before_spawn", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_boolean_arguments_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_valid_integer_and_float_timeouts", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_real_preexec_failure_is_structured", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_wait_errors_cannot_become_success", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_unreaped_child_stops_further_modules", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_strict_cli", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "WrapperTests.test_module_names_and_unknown_fields_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + } + ] + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_real_lean.py", + "sha256": "51ab210da908b4e3d74fe179c41a414abf4c53e88458db33f7934ae0010337d7", + "method_count": 9, + "methods": [ + { + "id": "RealLeanTests.test_good_public_private_inductive_all_parts", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_public_self_reference_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_private_self_reference_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_exact_module_no_prefix_glob", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_user_lean_path_cannot_shadow_checker", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_driver_missing_request_and_binding_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "RealLeanTests.test_cli_prepare_and_run", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + } + ] + }, + { + "path": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/baseline/kernel_replay/tests/test_mutation_harness.py", + "sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6", + "method_count": 14, + "methods": [ + { + "id": "MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_clean_identity_survives", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + } + ] + }, + { + "path": "/workspace/cbz-0/tools/layer_a/tests/test_auditor.py", + "sha256": "94532912255f92250046e0e85d2633b438245e635499d815340edfe4bb29890e", + "method_count": 72, + "methods": [ + { + "id": "SourceRules.test_lean_each_logical_escape_and_qualified_compiler_axiom_is_detected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_comment_strings_nested_comments_raw_strings_and_char_are_not_code", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_unicode_boundaries_and_escaped_identifiers_do_not_hide_exact_escape", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_lexical_incompleteness_and_interpolation_are_fatal_not_silent", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_macro_expansion_and_unsafe_trust_require_separate_certifier", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_adopted_public_lexer_covers_helpers_compiler_options_and_unicode_boundaries", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_reported_kernel_escape_names_and_native_config_layouts", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_unterminated_character_literals_are_never_silent", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_new_kernel_escape_names_inside_comments_and_strings_are_not_code", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_lean_explicit_imports_are_extracted_across_lines", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_lean_vacuity_candidates_have_declaration_location", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_axiom_audit_print_command_is_not_a_new_axiom_declaration", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_canonical_metadata_and_error_channels_fail_closed", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_canonical_numeric_boundaries_preserve_complete_owned_axiom_tokens", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_nested_string_placeholder_and_benign_literal_boundaries", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_lean_no_semantic_sat_claim_from_uninterpreted_hypotheses", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_exact_integer_fraction_program_and_alias_are_accepted", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_every_inexact_python_route_is_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_unhandled_python_constructs_are_explicit_not_skipped", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_callbacks_and_rebound_local_functions_cannot_smuggle_float_decisions", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_python_dynamic_code_aliases_and_relative_imports_are_explicit_gaps", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_lean_block_comment_separator_cannot_join_identifiers_into_escape", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_defined_reflective_loader_forms_fail_in_engineering_scope", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_import_module_primes_and_identifier_suffixes_are_extracted_completely", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_unsupported_import_tail_is_a_gap_after_a_valid_prefix", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_literal_import_operands_are_explicit_gaps_after_valid_prefix", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "SourceRules.test_engineering_float_is_scanned_but_not_mislabeled_mathematical", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_reported_hazards_fail_through_actual_manifest_auditor_interface", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_numeral_adjoining_owned_axiom_cannot_receive_static_pass", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_nested_quoted_throwerror_placeholder_cannot_receive_static_pass", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_bound_engineering_review_cannot_waive_defined_reflective_loader", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_known_unsupported_source_suffix_cannot_claim_a_supported_language", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_retained_text_source_requires_language_then_a_registered_module", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_mapped_external_text_module_cannot_skip_supported_source_analysis", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_primed_lean_module_after_valid_import_cannot_hide_quarantine", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_status_observation_binding_distinguishes_json_booleans_and_integers", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_complete_manifest_counts_every_file_and_is_deterministic", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_each_file_is_really_scanned_not_only_first", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_unclassified_unknown_skipped_and_extra_paths_fail_closed", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_duplicate_scope_and_unknown_schema_keys_are_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_empty_scope_cannot_manufacture_green", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_missing_unreadable_invalid_utf8_files_are_not_skipped", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_zero_mode_file_is_rejected_even_when_existing_descriptor_can_read", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_pin_hash_and_foundation_allowlist_cannot_be_weakened", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_foundation_names_cannot_authorize_new_owned_axioms", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_absolute_parent_normalization_and_symlink_alias_paths_are_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_source_relabeling_to_docs_or_binary_is_not_silent", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_engineering_requires_explicit_bound_nonmathematical_review", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_negative_fixture_retains_exact_violation_and_never_counts_as_clean", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_quarantine_requires_exact_boundary_and_scans_retained_source", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_closed_import_cannot_reach_quarantine_directly_or_transitively", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_unknown_module_alias_and_dynamic_import_fail_closed", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_python_import_alias_cannot_hide_quarantine", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_fraction_stdlib_exception_cannot_hide_a_mapped_local_quarantine", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_engineering_from_import_alias_checks_a_mapped_submodule_boundary", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_external_source_needs_immutable_pin_and_is_still_scanned", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_binary_proof_requires_bound_g2_g4_evidence", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_vacuity_missing_stale_and_false_nonvacuity_annotations_are_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_nonvacuous_claim_requires_content_bound_certificate", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_status_pass_requires_actual_bound_observation_not_aspiration", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_malformed_manifest_values_fail_with_findings_instead_of_crashing", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_archived_source_suffixes_and_wrong_explicit_language_cannot_hide_code", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_modules_cannot_point_to_documentation_in_place_of_source", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_classification_fields_are_not_silently_ignored_and_tree_pin_is_immutable", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_external_binary_proof_cannot_bypass_kernel_bindings_or_utf8_mode", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_file_hash_failure_does_not_prevent_violation_detection", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_nonvacuity_certificate_and_not_run_status_have_positive_binding_cases", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_malformed_vacuity_and_status_types_are_explicit_findings", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_exact_math_cannot_import_a_nonmathematical_fractions_shadow", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_binary_source_language_mismatch_is_a_finding_not_a_crash", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_cli_output_write_failure_has_distinct_nonzero_code", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "ManifestRules.test_cli_json_and_nonzero_failures_and_duplicate_json_keys", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + } + ] + }, + { + "path": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/baseline/layer_a/tests/test_mutation_runner.py", + "sha256": "347135c69335eaa74a62f5b6380057fff24e30eafcf57b8418de69bef1be7f7d", + "method_count": 11, + "methods": [ + { + "id": "MutationHarnessRules.test_unchanged_checker_survives_and_assertion_failure_kills_real_mutant", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessRules.test_invalid_checker_syntax_is_invalid_mutant_not_killed", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "MutationHarnessRules.test_mutant_that_only_crashes_is_not_counted_as_behavioral_kill", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_body_assertion_kills_and_identity_survives", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_setup_teardown_cleanup_assertions_cannot_kill", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_errors_skips_expected_failures_and_subtests_are_ambiguous", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_body_scoped_subtests_have_exact_parent_assertion_events", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_empty_duplicate_synthetic_and_rewritten_method_ids_are_rejected", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_assertion_event_provenance_rejects_duplicate_direct_failures", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_expected_population_is_bound_before_mutation", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + }, + { + "id": "LifecycleHarnessRules.test_missing_forged_or_noninteger_receipts_fail_closed", + "async_function": false, + "valued_return_lines": [], + "suspension_lines": [] + } + ] + } + ], + "all_original_selected_methods_are_sync_with_no_valued_return_or_suspension": true +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py new file mode 100644 index 000000000..80f7cd235 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +"""Only new lazy-body safeguards; old lifecycle and production cases are reused.""" +from pathlib import Path +import hashlib +import importlib.util +import json +import os +import shutil +import subprocess +import sys +import tempfile + +BASE = Path(__file__).resolve().parents[1] +WORK = BASE / 'work/kernel_replay' +OUT = BASE / 'evidence/kernel-lazy-guard-mutants' +OUT.mkdir(exist_ok=True) +GUARD = OUT / 'guard_run_tests.py' +GUARD.write_bytes((WORK / 'run_tests.py').read_bytes()) +spec = importlib.util.spec_from_file_location('trusted_classifier', WORK / 'mutations.py') +trusted = importlib.util.module_from_spec(spec) +spec.loader.exec_module(trusted) +sha = lambda data: hashlib.sha256(data).hexdigest() +def replacement(source, old, new): + if source.count(old) != 1: + raise ValueError('nonunique source mutant anchor: ' + old) + return source.replace(old, new, 1) +plan = [ + ('drop-pristine-lazy-shape-rejection', "identity is not None and not supported_method_shape(getattr(test, test._testMethodName))", 'False', 'test_declared_lazy_method_shapes_refuse_mixed_population_before_execution'), + ('drop-lazy-return-rejection', 'if is_lazy_return(value):', 'if False:', 'test_sync_lazy_returns_refuse_without_advancing_suspended_work'), + ('ignore-decorator-lazy-shape-links', "if not hasattr(current, '__wrapped__'):", 'if True:', 'test_wrapped_lazy_method_shapes_refuse_before_execution'), +] +results = [] +for optimize in (False, True): + mode = 'optimized' if optimize else 'normal' + for name, old, new, test in plan: + with tempfile.TemporaryDirectory(prefix='kernel-lazy-guard-mutant-') as tmp: + root = Path(tmp) / 'kernel_replay' + shutil.copytree(WORK, root, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + target = root / 'run_tests.py' + original = target.read_text() + changed = replacement(original, old, new) + compile(changed, str(target), 'exec') + target.write_text(changed) + output = OUT / (mode + '-' + name + '.json') + driver = Path(tmp) / 'monitor.py' + driver.write_text('import importlib.util,sys\nfrom pathlib import Path\n' + 's=importlib.util.spec_from_file_location("guard",sys.argv[1]);m=importlib.util.module_from_spec(s);s.loader.exec_module(m)\n' + 'm.ROOT=Path(sys.argv[2]);sys.argv=["guard","--output",sys.argv[3],"--test",sys.argv[4]]\n' + 'raise SystemExit(m.main())\n') + selection = 'test_mutation_harness.LazyBodyHarnessTests.' + test + command = [sys.executable, '-B', '-S', *(['-O'] if optimize else []), str(driver), str(GUARD), str(root), str(output), selection] + env = dict(os.environ) + env['PYTHONOPTIMIZE'] = '1' if optimize else '0' + p = subprocess.run(command, capture_output=True, text=True, timeout=30, env=env) + value = json.loads(output.read_text()) if output.exists() else {} + record = {'name': name, 'mode': mode, 'test': selection, + 'outcome': trusted.classify(value, p.returncode, [selection], [selection]), + 'returncode': p.returncode, 'original_sha256': sha(original.encode()), + 'mutated_sha256': sha(changed.encode()), 'guard_sha256': sha(GUARD.read_bytes()), + 'tests': value, 'stderr': p.stderr} + output.write_text(json.dumps(record, indent=2) + '\n') + results.append({k: v for k, v in record.items() if k not in ('tests', 'stderr')}) + print(mode + ' ' + name + ': ' + record['outcome'], flush=True) +report = {'schema_version': 1, 'scope': '3 new lazy-body safeguard source mutants in each mode; no original lifecycle or production mutant replay', + 'distinct_mutations': len(plan), 'executions': len(results), + 'ok': all(r['outcome'] == 'KILLED' for r in results), 'results': results} +(OUT / 'summary.json').write_text(json.dumps(report, indent=2) + '\n') +raise SystemExit(0 if report['ok'] else 1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py new file mode 100644 index 000000000..f27fe2030 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +"""Only new lazy-body safeguards; old lifecycle and production cases are reused.""" +from pathlib import Path +import hashlib +import importlib.util +import json +import os +import shutil +import subprocess +import sys +import tempfile + +BASE = Path(__file__).resolve().parents[1] +WORK = BASE / 'work/kernel_replay' +OUT = BASE / 'evidence/kernel-none-return-guard-mutant' +OUT.mkdir(exist_ok=True) +GUARD = OUT / 'guard_run_tests.py' +GUARD.write_bytes((WORK / 'run_tests.py').read_bytes()) +spec = importlib.util.spec_from_file_location('trusted_classifier', WORK / 'mutations.py') +trusted = importlib.util.module_from_spec(spec) +spec.loader.exec_module(trusted) +sha = lambda data: hashlib.sha256(data).hexdigest() +def replacement(source, old, new): + if source.count(old) != 1: + raise ValueError('nonunique source mutant anchor: ' + old) + return source.replace(old, new, 1) +plan = [ + ('drop-pristine-lazy-shape-rejection', "identity is not None and not supported_method_shape(getattr(test, test._testMethodName))", 'False', 'test_declared_lazy_method_shapes_refuse_mixed_population_before_execution'), + ('drop-lazy-return-rejection', 'if is_lazy_return(value):', 'if False:', 'test_sync_lazy_returns_refuse_without_advancing_suspended_work'), + ('ignore-decorator-lazy-shape-links', "if not hasattr(current, '__wrapped__'):", 'if True:', 'test_wrapped_lazy_method_shapes_refuse_before_execution'), +] +plan = [('drop-non-none-return-rejection', 'if value is not None:', 'if False:', + 'test_all_non_none_returns_refuse_without_iterating_custom_objects')] +results = [] +for optimize in (False, True): + mode = 'optimized' if optimize else 'normal' + for name, old, new, test in plan: + with tempfile.TemporaryDirectory(prefix='kernel-lazy-guard-mutant-') as tmp: + root = Path(tmp) / 'kernel_replay' + shutil.copytree(WORK, root, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + target = root / 'run_tests.py' + original = target.read_text() + changed = replacement(original, old, new) + compile(changed, str(target), 'exec') + target.write_text(changed) + output = OUT / (mode + '-' + name + '.json') + driver = Path(tmp) / 'monitor.py' + driver.write_text('import importlib.util,sys\nfrom pathlib import Path\n' + 's=importlib.util.spec_from_file_location("guard",sys.argv[1]);m=importlib.util.module_from_spec(s);s.loader.exec_module(m)\n' + 'm.ROOT=Path(sys.argv[2]);sys.argv=["guard","--output",sys.argv[3],"--test",sys.argv[4]]\n' + 'raise SystemExit(m.main())\n') + selection = 'test_mutation_harness.LazyBodyHarnessTests.' + test + command = [sys.executable, '-B', '-S', *(['-O'] if optimize else []), str(driver), str(GUARD), str(root), str(output), selection] + env = dict(os.environ) + env['PYTHONOPTIMIZE'] = '1' if optimize else '0' + p = subprocess.run(command, capture_output=True, text=True, timeout=30, env=env) + value = json.loads(output.read_text()) if output.exists() else {} + record = {'name': name, 'mode': mode, 'test': selection, + 'outcome': trusted.classify(value, p.returncode, [selection], [selection]), + 'returncode': p.returncode, 'original_sha256': sha(original.encode()), + 'mutated_sha256': sha(changed.encode()), 'guard_sha256': sha(GUARD.read_bytes()), + 'tests': value, 'stderr': p.stderr} + output.write_text(json.dumps(record, indent=2) + '\n') + results.append({k: v for k, v in record.items() if k not in ('tests', 'stderr')}) + print(mode + ' ' + name + ': ' + record['outcome'], flush=True) +report = {'schema_version': 1, 'scope': 'one refreshed final None-return policy guard mutant each mode; unchanged shape/decorator guard evidence reused', + 'distinct_mutations': len(plan), 'executions': len(results), + 'ok': all(r['outcome'] == 'KILLED' for r in results), 'results': results} +(OUT / 'summary.json').write_text(json.dumps(report, indent=2) + '\n') +raise SystemExit(0 if report['ok'] else 1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lazy-body.patch b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lazy-body.patch new file mode 100644 index 000000000..3c6292215 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lazy-body.patch @@ -0,0 +1,210 @@ +--- a/tools/kernel_replay/run_tests.py ++++ b/tools/kernel_replay/run_tests.py +@@ -21,6 +21,28 @@ + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name ++ ++ ++def supported_method_shape(method): ++ """Only synchronous ordinary functions/methods are supported test bodies. ++ ++ Inspect every advertised decorator link. Returning suspended work is checked ++ separately, since decorators may intentionally omit __wrapped__ metadata. ++ """ ++ try: ++ inspect.unwrap(method) # Reject cyclic decorator metadata. ++ except ValueError: ++ return False ++ current = method ++ while True: ++ if (not (inspect.isfunction(current) or inspect.ismethod(current)) ++ or inspect.isgeneratorfunction(current) ++ or inspect.iscoroutinefunction(current) ++ or inspect.isasyncgenfunction(current)): ++ return False ++ if not hasattr(current, '__wrapped__'): ++ return True ++ current = current.__wrapped__ + + + def selected_cases(suite): +@@ -124,7 +146,13 @@ + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: +- return original_body(*args, **kwargs) ++ value = original_body(*args, **kwargs) ++ if value is not None: ++ result.invalid_execution.append('selected synchronous method must return None') ++ if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: ++ value.close() # Closing a native unstarted coroutine executes no body. ++ return None ++ return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise +@@ -132,24 +160,6 @@ + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + # _Outcome calls addFailure *after* this wrapper unwinds. +- if inspect.iscoroutinefunction(original_body): +- @functools.wraps(original_body) +- async def async_body(*args, **kwargs): +- if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): +- result.invalid_execution.append('selected async method invoked outside body dispatch') +- return await original_body(*args, **kwargs) +- result.phase[id(test)] = 'body' +- result.body_entered_ids.append(method_id(test)) +- result.body_active.add(id(test)) +- try: +- return await original_body(*args, **kwargs) +- except BaseException as exc: +- result.body_exception[id(test)] = exc +- raise +- finally: +- result.body_active.discard(id(test)) +- result.body_finished_ids.append(method_id(test)) +- body = async_body + setattr(test, test._testMethodName, body) + + +@@ -166,6 +176,8 @@ + for test, identity in zip(cases, selected): + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') ++ if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): ++ invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +@@ -174,10 +186,10 @@ + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) +- for test in cases: +- if method_id(test) is not None: ++ if not population['invalid_population']: ++ for test in cases: + instrument(test, result) +- suite.run(result) ++ suite.run(result) + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() +--- a/tools/kernel_replay/tests/test_mutation_harness.py ++++ b/tools/kernel_replay/tests/test_mutation_harness.py +@@ -179,5 +179,113 @@ + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + ++class LazyBodyHarnessTests(unittest.TestCase): ++ """A call returning suspended work must never establish complete test execution.""" ++ ++ def run_lazy_fixture(self, methods, definitions='', listing=False): ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ events = root / 'events' ++ source = ('import unittest, functools\nfrom pathlib import Path\n' ++ 'def record(label):\n with Path(' + repr(str(events)) + ').open("a") as out: out.write(label + "\\n")\n' ++ + textwrap.dedent(definitions) + '\nclass Case(unittest.TestCase):\n' ++ + textwrap.indent(textwrap.dedent(methods), ' ')) ++ (root / 'tests/fixture.py').write_text(source) ++ output = root / 'result.json' ++ command = [sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', 'fixture.Case'] ++ if listing: ++ command.append('--list') ++ p = subprocess.run(command, capture_output=True, text=True, timeout=10) ++ self.assertTrue(output.is_file(), p.stderr) ++ value = json.loads(output.read_text()) ++ observed = events.read_text().splitlines() if events.exists() else [] ++ return mutations.classify(value, p.returncode), value, observed, p.stderr ++ ++ def test_ordinary_synchronous_body_positives_remain_supported(self): ++ survived, value, events, _ = self.run_lazy_fixture("def test_one(self): record('ordinary')") ++ self.assertEqual(survived, 'SURVIVED', value) ++ self.assertEqual(events, ['ordinary']) ++ killed, value, events, _ = self.run_lazy_fixture("def test_one(self):\n record('assertion')\n self.fail('real body assertion')") ++ self.assertEqual(killed, 'KILLED', value) ++ self.assertEqual(events, ['assertion']) ++ ++ def test_declared_lazy_method_shapes_refuse_mixed_population_before_execution(self): ++ for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self): record('lazy advanced')"): ++ with self.subTest(shape=lazy): ++ methods = lazy + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body assertion')" ++ outcome, value, events, _ = self.run_lazy_fixture(methods) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, [], value) ++ self.assertTrue(value['invalid_population'], value) ++ _, population, events, _ = self.run_lazy_fixture(methods, listing=True) ++ self.assertTrue(population['invalid_population'], population) ++ self.assertEqual(events, []) ++ ++ def test_wrapped_lazy_method_shapes_refuse_before_execution(self): ++ definitions = ''' ++ def wrap(method): ++ @functools.wraps(method) ++ def wrapper(*args, **kwargs): ++ record('decorator executed') ++ return method(*args, **kwargs) ++ return wrapper ++ ''' ++ for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self): record('lazy advanced')"): ++ with self.subTest(shape=lazy): ++ outcome, value, events, _ = self.run_lazy_fixture('@wrap\n' + lazy + "\ndef test_b_assertion(self): self.fail('body')", definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, [], value) ++ ++ def test_sync_lazy_returns_refuse_without_advancing_suspended_work(self): ++ definitions = ''' ++ def generator(): ++ record('generator advanced') ++ yield None ++ async def coroutine(): record('coroutine advanced') ++ async def async_generator(): ++ record('async generator advanced') ++ yield None ++ class Awaitable: ++ def __await__(self): ++ record('custom awaitable advanced') ++ yield None ++ ''' ++ for expression in ('generator()', 'coroutine()', 'async_generator()', 'Awaitable()'): ++ with self.subTest(expression=expression): ++ methods = "def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')" ++ outcome, value, events, stderr = self.run_lazy_fixture(methods, definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, ['outer method', 'ordinary assertion'], value) ++ self.assertTrue(value['invalid_population'], value) ++ self.assertNotIn('was never awaited', stderr) ++ ++ def test_decorator_without_wrapped_metadata_cannot_hide_lazy_return(self): ++ definitions = ''' ++ def hide(method): ++ def wrapper(*args, **kwargs): ++ record('decorator executed') ++ return method(*args, **kwargs) ++ return wrapper ++ ''' ++ outcome, value, events, _ = self.run_lazy_fixture("@hide\ndef test_a_lazy(self):\n record('lazy advanced')\n yield None\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, ['decorator executed', 'ordinary assertion'], value) ++ ++ def test_all_non_none_returns_refuse_without_iterating_custom_objects(self): ++ definitions = "class DeferredIterable:\n def __iter__(self):\n record('unknown iterable advanced')\n yield None" ++ for expression in ('False', '0', '[]', 'DeferredIterable()'): ++ with self.subTest(expression=expression): ++ outcome, value, events, _ = self.run_lazy_fixture("def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, ['outer method', 'ordinary assertion'], value) ++ ++ + if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch new file mode 100644 index 000000000..4f69e88d4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch @@ -0,0 +1,677 @@ +--- a/tools/kernel_replay/run_tests.py ++++ b/tools/kernel_replay/run_tests.py +@@ -1,6 +1,8 @@ + #!/usr/bin/env python3 +-"""Structured, fail-closed unittest runner used by G0 and mutations.""" ++"""Structured unittest execution; only complete selected test bodies grade mutants.""" + import argparse ++import functools ++import inspect + import io + import json + from pathlib import Path +@@ -8,28 +10,231 @@ + import unittest + + ROOT = Path(__file__).resolve().parent ++RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' ++ ++ ++def method_id(test): ++ """Use the actual selected method, rather than an overridable display id.""" ++ cls = type(test) ++ name = getattr(test, '_testMethodName', None) ++ if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' ++ or not isinstance(name, str) or not callable(getattr(test, name, None))): ++ return None ++ return cls.__module__ + '.' + cls.__qualname__ + '.' + name ++ ++ ++def supported_method_shape(method): ++ """Only synchronous ordinary functions/methods are supported test bodies. ++ ++ Inspect every advertised decorator link. Returning suspended work is checked ++ separately, since decorators may intentionally omit __wrapped__ metadata. ++ """ ++ try: ++ inspect.unwrap(method) # Reject cyclic decorator metadata. ++ except ValueError: ++ return False ++ current = method ++ while True: ++ if (not (inspect.isfunction(current) or inspect.ismethod(current)) ++ or inspect.isgeneratorfunction(current) ++ or inspect.iscoroutinefunction(current) ++ or inspect.isasyncgenfunction(current)): ++ return False ++ if not hasattr(current, '__wrapped__'): ++ return True ++ current = current.__wrapped__ ++ ++ ++def selected_cases(suite): ++ for test in suite: ++ if isinstance(test, unittest.TestSuite): ++ yield from selected_cases(test) ++ else: ++ yield test ++ ++ ++class LifecycleResult(unittest.TextTestResult): ++ def __init__(self, *args, **kwargs): ++ super().__init__(*args, **kwargs) ++ self.started_ids = [] ++ self.finished_ids = [] ++ self.body_entered_ids = [] ++ self.body_finished_ids = [] ++ self.body_assertion_ids = [] ++ self.lifecycle_failures = 0 ++ self.subtests = 0 ++ self.subtest_events = [] ++ self.assertion_events = [] ++ self.phase = {} ++ self.body_exception = {} ++ self.body_active = set() ++ self.dispatch_active = set() ++ self.lifecycle_depth = {} ++ self.invalid_execution = [] ++ ++ def startTest(self, test): ++ self.started_ids.append(method_id(test)) ++ self.phase[id(test)] = 'setup' ++ super().startTest(test) ++ ++ def stopTest(self, test): ++ self.finished_ids.append(method_id(test)) ++ super().stopTest(test) ++ ++ def addFailure(self, test, err): ++ if (self.phase.get(id(test)) == 'body' ++ and self.body_exception.get(id(test)) is err[1] ++ and isinstance(err[1], AssertionError)): ++ self.body_assertion_ids.append(method_id(test)) ++ self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) ++ else: ++ self.lifecycle_failures += 1 ++ super().addFailure(test, err) ++ ++ def addSubTest(self, test, subtest, err): ++ self.subtests += 1 ++ phase = self.phase.get(id(test)) ++ if phase == 'body' and id(test) not in self.body_active: ++ phase = 'outside-body' ++ if getattr(subtest, 'test_case', None) is not test: ++ phase = 'foreign-parent' ++ outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' ++ self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) ++ if err is not None and outcome == 'assertion': ++ if phase == 'body': ++ self.body_assertion_ids.append(method_id(test)) ++ self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) ++ else: ++ self.lifecycle_failures += 1 ++ super().addSubTest(test, subtest, err) ++ ++ ++def instrument(test, result): ++ """Keep body exception identity until unittest reports it after this call exits.""" ++ for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), ++ ('doCleanups', 'cleanup')): ++ original = getattr(test, name) ++ ++ def lifecycle(*args, _original=original, _phase=phase, **kwargs): ++ result.phase[id(test)] = _phase ++ result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 ++ try: ++ return _original(*args, **kwargs) ++ finally: ++ result.lifecycle_depth[id(test)] -= 1 ++ setattr(test, name, lifecycle) ++ original_dispatch = test._callTestMethod ++ ++ def dispatch(*args, **kwargs): ++ if result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') ++ return original_dispatch(*args, **kwargs) ++ result.dispatch_active.add(id(test)) ++ try: ++ return original_dispatch(*args, **kwargs) ++ finally: ++ result.dispatch_active.discard(id(test)) ++ test._callTestMethod = dispatch ++ original_body = getattr(test, test._testMethodName) ++ ++ @functools.wraps(original_body) ++ def body(*args, **kwargs): ++ if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('selected method invoked outside body dispatch') ++ return original_body(*args, **kwargs) ++ result.phase[id(test)] = 'body' ++ result.body_entered_ids.append(method_id(test)) ++ result.body_active.add(id(test)) ++ try: ++ value = original_body(*args, **kwargs) ++ if value is not None: ++ result.invalid_execution.append('selected synchronous method must return None') ++ if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: ++ value.close() # Closing a native unstarted coroutine executes no body. ++ return None ++ return value ++ except BaseException as exc: ++ result.body_exception[id(test)] = exc ++ raise ++ finally: ++ result.body_active.discard(id(test)) ++ result.body_finished_ids.append(method_id(test)) ++ # _Outcome calls addFailure *after* this wrapper unwinds. ++ setattr(test, test._testMethodName, body) ++ ++ ++def describe_suite(suite, selection): ++ cases = list(selected_cases(suite)) ++ selected = [method_id(test) for test in cases] ++ invalid = [] ++ if not selected: ++ invalid.append('empty selected population') ++ if any(item is None for item in selected): ++ invalid.append('synthetic or unsupported selected test') ++ if len(set(selected)) != len(selected): ++ invalid.append('duplicate selected method identity') ++ for test, identity in zip(cases, selected): ++ if identity is not None and test.id() != identity: ++ invalid.append('display identity does not match selected method') ++ if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): ++ invalid.append('unsupported selected method shape: ' + identity) ++ return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} ++ ++ ++def run_suite(suite, selection): ++ cases, population = describe_suite(suite, selection) ++ stream = io.StringIO() ++ result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), ++ descriptions=True, verbosity=2) ++ if not population['invalid_population']: ++ for test in cases: ++ instrument(test, result) ++ suite.run(result) ++ population['invalid_population'].extend(result.invalid_execution) ++ # Render the ordinary summary for humans; grading uses the structured fields. ++ result.printErrors() ++ stream.write(f'Ran {result.testsRun} tests\n') ++ value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, ++ **population, ++ 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), ++ 'errors': len(result.errors), 'skipped': len(result.skipped), ++ 'expected_failures': len(result.expectedFailures), ++ 'unexpected_successes': len(result.unexpectedSuccesses), ++ 'successful': result.wasSuccessful(), 'log': stream.getvalue()} ++ for name in ('started_ids', 'finished_ids', 'body_entered_ids', ++ 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', ++ 'subtest_events', 'assertion_events'): ++ value[name] = getattr(result, name) ++ return value + + + def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) ++ parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') +- stream = io.StringIO() +- result = unittest.TextTestRunner(stream=stream, verbosity=2).run(suite) +- value = {'tests_run': result.testsRun, 'assertion_failures': len(result.failures), +- 'errors': len(result.errors), 'skipped': len(result.skipped), +- 'expected_failures': len(result.expectedFailures), +- 'unexpected_successes': len(result.unexpectedSuccesses), +- 'successful': result.wasSuccessful(), 'log': stream.getvalue()} ++ selection = args.test or ['discover:test_*.py'] ++ if args.list: ++ _, population = describe_suite(suite, selection) ++ Path(args.output).write_text(json.dumps(population, indent=2) + '\n') ++ return 0 if population['selected_ids'] and not population['invalid_population'] else 1 ++ value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') +- return 0 if result.wasSuccessful() and result.testsRun and not result.skipped else 1 ++ complete = (not value['invalid_population'] and value['selected_ids'] ++ and all(value[key] == value['selected_ids'] for key in ++ ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) ++ return 0 if (complete and value['successful'] and not value['skipped'] ++ and not value['expected_failures'] and not value['unexpected_successes'] ++ and all(event['phase'] == 'body' and event['outcome'] == 'success' ++ for event in value['subtest_events']) ++ and not value['lifecycle_failures']) else 1 + + + if __name__ == '__main__': +--- a/tools/kernel_replay/mutations.py ++++ b/tools/kernel_replay/mutations.py +@@ -5,6 +5,7 @@ + import json + import os + from pathlib import Path ++import re + import shutil + import subprocess + import sys +@@ -13,14 +14,71 @@ + ROOT = Path(__file__).resolve().parent + + +-def classify(value, code): +- if (code not in (0, 1) or not value.get('tests_run') or value.get('errors') +- or value.get('skipped') or value.get('expected_failures') +- or value.get('unexpected_successes')): +- return 'ERROR' +- if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('successful'): ++def classify(value, code, expected_selection=None, expected_ids=None): ++ """Grade only trusted runner receipts; legacy/log-only summaries fail closed. ++ ++ This validates accounting, not an adversarial author's fabricated JSON. The ++ receipt must come from the runner subprocess whose source is custody-bound. ++ """ ++ if (not isinstance(value, dict) or type(code) is not int or code not in (0, 1) ++ or value.get('receipt_schema') != 'cbz-unittest-lifecycle-v1' ++ or type(value.get('successful')) is not bool): ++ return 'ERROR' ++ counts = ('tests_run', 'assertion_failures', 'errors', 'skipped', ++ 'expected_failures', 'unexpected_successes', 'lifecycle_failures', 'subtests') ++ if any(type(value.get(key)) is not int or value[key] < 0 for key in counts): ++ return 'ERROR' ++ if any(value[key] for key in ('errors', 'skipped', 'expected_failures', ++ 'unexpected_successes', 'lifecycle_failures')): ++ return 'ERROR' ++ if value.get('invalid_population') != []: ++ return 'ERROR' ++ selection = value.get('selection') ++ if (not isinstance(selection, list) or not selection ++ or any(not isinstance(item, str) or not item for item in selection) ++ or expected_selection is not None and selection != expected_selection): ++ return 'ERROR' ++ keys = ('selected_ids', 'started_ids', 'finished_ids', 'body_entered_ids', ++ 'body_finished_ids', 'body_assertion_ids') ++ for key in keys: ++ ids = value.get(key) ++ if (not isinstance(ids, list) or any(not isinstance(item, str) or not re.fullmatch(r'(?:[A-Za-z_]\w*\.){2,}[A-Za-z_]\w*', item) ++ or item.startswith('unittest.loader.') for item in ids) ++ or key != 'body_assertion_ids' and len(ids) != len(set(ids))): ++ return 'ERROR' ++ selected = value['selected_ids'] ++ if (expected_ids is not None and selected != expected_ids ++ or any(not any(selector == 'discover:test_*.py' or identity == selector ++ or identity.startswith(selector + '.') for selector in selection) ++ for identity in selected)): ++ return 'ERROR' ++ if (not selected or value['tests_run'] != len(selected) ++ or any(value[key] != selected for key in keys[1:5]) ++ or any(item not in selected for item in value['body_assertion_ids']) ++ or value['assertion_failures'] != len(value['body_assertion_ids'])): ++ return 'ERROR' ++ events = value.get('subtest_events') ++ assertions = value.get('assertion_events') ++ if not isinstance(events, list) or not isinstance(assertions, list) or value['subtests'] != len(events): ++ return 'ERROR' ++ for event in events: ++ if (not isinstance(event, dict) or set(event) != {'parent_id', 'phase', 'outcome'} ++ or event['parent_id'] not in selected or event['phase'] != 'body' ++ or event['outcome'] not in ('success', 'assertion')): ++ return 'ERROR' ++ for event in assertions: ++ if (not isinstance(event, dict) or set(event) != {'parent_id', 'origin'} ++ or event['parent_id'] not in selected or event['origin'] not in ('body', 'subtest')): ++ return 'ERROR' ++ direct = [event['parent_id'] for event in assertions if event['origin'] == 'body'] ++ if (len(set(direct)) != len(direct) ++ or value['body_assertion_ids'] != [event['parent_id'] for event in assertions] ++ or [event['parent_id'] for event in assertions if event['origin'] == 'subtest'] != ++ [event['parent_id'] for event in events if event['outcome'] == 'assertion']): ++ return 'ERROR' ++ if code == 1 and value['assertion_failures'] > 0 and value['successful'] is False: + return 'KILLED' +- if code == 0 and value.get('successful') and value.get('assertion_failures') == 0: ++ if code == 0 and value['successful'] is True and value['assertion_failures'] == 0: + return 'SURVIVED' + return 'ERROR' + +@@ -136,7 +194,18 @@ + evidence = ROOT / ('evidence/mutations' if group == 'all' else 'evidence/resource-mutations') + evidence.mkdir(parents=True, exist_ok=True) + results = [] ++ populations = {} + for name, filename, old, new, test in plan: ++ if test not in populations: ++ population_path = evidence / ('population-' + str(len(populations)) + '.json') ++ listed = subprocess.run([sys.executable, '-B', '-S', str(ROOT / 'run_tests.py'), ++ '--output', str(population_path), '--test', test, '--list'], ++ capture_output=True, text=True, timeout=15) ++ population = json.loads(population_path.read_text()) if population_path.exists() else {} ++ if (listed.returncode != 0 or population.get('invalid_population') != [] ++ or not population.get('selected_ids') or population.get('selection') != [test]): ++ raise ValueError('cannot bind unchanged selected test population: ' + test) ++ populations[test] = population['selected_ids'] + with tempfile.TemporaryDirectory(dir=ROOT / 'evidence', prefix='mutant-') as d: + work = Path(d) / 'kernel_replay' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) +@@ -153,7 +222,8 @@ + p = subprocess.run(command, capture_output=True, text=True, timeout=90) + value = json.loads(result_path.read_text()) if result_path.exists() else {} + record = {'name': name, 'file': filename, 'test': test, +- 'outcome': classify(value, p.returncode), 'returncode': p.returncode, ++ 'outcome': classify(value, p.returncode, [test], populations[test]), 'returncode': p.returncode, ++ 'expected_selected_ids': populations[test], + 'original_sha256': digest(original.encode()), + 'mutated_sha256': digest(changed.encode()), 'tests': value, + 'stdout': p.stdout, 'stderr': p.stderr} +--- a/tools/kernel_replay/tests/test_mutation_harness.py ++++ b/tools/kernel_replay/tests/test_mutation_harness.py +@@ -1,25 +1,290 @@ +-"""Mutation accounting cannot turn errors, skips, or no tests into kills.""" ++"""Real runner controls for body-only mutation kills and complete selected populations.""" ++import copy + import importlib.util ++import json + from pathlib import Path ++import shutil ++import subprocess ++import sys ++import tempfile ++import textwrap + import unittest + + ROOT = Path(__file__).resolve().parents[1] ++_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') ++mutations = importlib.util.module_from_spec(_spec) ++_spec.loader.exec_module(mutations) + + + class MutationHarnessTests(unittest.TestCase): +- def test_only_clean_assertion_failure_is_a_kill(self): +- spec = importlib.util.spec_from_file_location('mutations', ROOT / 'mutations.py') +- mod = importlib.util.module_from_spec(spec) +- spec.loader.exec_module(mod) +- clean = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, +- expected_failures=0, unexpected_successes=0, successful=False) +- self.assertEqual(mod.classify(clean, 1), 'KILLED') +- self.assertEqual(mod.classify({**clean, 'assertion_failures': 0, 'successful': True}, 0), 'SURVIVED') +- for changes, code in (({'tests_run': 0}, 1), ({'errors': 1}, 1), +- ({'skipped': 1}, 1), ({'expected_failures': 1}, 1), +- ({'unexpected_successes': 1}, 1), ({}, 2), ({}, -9)): +- with self.subTest(changes=changes, code=code): +- self.assertEqual(mod.classify({**clean, **changes}, code), 'ERROR') ++ def run_fixture(self, methods, selection='fixture.Case', module_tail=''): ++ source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ (root / 'tests/fixture.py').write_text(source) ++ output = root / 'result.json' ++ p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', selection], ++ capture_output=True, text=True, timeout=10) ++ self.assertTrue(output.exists(), p.stderr) ++ value = json.loads(output.read_text()) ++ return mutations.classify(value, p.returncode), value, p.returncode ++ ++ def test_setup_assertion_is_not_a_kill(self): ++ outcome, value, _ = self.run_fixture(''' ++ def setUp(self): self.fail('setup only') ++ def test_one(self): pass ++ ''') ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_body_assertion_kills_after_all_selected_bodies_finish(self): ++ outcome, value, _ = self.run_fixture(''' ++ def test_one(self): self.fail('body assertion') ++ def test_two(self): pass ++ ''') ++ self.assertEqual(outcome, 'KILLED', value) ++ self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) ++ self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) ++ self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) ++ ++ def test_dispatch_hook_assertion_without_selected_method_is_error(self): ++ outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_selected_method_invoked_from_lifecycle_is_error(self): ++ for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", ++ "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", ++ "def tearDown(self): self.test_one()\ndef test_one(self): pass", ++ "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_clean_identity_survives(self): ++ outcome, value, _ = self.run_fixture('def test_one(self): pass') ++ self.assertEqual(outcome, 'SURVIVED', value) ++ ++ def test_lifecycle_failures_never_kill_even_with_body_assertion(self): ++ cases = [ ++ "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", ++ "def test_one(self): self.addCleanup(self.fail, 'cleanup')", ++ "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", ++ "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", ++ "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", ++ "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", ++ "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", ++ ] ++ for source in cases: ++ with self.subTest(source=source): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_errors_skips_and_expected_failures_are_errors(self): ++ cases = [ ++ "def test_one(self): raise RuntimeError('body runtime')", ++ "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", ++ "@unittest.skip('skip')\ndef test_one(self): pass", ++ "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", ++ "@unittest.expectedFailure\ndef test_one(self): pass", ++ ] ++ for source in cases: ++ with self.subTest(source=source): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): ++ for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), ++ ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'KILLED', value) ++ self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) ++ self.assertEqual(value['assertion_failures'], failures) ++ outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") ++ self.assertEqual(outcome, 'SURVIVED', value) ++ ++ def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): ++ outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_lifecycle_subtests_and_subtest_errors_are_errors(self): ++ for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", ++ "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", ++ "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): ++ cases = [ ++ ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), ++ ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), ++ ('def test_one(self): pass', 'fixture.Missing', ''), ++ ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), ++ ] ++ for source, selection, tail in cases: ++ with self.subTest(selection=selection, tail=tail): ++ outcome, value, _ = self.run_fixture(source, selection, tail) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_population_listing_does_not_execute_fixtures_or_bodies(self): ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") ++ output = root / 'population.json' ++ p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', 'fixture.Case', '--list'], ++ capture_output=True, text=True, timeout=10) ++ self.assertEqual(p.returncode, 0, p.stderr) ++ self.assertEqual(json.loads(output.read_text()), ++ {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], ++ 'invalid_population': []}) ++ ++ def test_summary_without_lifecycle_receipt_fails_closed(self): ++ old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, ++ expected_failures=0, unexpected_successes=0, successful=False) ++ self.assertEqual(mutations.classify(old, 1), 'ERROR') ++ self.assertEqual(mutations.classify({}, 1), 'ERROR') ++ self.assertEqual(mutations.classify(None, 1), 'ERROR') ++ ++ def test_forged_or_missing_accounting_is_error(self): ++ _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') ++ for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', ++ 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', ++ 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): ++ with self.subTest(missing=key): ++ value = copy.deepcopy(receipt) ++ value.pop(key, None) ++ self.assertEqual(mutations.classify(value, code), 'ERROR') ++ for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, ++ {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, ++ {'body_entered_ids': []}, {'body_finished_ids': []}, ++ {'finished_ids': []}, {'body_assertion_ids': []}, ++ {'body_assertion_ids': ['fixture.Case.test_forged']}, ++ {'selected_ids': ['synthetic']}, ++ {'selected_ids': ['unittest.loader._FailedTest.test_one']}, ++ {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, ++ {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, ++ {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, ++ {'unexpected_successes': 1}, {'assertion_failures': 2}, ++ {'subtests': 1}, {'assertion_events': []}, ++ {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): ++ with self.subTest(changes=changes): ++ self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') ++ self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') ++ self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') ++ self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') ++ for exit_code in (2, -9, True): ++ self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') ++ ++ ++class LazyBodyHarnessTests(unittest.TestCase): ++ """A call returning suspended work must never establish complete test execution.""" ++ ++ def run_lazy_fixture(self, methods, definitions='', listing=False): ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ events = root / 'events' ++ source = ('import unittest, functools\nfrom pathlib import Path\n' ++ 'def record(label):\n with Path(' + repr(str(events)) + ').open("a") as out: out.write(label + "\\n")\n' ++ + textwrap.dedent(definitions) + '\nclass Case(unittest.TestCase):\n' ++ + textwrap.indent(textwrap.dedent(methods), ' ')) ++ (root / 'tests/fixture.py').write_text(source) ++ output = root / 'result.json' ++ command = [sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', 'fixture.Case'] ++ if listing: ++ command.append('--list') ++ p = subprocess.run(command, capture_output=True, text=True, timeout=10) ++ self.assertTrue(output.is_file(), p.stderr) ++ value = json.loads(output.read_text()) ++ observed = events.read_text().splitlines() if events.exists() else [] ++ return mutations.classify(value, p.returncode), value, observed, p.stderr ++ ++ def test_ordinary_synchronous_body_positives_remain_supported(self): ++ survived, value, events, _ = self.run_lazy_fixture("def test_one(self): record('ordinary')") ++ self.assertEqual(survived, 'SURVIVED', value) ++ self.assertEqual(events, ['ordinary']) ++ killed, value, events, _ = self.run_lazy_fixture("def test_one(self):\n record('assertion')\n self.fail('real body assertion')") ++ self.assertEqual(killed, 'KILLED', value) ++ self.assertEqual(events, ['assertion']) ++ ++ def test_declared_lazy_method_shapes_refuse_mixed_population_before_execution(self): ++ for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self): record('lazy advanced')"): ++ with self.subTest(shape=lazy): ++ methods = lazy + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body assertion')" ++ outcome, value, events, _ = self.run_lazy_fixture(methods) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, [], value) ++ self.assertTrue(value['invalid_population'], value) ++ _, population, events, _ = self.run_lazy_fixture(methods, listing=True) ++ self.assertTrue(population['invalid_population'], population) ++ self.assertEqual(events, []) ++ ++ def test_wrapped_lazy_method_shapes_refuse_before_execution(self): ++ definitions = ''' ++ def wrap(method): ++ @functools.wraps(method) ++ def wrapper(*args, **kwargs): ++ record('decorator executed') ++ return method(*args, **kwargs) ++ return wrapper ++ ''' ++ for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", ++ "async def test_a_lazy(self): record('lazy advanced')"): ++ with self.subTest(shape=lazy): ++ outcome, value, events, _ = self.run_lazy_fixture('@wrap\n' + lazy + "\ndef test_b_assertion(self): self.fail('body')", definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, [], value) ++ ++ def test_sync_lazy_returns_refuse_without_advancing_suspended_work(self): ++ definitions = ''' ++ def generator(): ++ record('generator advanced') ++ yield None ++ async def coroutine(): record('coroutine advanced') ++ async def async_generator(): ++ record('async generator advanced') ++ yield None ++ class Awaitable: ++ def __await__(self): ++ record('custom awaitable advanced') ++ yield None ++ ''' ++ for expression in ('generator()', 'coroutine()', 'async_generator()', 'Awaitable()'): ++ with self.subTest(expression=expression): ++ methods = "def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')" ++ outcome, value, events, stderr = self.run_lazy_fixture(methods, definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, ['outer method', 'ordinary assertion'], value) ++ self.assertTrue(value['invalid_population'], value) ++ self.assertNotIn('was never awaited', stderr) ++ ++ def test_decorator_without_wrapped_metadata_cannot_hide_lazy_return(self): ++ definitions = ''' ++ def hide(method): ++ def wrapper(*args, **kwargs): ++ record('decorator executed') ++ return method(*args, **kwargs) ++ return wrapper ++ ''' ++ outcome, value, events, _ = self.run_lazy_fixture("@hide\ndef test_a_lazy(self):\n record('lazy advanced')\n yield None\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, ['decorator executed', 'ordinary assertion'], value) ++ ++ def test_all_non_none_returns_refuse_without_iterating_custom_objects(self): ++ definitions = "class DeferredIterable:\n def __iter__(self):\n record('unknown iterable advanced')\n yield None" ++ for expression in ('False', '0', '[]', 'DeferredIterable()'): ++ with self.subTest(expression=expression): ++ outcome, value, events, _ = self.run_lazy_fixture("def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) ++ self.assertEqual(outcome, 'ERROR', value) ++ self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + + + if __name__ == '__main__': diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/PUBLICATION.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/PUBLICATION.json new file mode 100644 index 000000000..0eb56232b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/PUBLICATION.json @@ -0,0 +1,552 @@ +{ + "destination_root": "cbz/contributions/math514/kernel_replay", + "files": [ + { + "source": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "destination": "cbz/contributions/math514/kernel_replay/ExactReplay.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/LIFECYCLE_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/LIFECYCLE_FIX.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/PUBLICATION.json", + "destination": "cbz/contributions/math514/kernel_replay/PUBLICATION.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/README.md", + "destination": "cbz/contributions/math514/kernel_replay/README.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/REGISTRY.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/RESOURCE_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/RESOURCE_FIX.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/SPEC.md", + "destination": "cbz/contributions/math514/kernel_replay/SPEC.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/STATUS_CORRECTION.md", + "destination": "cbz/contributions/math514/kernel_replay/STATUS_CORRECTION.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/fixture-g2-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/fixture-g2-rejection.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-additional-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-additional-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-applicable-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-applicable-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-initial-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-initial-mutations.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-mutations.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-additional-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-additional-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-applicable.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-applicable.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-cleanup-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-cleanup-red.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-mutations.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-preexec-test.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-preexec-test.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-red-initial.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-red-initial.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-red.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-wrapper-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-wrapper-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-import-shadow-failure.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-import-shadow-failure.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-low-address-limit-failures.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-low-address-limit-failures.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-real-symlink-replay.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-real-symlink-replay.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/mutations.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/baseline/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel-first-generation.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-first-generation.patch" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel.patch" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/REPORT.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REPORT.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/allow-artifact-symlink.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/allow-artifact-symlink.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/concurrent-module-processes.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/concurrent-module-processes.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/empty-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/empty-coverage.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/exported-part-only.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/exported-part-only.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-completion-marker.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-completion-marker.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-memory-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-memory-limit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-nonzero-exit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-nonzero-exit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-source-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-source-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-timeout.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-tool-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-tool-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/prefix-expansion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/prefix-expansion.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/preload-target-self-reference.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/preload-target-self-reference.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/skip-kernel-replay.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/skip-kernel-replay.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/truncate-module-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/truncate-module-coverage.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/untrusted-checker-search-path.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/untrusted-checker-search-path.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-BadPrivate.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-BadPrivate.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-BadPublic.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-BadPublic.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-Good.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-Good.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-UnapprovedAxiom.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-UnapprovedAxiom.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/mutations.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/test_kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/test_kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/empty-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/empty-coverage.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-source-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-source-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-timeout.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-replay-independent-review.md", + "destination": "cbz/contributions/math514/kernel_replay/independent-review.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/mutations.py" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-resource-fix-report.json", + "destination": "cbz/contributions/math514/kernel_replay/resource-fix-report.json" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-resource-fix-report.md", + "destination": "cbz/contributions/math514/kernel_replay/resource-fix-report.md" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-resource-postfix-review.md", + "destination": "cbz/contributions/math514/kernel_replay/resource-postfix-review.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPublic.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_mutation_harness.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/test_real_lean.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_real_lean.py" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-replay-tool-report.json", + "destination": "cbz/contributions/math514/kernel_replay/tool-report.json" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-replay-tool-report.md", + "destination": "cbz/contributions/math514/kernel_replay/tool-report.md" + } + ], + "excluded_generated": [ + "__pycache__", + "*.pyc", + "compiled fixture artifacts", + "temporary directories", + "runtime diagnostic Lean file" + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/README.md b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/README.md new file mode 100644 index 000000000..f60efa340 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/README.md @@ -0,0 +1,65 @@ +# Bounded exact-module Lean kernel replay + +This adapter invokes the installed `LeanChecker.replayFromImports` once in each fresh Lean process. It removes the upstream CLI's prefix expansion and concurrent per-module tasks while preserving its kernel replay routine. It is a scoped G4 tool, not an independent proof checker or a complete CBZ gate suite. + +Requirements: Linux, Python 3 standard library, and a complete Lean 4.34.1 toolchain containing `bin/lean`, `lib/lean/LeanChecker.olean`, `lib/lean/Lean/Replay.olean`, and their corresponding installed source files. No Lake invocation, package download or native build is required. The driver is evaluated by plain `lean -j1 ExactReplay.lean`, because importing `LeanChecker` already imports upstream's root `main`; using `lean --run` would invoke its unsuitable CLI. + +Use absolute, canonical paths without symlinks for artifact roots and olean files/parts. The sysroot library takes precedence over supplied `LEAN_PATH` entries so a project cannot shadow the imported checker. Only explicit ASCII Lean module identifiers are accepted. Unknown arguments, including `--help`, fail; `python3 kernel_replay.py help` prints usage. + +From a fresh clone's repository root, use the published contribution path below. This example requires `elan` and an already installed Lean 4.34.1 toolchain selected by the repository's pinned toolchain setting. Without `elan`, set `LEAN=/absolute/lean-4.34.1/bin/lean` instead. Historical G0 receipts retain the actual author-workspace paths recorded when those checks ran; these portable usage examples do not rewrite that evidence. + +```bash +TOOL="$PWD/cbz/contributions/math514/kernel_replay" +LEAN="$(elan which lean)" + +# Include every module from the caller's independently complete owned-module inventory. +python3 "$TOOL/kernel_replay.py" prepare \ + --lean "$LEAN" \ + --lean-path /absolute/project/.lake/build/lib/lean \ + --lean-path /absolute/mathlib/.lake/build/lib/lean \ + --module ExactModule=/absolute/project/ExactModule.lean \ + --module AnotherModule=/absolute/project/AnotherModule.lean \ + --context /absolute/project/lean-toolchain \ + --context /absolute/project/lake-manifest.json \ + --output /absolute/evidence/replay-manifest.json + +python3 "$TOOL/kernel_replay.py" run /absolute/evidence/replay-manifest.json \ + --memory-mib 16384 --timeout-seconds 600 \ + --output /absolute/evidence/replay-report.json + +# The one-module convenience command uses the same manifest and replay checks. +python3 "$TOOL/kernel_replay.py" one ExactModule \ + --lean "$LEAN" --lean-path /absolute/project/.lake/build/lib/lean \ + --source /absolute/project/ExactModule.lean \ + --memory-mib 16384 --timeout-seconds 600 \ + --output /absolute/evidence/one-module-report.json +``` + +Repeat `--lean-path`, `--module`, and `--context` as needed. No glob, prefix expansion, implicit module or skip option exists. `prepare` binds every source, available exported/server/private olean part, executable and checker implementation. `run` checks exact nonempty coverage, validates bindings before/after execution, and waits for each process before starting the next. It requires exit zero and exactly one matching success marker. A failed child remains fatal to overall status even if other modules pass. Reports contain commands, times, bounds, hashes and output tails. CLI exit codes: 0 successful scoped replay/preparation, 1 non-green replay report, 2 malformed CLI/input/preparation failure. Preserve failed reports. + +Resource quantities are validated before spawning. Memory must be an integer from 64 MiB through `min(sys.maxsize, finite inherited RLIMIT_AS hard limit) // 1048576`; an unlimited inherited hard limit contributes no cap. This conservative Linux platform-integer ceiling excludes the unlimited sentinel, rejects values the child cannot install, and never silently clamps a request. Timeout must be an integer or float in `(0, min(floor(threading.TIMEOUT_MAX), 2147483)]` seconds. The second ceiling is the signed 32-bit poll-millisecond range rounded down to whole seconds. Booleans, nonfinite values and oversized integers are rejected without float conversion or a child process. Reports record the effective ceilings. + +Spawn and wait `OSError`, `SubprocessError`, `OverflowError` and `ValueError` become structured non-green reports. A timeout or abnormal wait sends SIGKILL to the process group, attempts a direct child kill if group signaling fails, and waits at most one second to reap. A normal killable child is reaped before scheduling continues. If the OS refuses signaling/reaping (for example an uninterruptible kernel wait), the adapter reports `ERROR` with the PID and cleanup diagnostics, then stops further modules; users must resolve that OS-level process. Finite cleanup cannot guarantee forced termination of an uninterruptible child. An error remains `ERROR` even if cleanup observes exit zero and a matching success marker. + +`--memory-mib` limits **virtual address space** with Linux `RLIMIT_AS`; it is not an RSS measurement or a replacement for the enclosing cgroup's physical memory limit. Tiny-driver diagnostics observed about 6.2 GiB virtual reservation and 614 MiB RSS. A 2 GiB address-space limit aborted during thread creation before checking; fixture replay passed with an explicit 8192 MiB cap. Individual real modules can still exceed memory or time bounds. The initial Math core exit-137 OOM at16GiB remains retained failed-run evidence. The canonical handoff already records a later successful same-source complete Math-core gate with `LEAN_NUM_THREADS=2` at8151; see [the immutable component receipt](https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json). Reuse that completed evidence: this adapter is a separately verified exact-scheduling option and does not require another Math-core replay. Its tiny fixtures alone do not establish every project module's resource requirement. + +The source and compiled hashes are separate bindings; G3 build evidence must establish that the compiled artifacts came from those sources. The report covers only declared targets and explicit context files. Supply all dependency bindings required by the intended evidence claim, and use a stable input tree. A hand-selected subset does not establish complete project coverage. Symlinked artifact roots/components/files/parts are rejected because upstream selects private/server siblings by lexical filename; canonicalizing a single file could otherwise bind different parts from those replayed. + +Upstream reads all available olean parts, uses the most private constant map, and checks safe total declarations in an **import-only** environment. It handles inductive declarations and checks the generated constructors/recursors. Its intentional exclusion of unsafe and partial definitions remains in effect. Imported dependencies require their own coverage/evidence. Kernel validity permits axioms; `g2_status` always remains `NOT_ASSESSED`. The included axiom fixture is kernel-valid and is rejected by a separate explicit fixture-policy check. That check illustrates the G2/G4 distinction; it is not a production all-declaration approved-axiom auditor. G2 is still a separate blocking obligation. + +The mutation grader also has a later [lifecycle repair](LIFECYCLE_FIX.md):14 affected harness methods and10 distinct safeguard mutants, with exact selected-population/body-assertion accounting. The current54 test methods comprise31 unchanged wrapper,9 unchanged real-Lean and14 current harness methods. This is composed evidence, not one fresh full54-test run. Resource-only results below describe their historical generation at9c94ff6; the old one-method synthetic harness fixture has been replaced by stricter real execution controls and preserved as source history. + +Run G0 only for changed tooling or uncovered obligations; reuse applicable evidence on unchanged material. The resource-boundary repair changed the wrapper and its tests, so its affected checks are: + +```bash +export CBZ_TEST_LEAN="$LEAN" +python3 "$TOOL/run_tests.py" --output "$TOOL/evidence/g0-wrapper-current.json" \ + --test test_kernel_replay.WrapperTests --test test_mutation_harness.MutationHarnessTests +python3 "$TOOL/mutations.py" --group wrapper --output "$TOOL/evidence/g0-wrapper-mutations-current.json" +``` + +Resource generation evidence consists of 30 passing tests, two additional passing tests (one repeats the strengthened memory oracle), and one actual preexec-failure test: 32 distinct fresh tests, including 14 new resource tests. Nineteen current-source wrapper mutants were killed by actual assertion failures: ten original wrapper cases and nine new resource cases. The memory mutant was then rechecked only because its test oracle changed. These are separate from the preserved original 27-test/16-mutation receipts for wrapper SHA-256 `416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293`. The nine unchanged real-Lean tests and six real-driver/import-trust mutants retain their earlier applicable evidence; no real Lean fixture or project proof was replayed for this repair. See [RESOURCE_FIX.md](RESOURCE_FIX.md) and `evidence/g0-resource-applicable.json` for the exact evidence split. The default unfiltered runners still support a full suite when a new change warrants it. + +The real fixtures cover public/private proofs, data, inductives, exact-module behavior, installed-checker import trust and module-file symlink rejection. `BadPublic.lean` and `BadPrivate.lean` intentionally inject self-referential proofs through the public declaration API with fixture-local `debug.skipKernelTC`. They and `UnapprovedAxiom.lean` are quarantined test data, never closed mathematical modules. The exported-only and target-preloading mutants demonstrate why private parts and an import-only replay environment are required. Mutation copies are isolated and disposable; only complete custody-bound selected-body assertion evidence counts as a kill. Lifecycle assertions, errors, skips, empty/incomplete populations and timeouts are non-green harness outcomes. Initial survivors and erroneous historical adapter receipts are retained as failed tooling evidence, never certification. + +Ownership, gate boundaries, publication mapping and canonical registry/ledger payload are in `REGISTRY.json`. The canonical writer integrates that payload; this contribution does not edit shared canonical surfaces. diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/REGISTRY.json b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/REGISTRY.json new file mode 100644 index 000000000..e3e016112 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/REGISTRY.json @@ -0,0 +1,175 @@ +{ + "id": "cbz-kernel-exact-replay-v1", + "status": "COMPLETE_SCOPED_TOOL_REGISTRY_PAYLOAD", + "owner": "CBZ tooling / canonical writer integration", + "purpose": "Bounded serial exact-module scheduling of installed LeanChecker.replayFromImports, with target source/artifact bindings and fail-closed coverage/error handling.", + "associated_criteria": [ + "G0 auditor self-test/mutations", + "G4 scoped kernel replay", + "G11 complete documented tooling" + ], + "gates_not_claimed": [ + "G2 all-declaration approved-axiom audit", + "complete project G4 coverage", + "CBZ-0" + ], + "commands": { + "help": "python3 kernel_replay.py help", + "prepare": "python3 kernel_replay.py prepare --lean ABS_LEAN --lean-path ABS_OLEAN_ROOT --module NAME=ABS_SOURCE --output MANIFEST.json", + "run": "python3 kernel_replay.py run MANIFEST.json --memory-mib 16384 --timeout-seconds 600 --output REPORT.json", + "g0": "python3 run_tests.py --output evidence/g0-tests.json", + "mutations": "python3 mutations.py --output evidence/g0-mutations.json", + "g0_resource": "python3 run_tests.py --output evidence/g0-wrapper-current.json --test test_kernel_replay.WrapperTests --test test_mutation_harness.MutationHarnessTests", + "mutations_resource": "python3 mutations.py --group wrapper --output evidence/g0-wrapper-mutations-current.json", + "g0_lifecycle": "python3 -B -S run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness.json", + "g0_lifecycle_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness-optimized.json" + }, + "self_verification": { + "status": "PASS_SCOPED_COMPOSED_LIFECYCLE_REPAIR", + "generation": "lifecycle-v3", + "single_full_suite_claim": false, + "current_test_methods": 54, + "fresh_affected_harness_methods": 14, + "reused_unchanged_wrapper_methods": 31, + "reused_unchanged_real_lean_methods": 9, + "fresh_distinct_grader_safeguard_mutants": 10, + "safeguard_mutant_executions_across_source_generations": 13, + "historical_production_mutations_applicable": 25, + "evidence": "evidence/lifecycle/evidence/kernel-delivery.json", + "review": "evidence/lifecycle/evidence/independent-lifecycle-review.json", + "historical_resource_generation": { + "status": "PASS_RESOURCE_BOUNDARY_G0", + "generation": "resource-boundary-v2", + "fresh_distinct_tests": 32, + "new_resource_tests": 14, + "fresh_test_invocations": 33, + "single_full_suite_claim": false, + "test_evidence": [ + "evidence/g0-resource-wrapper-tests.json", + "evidence/g0-resource-additional-tests.json", + "evidence/g0-resource-preexec-test.json", + "evidence/g0-resource-applicable.json" + ], + "reused_unchanged_real_lean_tests": 9, + "mutations": { + "fresh_planned": 19, + "fresh_executed": 19, + "fresh_killed": 19, + "new_resource_cases": 9, + "original_wrapper_cases": 10, + "reused_unchanged_real_cases": 6, + "memory_oracle_refresh": "evidence/g0-resource-memory-mutant-refresh.json", + "evidence": "evidence/g0-resource-mutations.json", + "threshold": 1 + }, + "prior_generation": { + "production_wrapper_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "verification": { + "status": "PASS", + "applicable_tests": 27, + "test_evidence": [ + "evidence/g0-tests.json", + "evidence/g0-additional-tests.json", + "evidence/g0-applicable-tests.json" + ], + "mutations": { + "planned": 16, + "executed": 16, + "killed": 16, + "threshold": 1, + "evidence": "evidence/g0-mutations.json" + } + } + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "limits_and_boundaries": [ + "RLIMIT_AS bounds virtual address space, not RSS; enclosing cgroup physical limit remains separate. Fixture cap8192MiB; no assertion every project module fits.", + "Only explicit nonempty module list; caller independently establishes full owned-module inventory and dependency evidence.", + "Installed sysroot import precedence; no symlinked search roots/artifact components/module files/parts.", + "G3 independently binds source to compiled output. G2 remains NOT_ASSESSED by replay.", + "Unsafe and partial exclusions are upstream behavior.", + "Resource bounds reject bool, huge/nonfinite timeouts and unrepresentable/inherited-hard-limit memory caps before spawn; see SPEC.md.", + "Explicit Popen lifecycle normalizes spawn/wait resource exceptions. Kill/reap wait is bounded to one second; unreaped PID is reported ERROR and stops later modules. OS-uninterruptible processes cannot be promised forced termination." + ], + "quarantined_test_data": [ + { + "path": "tests/fixtures/BadPublic.lean", + "boundary": "Intentional self-referential theorem inserted with fixture-local skipKernelTC; only negative tests, never closed code." + }, + { + "path": "tests/fixtures/BadPrivate.lean", + "boundary": "Same intentional malformed body with genuine private visibility; only negative tests." + }, + { + "path": "tests/fixtures/UnapprovedAxiom.lean", + "boundary": "Explicit unapproved false axiom; kernel pass is expected while independent fixture axiom policy rejects." + } + ], + "ledger_payload": { + "phase": 2, + "layer": "B", + "action": "Tighten exact replay mutation grading to complete selected population and actual body/lifecycle assertion provenance; preserve unchanged replay and source-specific historical evidence.", + "rationale": "Upstream prefix expansion launches concurrent per-module tasks with no CLI jobs flag. The original OOM is historical; canonical947 records a later successful same-source complete Math core gate with two threads. This adapter supplies exact serial scheduling, input binding and finite adversarial controls independently.", + "reversibility": "New isolated contribution files only; no mathematical source, branch, Git, remote or canonical-surface mutation by this task.", + "evidence": [ + "evidence/g0-applicable-tests.json", + "evidence/g0-mutations.json", + "tool-report.json", + "RESOURCE_FIX.md", + "resource-fix-report.json", + "evidence/g0-resource-applicable.json", + "LIFECYCLE_FIX.md", + "evidence/lifecycle/evidence/kernel-delivery.json", + "evidence/lifecycle/evidence/independent-lifecycle-review.json" + ] + }, + "publication": { + "source_root": "/workspace/cbz-0/tools/kernel_replay", + "destination_root": "cbz/contributions/math514/kernel_replay", + "excluded": [ + "**/__pycache__/**", + "**/*.pyc", + "evidence/compiled-fixtures/**", + "evidence/tmp*/**", + "evidence/mutant-*/**", + "evidence/RuntimeDiagnostic.lean" + ], + "mapping_file": "PUBLICATION.json" + }, + "canonical_math_core_resolution": { + "observed_by_this_window_utc": "2026-10-29T18:50:42.767390+00:00", + "source_commit": "8151f592918a845bf19eb8eafaf8444540a32734", + "canonical_handoff_cut": "94747663830ca6645ea27c8820058168c08cf170", + "status_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/STATUS.md", + "receipt_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json", + "reported_resource_configuration": "LEAN_NUM_THREADS=2", + "component_scope": "Math core:116 owned constants,63 public theorem targets,26853 dependency closure; onlypropext/Classical.choice/Quot.sound; fullcomponentgate/adversecontrols recorded", + "project_proof_replayed_for_this_correction": false, + "adapter_production_code_or_tests_changed": false, + "adapter_27_tests_16_mutants_reused": true, + "federation_CBZ_claim": false, + "record_context": "Historical documentation-only correction at cd3a0021; adapter-unchanged/reused-27-16 fields describe that cut. The later resource-boundary source change has separate self_verification evidence above." + }, + "resource_repair_review": { + "finding": "https://github.com/d6g8k5htny-coder/main/pull/696#discussion_r4416529549", + "status": "PASS_SAME_PROVIDER_ENGINEERING_REVIEW", + "prior_published_head": "cd3a0021a16437567ceda8c9a0f0525677042de2", + "project_math_replayed": false, + "report": "resource-postfix-review.md", + "sha256": "660d37c8e5c3374d8fee867182042c12d2fc863f2a0f63198e4b01b0c8ced8b2", + "provider_distinct_scientific_review": "NOT_ASSESSED_BY_THIS_ENGINEERING_REVIEW" + }, + "lifecycle_repair": { + "description": "LIFECYCLE_FIX.md", + "source_sha256": { + "run_tests.py": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "tests/test_mutation_harness.py": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6" + }, + "metadata_authentication_boundary": "Trusted source-bound runner; accounting schema does not authenticate adversarially fabricated consistent JSON.", + "original_summary_only_fixture_preserved": "evidence/lifecycle/baseline/" + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/SPEC.md b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/SPEC.md new file mode 100644 index 000000000..de5cc8ffa --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/SPEC.md @@ -0,0 +1,24 @@ +# Exact-module kernel replay specification + +This tool repairs resource scheduling for Lean 4.34.1's installed `LeanChecker.replayFromImports`. It does not replace the kernel or change mathematical source. Owner: CBZ tooling agent; registry payload is `REGISTRY.json` for the canonical writer. + +The Lean driver imports `LeanChecker`, initializes the search path with `findSysroot`, and calls the exported official unsafe IO routine exactly once. It never imports the target into its driver environment. The official routine reads exported/server/private parts, builds an environment containing only the target's imports, then replays the constants from the most private available part. This preserves upstream handling of inductives, constructors, recursors and proof bodies. Its intentional unsafe/partial-definition exclusion remains upstream behavior. + +The Python CLI accepts only declared arguments; no prefix expansion, default anonymous target, ignored dash flags, concurrency option or empty target set exists. `prepare` creates a manifest from explicit `--module NAME=SOURCE` selections. `run` validates exact expected coverage and all bindings, then starts and waits for one Lean process at a time. Each process has an explicit address-space limit and wall timeout. Any missing module, source/part mutation, nonzero exit, timeout, absent/mismatched completion marker, changed tool binding or coverage mismatch is non-green. A report records every requested module, observed return code, exact command, hashes, resource bounds, times and output. A failed run never claims G4 success. + +The manifest binds source bytes and compiled bytes independently; it does not prove that source produced those bytes. G3 build evidence must establish that relationship. The report binds only declared target artifacts and explicit extra context bindings; it does not claim to bind an undeclared full dependency closure. The manifest's explicit expected list must come from the caller's independently complete owned-module inventory; preparing a subset cannot establish full-project coverage. + +Trust/path invariant: installed sysroot library precedence pins the driver's checker import. Artifact search roots, selected module filenames and all sibling part paths must be canonical and contain no symlinks. This conservative restriction prevents binding canonical destination siblings while the official routine reads lexical search-path siblings. Limits bound virtual address space, not RSS; an 8192 MiB cap is used for actual fixtures, and no claim is made that every project module fits. + +Kernel validity permits axioms. A successful replay is not G2 approved-axiom certification and is not full CBZ. G2 remains an independent blocking gate. Fixtures include a quarantined unapproved axiom and an intentionally corrupted theorem body solely as negative tool tests. + +G0 acceptance: strict CLI, exact target, sequential processes, no empty/missing/duplicate coverage, fatal child failure, limits/timeouts, source/part/tool binding changes, public/private/inductive fixture with three real olean parts, malformed public and private proof bodies rejected, unapproved axiom replay accepted while an independent fixture axiom check rejects it. Mutation testing must kill relevant wrapper/driver defects and report actual counts. No heavy project replay is required to self-test this tool. + +Resource-boundary generation (P2 repair): memory is an exact integer in `[64, min(sys.maxsize, finite inherited RLIMIT_AS hard limit) // 1048576]` MiB. The unlimited hard-limit sentinel contributes no cap. Timeout is an exact int/float type in `(0, min(floor(threading.TIMEOUT_MAX), 2147483)]` seconds; 2147483 is the signed 32-bit poll-millisecond range rounded down. Bool, NaN/infinity and oversized values are rejected before process creation and before converting a huge int to float. Both ceilings and the one-second cleanup wait budget appear in the report. + +The wrapper owns Popen explicitly and never invokes its implicit unbounded context-manager cleanup. Spawn/wait resource exceptions (`OSError`, `SubprocessError`, `OverflowError`, `ValueError`) are structured errors. Timeout/error cleanup signals the process group, falls back to child signaling on a group error, and uses a one-second reap wait plus nonblocking poll. Cleanup failure leaves a non-green ERROR with the PID and diagnostics, and stops subsequent modules. A finite wait cannot force an OS-uninterruptible child to exit. Only an ordinary completed wait can promote a result to PASS/FAIL; neither timeout nor ERROR can become PASS from exit-zero/marker observations during cleanup. Existing coverage, binding, private-part, replay, and G2 semantics remain unchanged. + + +## Mutation grader lifecycle contract + +See LIFECYCLE_FIX.md. Kills require a pristine externally bound exact selected parent-method population and one authorized body entry/exit per method, direct escaping AssertionError identity or matched body-subtest assertion events, and exact integer count/event consistency. Lifecycle errors/assertions, false or incomplete identities, foreign subtest parents, missing metadata, skips/expected failures and synthetic summaries are ERROR. Fully fabricated consistent JSON remains outside the trusted runner/source-custody boundary. Historical source-bound body-trace evidence is retained separately from new receipts. diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json new file mode 100644 index 000000000..ca9e9614b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json @@ -0,0 +1,268 @@ +{ + "schema_version": 2, + "component": "kernel_replay_lifecycle_delivery", + "root": "/workspace/cbz-0/delivery/mutation-lifecycle-fix", + "artifacts": [ + { + "path": "changed/kernel_replay/mutations.py", + "sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "bytes": 15771 + }, + { + "path": "changed/kernel_replay/run_tests.py", + "sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "bytes": 9931 + }, + { + "path": "changed/kernel_replay/tests/test_mutation_harness.py", + "sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6", + "bytes": 11723 + }, + { + "path": "evidence/independent-lifecycle-review.json", + "sha256": "e9ad02a21799e314b5374d77cb6aef468e2561f92ee23d9b5e3fefe6e19df242", + "bytes": 5018 + }, + { + "path": "evidence/kernel-baseline-sha256.json", + "sha256": "839242ae4659709f9572b4cf9f06012b4d74e039ff2d1c3b2c422a4a33005002", + "bytes": 1595 + }, + { + "path": "evidence/kernel-controls-green.log", + "sha256": "171f4fb72934006fc29bc75e482234148d8eed67077dbb6e179371ad93fa8baa", + "bytes": 1997 + }, + { + "path": "evidence/kernel-controls-optimized-green.log", + "sha256": "93835d11aac0de286239faca85dc5d63b4f71118ba01e2a4a6154f91bd18b615", + "bytes": 2169 + }, + { + "path": "evidence/kernel-controls-red.log", + "sha256": "974f9047781ca8b429d091b77eb6e69c2581b0cdbe0bda46a21420f5767353ee", + "bytes": 39211 + }, + { + "path": "evidence/kernel-delivery.json", + "sha256": "327156743cd6a19afa3603b46de4604e0e3fd373df8c7a907afebfd93e009c13", + "bytes": 8482 + }, + { + "path": "evidence/kernel-dispatch-red.log", + "sha256": "c5cb3242587b83ef49764cab5dc2880ed1e1084fbb046ccc2d9176bda8f321d2", + "bytes": 2279 + }, + { + "path": "evidence/kernel-final-runner-mutants.log", + "sha256": "290e05136be930e5222f7e50bc9ccec4222ac850ef6a6492f174edb5739222b3", + "bytes": 157 + }, + { + "path": "evidence/kernel-final-runner-mutants/drop-body-completion.json", + "sha256": "f5486d2c4a4facfd60fa4423d2b6c1901259b63f77c492509278dd52f117c57b", + "bytes": 4144 + }, + { + "path": "evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json", + "sha256": "bc6fcb2f856b1abd2a591efe29b4f708fcab76e8f7c7026eb1f98b5f2cf403e4", + "bytes": 3957 + }, + { + "path": "evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json", + "sha256": "2c0258edad9ce69e4cc95fe3bc74a240d12fe24a1b9b44ec3d537777fa8ce661", + "bytes": 4637 + }, + { + "path": "evidence/kernel-final-runner-mutants/guard_run_tests.py", + "sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "bytes": 9834 + }, + { + "path": "evidence/kernel-final-runner-mutants/summary.json", + "sha256": "aa220c602f10c7830766e60e8de6bb9b541f24319f688f12ec8352320e8660fe", + "bytes": 2352 + }, + { + "path": "evidence/kernel-final-runner-mutants/trust-overridable-display-id.json", + "sha256": "13bfdabaceeeb6a42787f0c26d903947de73902504d73629b594e695d10a4d32", + "bytes": 5143 + }, + { + "path": "evidence/kernel-foreign-subtest-green.log", + "sha256": "3337102a6073cbd72fb0a61df7854e7455b8426edeccb979a4a81efce0728261", + "bytes": 279 + }, + { + "path": "evidence/kernel-foreign-subtest-optimized-green.log", + "sha256": "4fc0e3237fc63d1ccc278b57bc4273ee5bdb145bb22da01ca0479f3cdb826e3c", + "bytes": 279 + }, + { + "path": "evidence/kernel-foreign-subtest-red.log", + "sha256": "5e98cfa1e5d7947cfc684561200fe5dec096246ac11f0f5f6509e3bfd8557e67", + "bytes": 2325 + }, + { + "path": "evidence/kernel-harness-mutants.log", + "sha256": "c0ad54870a6a97b028980e57b5c0728c8a01fbe16a22dd861cde932a200835d1", + "bytes": 277 + }, + { + "path": "evidence/kernel-harness-mutants/accept-boolean-counts.json", + "sha256": "93185f80485e4dee555da10032ddd757eef534d414049625958ceccdd0296a69", + "bytes": 9204 + }, + { + "path": "evidence/kernel-harness-mutants/drop-body-completion.json", + "sha256": "248cc91fd0c811a5f4dd8ef88599fc020bc19260cf5c5301f2c51b8709a09929", + "bytes": 4508 + }, + { + "path": "evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json", + "sha256": "452c1a27c908af5be0ce4626e2061c3e691ce681da0572f3cd616ad1e0eb4da4", + "bytes": 4976 + }, + { + "path": "evidence/kernel-harness-mutants/guard_run_tests.py", + "sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "bytes": 8474 + }, + { + "path": "evidence/kernel-harness-mutants/ignore-body-population-receipt.json", + "sha256": "b3efe36ff2885f524b2b64131b0a3cd532b0c3b533d02ada5d77ff02f455125b", + "bytes": 10299 + }, + { + "path": "evidence/kernel-harness-mutants/ignore-invalid-population.json", + "sha256": "53d0580b382d2cb9481d250b74755e396045fc89b705bd03e7386d8e8446302f", + "bytes": 5314 + }, + { + "path": "evidence/kernel-harness-mutants/ignore-selector-binding.json", + "sha256": "18bbaabd7d9584b128b5944a23565173c63f57e1f43e7011d3c7bc390b449f4c", + "bytes": 9259 + }, + { + "path": "evidence/kernel-harness-mutants/restore-summary-only-grading.json", + "sha256": "df89afbf409c23517c6adc10f05a3be910532cdaaf40fc2b405474df8b11e842", + "bytes": 3747 + }, + { + "path": "evidence/kernel-harness-mutants/summary.json", + "sha256": "7305176ef9c79bddc152de57b075b84e8575de21bf557be74e60d65801ac91e9", + "bytes": 4345 + }, + { + "path": "evidence/kernel-harness-mutants/trust-overridable-display-id.json", + "sha256": "6cbd7ecd15e86b6aabbdaef5745c94f5f3406a02e6ef9b7dd85973510609d165", + "bytes": 5289 + }, + { + "path": "evidence/kernel-lifecycle-method-red.log", + "sha256": "dc6de5aab8c2d626de5f9730534359aaf047e1344a41f68bbc88370b5e1c157c", + "bytes": 2011 + }, + { + "path": "evidence/kernel-parent-identity-mutant.log", + "sha256": "fccced21c7eaf917e3106ddfc916b539a5c339a4be79ae901f9c1bf3e94d7fd0", + "bytes": 45 + }, + { + "path": "evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json", + "sha256": "ca918348f919ca788845f64d79b0769a5a03ce39a30ffd53dad5e6616f1fd206", + "bytes": 4365 + }, + { + "path": "evidence/kernel-parent-identity-mutant/guard_run_tests.py", + "sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "bytes": 9931 + }, + { + "path": "evidence/kernel-parent-identity-mutant/summary.json", + "sha256": "df8a7754aad36b693a038d58a816e057091b1b0220b70c9af95ae1c2496007a0", + "bytes": 745 + }, + { + "path": "evidence/kernel-population-binding-red.log", + "sha256": "72f07a3d9b8c97ac3afc1aa366d76442e1d47d028b5e598be0a9365be3dd8ef9", + "bytes": 908 + }, + { + "path": "evidence/kernel-population-listing-green.log", + "sha256": "075fdb533d31a636713bc9b0742e9f5efaa07703f8eb06e91e490c055ab9d485", + "bytes": 269 + }, + { + "path": "evidence/kernel-setup-red.json", + "sha256": "4bbb6076e1df6d98fa22a2d55628b9f86d5476e1219bf419157c346ff079cbbb", + "bytes": 1038 + }, + { + "path": "evidence/kernel-subtest-controls-red.log", + "sha256": "6982f7375c35792a5740a303f75626cb3b1f183044ea561622e1fe593d03b25d", + "bytes": 7289 + }, + { + "path": "evidence/run_kernel_final_runner_mutants.py", + "sha256": "51f7c12bba3d058b666c013fff518aeb7fa70573de77b54d3993612e29604863", + "bytes": 5784 + }, + { + "path": "evidence/run_kernel_harness_mutants.py", + "sha256": "e186270d37002f4766388f17bd083b50b57163d2c0d6b82f6a08722b1b279ebe", + "bytes": 5273 + }, + { + "path": "evidence/run_kernel_parent_identity_mutant.py", + "sha256": "a2bc1b4d8192306379f4495d966eece96cb4343f06edb5c445f4e89c78d85ea8", + "bytes": 5536 + }, + { + "path": "kernel-first-generation.patch", + "sha256": "fec302cc6ef2b346aa1c0aaff8cdba5573884370b1cedea19a94fda8b3b9f79b", + "bytes": 30252 + }, + { + "path": "kernel-parent-identity-followup.patch", + "sha256": "d49fd936219dbf73a3de6ae5566aee944e63d552b382cabaf7e034d11375bce0", + "bytes": 1709 + }, + { + "path": "kernel.patch", + "sha256": "bf47d3399a2cc0fc5839a435854e080afdc4f603b84c8a686c70c14099e64a17", + "bytes": 30814 + }, + { + "path": "kernel/DELIVERY_REGISTRY-first-generation.json", + "sha256": "0600afd1ed6d163f428104aa268801c0eba8218fdd3daf66439a732ab7c32075", + "bytes": 7184 + }, + { + "path": "kernel/REPORT.md", + "sha256": "fdc04c533f60c256189f431e9520b6ecad850edf4479b20c5cf7e2974b4f0c03", + "bytes": 5350 + }, + { + "path": "kernel/REVIEW.txt", + "sha256": "9b4bf9bef38993b3b9ad0d4faccedb7ab88ce9f5269ea91d3411e262ad8855e3", + "bytes": 1939 + }, + { + "path": "kernel/SUCCESSOR_SHA256.json", + "sha256": "b9119fc61e433a29f14b0f26678ccff40eff02d65fc7b31b9cd9a0ea5975c7e4", + "bytes": 942 + } + ], + "runtime_file_registry_updates": [ + "tools/kernel_replay/run_tests.py", + "tools/kernel_replay/mutations.py", + "tools/kernel_replay/tests/test_mutation_harness.py" + ], + "new_runtime_modules": [], + "current_harness_methods": 14, + "current_total_methods": 54, + "fresh_unique_harness_safeguard_mutants": 10, + "historical_original_mutants_reused": 25, + "status": "isolated successor sealed; parent owns canonical integration and publication; no CBZ declaration" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/mutations.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/mutations.py new file mode 100644 index 000000000..24ef38f0c --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/mutations.py @@ -0,0 +1,187 @@ +#!/usr/bin/env python3 +"""Isolated mutation checks. Errors/skips/empty tests are never mutant kills.""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile + +ROOT = Path(__file__).resolve().parent + + +def classify(value, code): + if (code not in (0, 1) or not value.get('tests_run') or value.get('errors') + or value.get('skipped') or value.get('expected_failures') + or value.get('unexpected_successes')): + return 'ERROR' + if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('successful'): + return 'KILLED' + if code == 0 and value.get('successful') and value.get('assertion_failures') == 0: + return 'SURVIVED' + return 'ERROR' + + +def digest(data): + return hashlib.sha256(data).hexdigest() + + +def definitions(): + wrapper = 'test_kernel_replay.WrapperTests' + real = 'test_real_lean.RealLeanTests.' + items = [ + ('empty-coverage', 'kernel_replay.py', 'if not selections:', 'if False:', wrapper), + ('allow-artifact-symlink', 'kernel_replay.py', + " if not p.is_absolute() or p.is_symlink() or canonical != p:", + ' if False:', 'test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink'), + ('ignore-source-binding', 'kernel_replay.py', " check_binding(entry['source'])", ' pass', wrapper), + ('ignore-compiled-parts-binding', 'kernel_replay.py', "if parts_of(olean) != entry['parts']:", 'if False:', wrapper), + ('ignore-tool-binding', 'kernel_replay.py', "if m['tool'] != tool_bindings(m['sysroot']):", 'if False:', wrapper), + ('ignore-nonzero-exit', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['stdout'].splitlines().count(marker) == 1", wrapper), + ('ignore-completion-marker', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['returncode'] == 0", wrapper), + ('ignore-timeout', 'kernel_replay.py', 'p.wait(timeout=timeout_seconds)', 'p.wait(timeout=None)', wrapper), + ('ignore-memory-limit', 'kernel_replay.py', 'preexec_fn=limits(memory_mib)', 'preexec_fn=None', wrapper), + ('truncate-module-coverage', 'kernel_replay.py', "for entry in m['modules']:\n validate_manifest(m)", "for entry in m['modules'][:1]:\n validate_manifest(m)", wrapper), + ('concurrent-module-processes', 'kernel_replay.py', + " for entry in m['modules']:\n validate_manifest(m)\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n if report['results'][-1].get('cleanup', {}).get('reaped') is False:\n break # Do not start another process while an earlier PID remains unreaped.", + " from concurrent.futures import ThreadPoolExecutor\n with ThreadPoolExecutor(max_workers=2) as pool:\n report['results'] = list(pool.map(lambda entry: run_one(m, entry, memory_mib, timeout_seconds), m['modules']))", + wrapper + '.test_one_child_at_a_time_and_exact_coverage'), + ('skip-kernel-replay', 'ExactReplay.lean', ' replayFromImports target', ' pure ()', real + 'test_public_self_reference_rejected'), + ('prefix-expansion', 'ExactReplay.lean', ' replayFromImports target', + ' let sp ← searchPathRef.get\n for path in (← SearchPath.findAllWithExt sp "olean") do\n if let some name ← searchModuleNameOfFileName path sp then\n if target.isPrefixOf name then replayFromImports name', + real + 'test_exact_module_no_prefix_glob'), + ('untrusted-checker-search-path', 'kernel_replay.py', + "env['LEAN_PATH'] = os.pathsep.join([str(Path(m['sysroot']) / 'lib/lean'), *m['lean_path']])", + "env['LEAN_PATH'] = os.pathsep.join(m['lean_path'])", real + 'test_user_lean_path_cannot_shadow_checker'), + ] + return items + + +def resource_definitions(): + wrapper = 'test_kernel_replay.WrapperTests.' + return [ + ('resource-ignore-memory-upper-bound', 'kernel_replay.py', + 'not 64 <= memory_mib <= memory_mib_max', 'memory_mib < 64', + wrapper + 'test_resource_memory_upper_bounds_before_spawn'), + ('resource-ignore-inherited-memory-hard-limit', 'kernel_replay.py', + 'if hard_memory != resource.RLIM_INFINITY:', 'if False:', + wrapper + 'test_resource_memory_hard_limit_before_spawn'), + ('resource-ignore-timeout-upper-bound', 'kernel_replay.py', + 'not 0 < timeout_seconds <= MAX_TIMEOUT_SECONDS', 'not 0 < timeout_seconds', + wrapper + 'test_resource_timeout_upper_bounds_before_spawn'), + ('resource-accept-boolean-timeout', 'kernel_replay.py', + 'type(timeout_seconds) not in (int, float)', 'type(timeout_seconds) not in (int, float, bool)', + wrapper + 'test_resource_boolean_arguments_rejected'), + ('resource-drop-process-exception-normalization', 'kernel_replay.py', + 'PROCESS_ERRORS = (OSError, subprocess.SubprocessError, OverflowError, ValueError)', + 'PROCESS_ERRORS = (OSError,)', + wrapper + 'test_resource_spawn_exceptions_are_structured_errors'), + ('resource-unbounded-cleanup-wait', 'kernel_replay.py', + 'p.wait(timeout=CLEANUP_TIMEOUT_SECONDS)', 'p.wait()', + wrapper + 'test_resource_unreapable_child_cleanup_is_bounded'), + ('resource-skip-abnormal-cleanup', 'kernel_replay.py', + "if p is not None and result['status'] != 'FINISHED':", 'if False:', + wrapper + 'test_resource_unreapable_child_cleanup_is_bounded'), + ('resource-overwrite-error-with-success', 'kernel_replay.py', + " if result['status'] == 'FINISHED':", " if result['status'] != 'TIMEOUT':", + wrapper + 'test_resource_wait_errors_cannot_become_success'), + ('resource-continue-after-unreaped-child', 'kernel_replay.py', + "if report['results'][-1].get('cleanup', {}).get('reaped') is False:", 'if False:', + wrapper + 'test_resource_unreaped_child_stops_further_modules'), + ] + + +def derived_driver_mutations(lean): + upstream = (Path(lean).resolve().parent.parent / 'src/lean/LeanChecker.lean').read_text() + start = upstream.index('unsafe def replayFromImports ') + end = upstream.index('unsafe def replayFromFresh ', start) + routine = upstream[start:end] + # These intentionally unsound adapters exist only inside isolated mutants. + # The copied fragment retains the upstream Apache-2.0 provenance in the + # driver's file header; production calls the installed implementation. + exported = routine.replace('replayFromImports', 'cbzExportedOnly', 1) + a, b = exported.index(' let mut fnames'), exported.index(' let parts') + exported = exported[:a] + ' let fnames := #[mFile]\n' + exported[b:] + preload = routine.replace('replayFromImports', 'cbzPreloaded', 1) + preload = preload.replace('importModulesCore mod.imports', 'importModulesCore #[{ module }]') + preload = preload.replace('finalizeImport s mod.imports', 'finalizeImport s #[{ module }]') + original = (ROOT / 'ExactReplay.lean').read_text() + return [ + ('exported-part-only', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + exported).replace(' replayFromImports target', ' cbzExportedOnly target'), + 'test_real_lean.RealLeanTests.test_private_self_reference_rejected'), + ('preload-target-self-reference', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + preload).replace(' replayFromImports target', ' cbzPreloaded target'), + 'test_real_lean.RealLeanTests.test_public_self_reference_rejected'), + ] + + +def run_mutations(output, only=None, group='all'): + lean = os.environ.get('CBZ_TEST_LEAN', '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean') + plan = definitions() + resource_definitions() + if group == 'resource': + plan = resource_definitions() + elif group == 'wrapper': + plan = [x for x in plan if x[4].startswith('test_kernel_replay.')] + else: + plan += derived_driver_mutations(lean) + if only: + if only not in [x[0] for x in plan]: + raise ValueError('unknown mutation: ' + only) + plan = [x for x in plan if x[0] == only] + # Keep old-generation mutation receipts immutable when selecting this repair. + evidence = ROOT / ('evidence/mutations' if group == 'all' else 'evidence/resource-mutations') + evidence.mkdir(parents=True, exist_ok=True) + results = [] + for name, filename, old, new, test in plan: + with tempfile.TemporaryDirectory(dir=ROOT / 'evidence', prefix='mutant-') as d: + work = Path(d) / 'kernel_replay' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + (work / 'evidence').mkdir() + file = work / filename + original = file.read_text() + if original.count(old) != 1: + raise ValueError(f'mutation {name} did not identify exactly one source occurrence') + changed = original.replace(old, new, 1) + file.write_text(changed) + result_path = work / 'evidence/tests.json' + command = [sys.executable, str(work / 'run_tests.py'), '--output', str(result_path), '--test', test] + try: + p = subprocess.run(command, capture_output=True, text=True, timeout=90) + value = json.loads(result_path.read_text()) if result_path.exists() else {} + record = {'name': name, 'file': filename, 'test': test, + 'outcome': classify(value, p.returncode), 'returncode': p.returncode, + 'original_sha256': digest(original.encode()), + 'mutated_sha256': digest(changed.encode()), 'tests': value, + 'stdout': p.stdout, 'stderr': p.stderr} + except subprocess.TimeoutExpired as e: + record = {'name': name, 'outcome': 'ERROR', 'error': 'mutation test timed out'} + (evidence / (name + '.json')).write_text(json.dumps(record, indent=2) + '\n') + results.append(record) + print(name + ': ' + record['outcome'], flush=True) + result = {'group': group, 'threshold': 1.0, 'planned': len(plan), 'executed': len(results), + 'killed': sum(x['outcome'] == 'KILLED' for x in results), + 'ok': bool(results) and len(results) == len(plan) and all(x['outcome'] == 'KILLED' for x in results), + 'results': results} + Path(output).write_text(json.dumps(result, indent=2) + '\n') + return result + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--only') + parser.add_argument('--group', choices=('all', 'wrapper', 'resource'), default='all') + args = parser.parse_args() + try: + return 0 if run_mutations(args.output, args.only, args.group)['ok'] else 1 + except (ValueError, OSError) as e: + print('mutation harness ERROR: ' + str(e), file=sys.stderr) + return 2 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/run_tests.py new file mode 100644 index 000000000..0b4e84b9c --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/run_tests.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +"""Structured, fail-closed unittest runner used by G0 and mutations.""" +import argparse +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') + stream = io.StringIO() + result = unittest.TextTestRunner(stream=stream, verbosity=2).run(suite) + value = {'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + return 0 if result.wasSuccessful() and result.testsRun and not result.skipped else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py new file mode 100644 index 000000000..b47b84c19 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py @@ -0,0 +1,26 @@ +"""Mutation accounting cannot turn errors, skips, or no tests into kills.""" +import importlib.util +from pathlib import Path +import unittest + +ROOT = Path(__file__).resolve().parents[1] + + +class MutationHarnessTests(unittest.TestCase): + def test_only_clean_assertion_failure_is_a_kill(self): + spec = importlib.util.spec_from_file_location('mutations', ROOT / 'mutations.py') + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + clean = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, + expected_failures=0, unexpected_successes=0, successful=False) + self.assertEqual(mod.classify(clean, 1), 'KILLED') + self.assertEqual(mod.classify({**clean, 'assertion_failures': 0, 'successful': True}, 0), 'SURVIVED') + for changes, code in (({'tests_run': 0}, 1), ({'errors': 1}, 1), + ({'skipped': 1}, 1), ({'expected_failures': 1}, 1), + ({'unexpected_successes': 1}, 1), ({}, 2), ({}, -9)): + with self.subTest(changes=changes, code=code): + self.assertEqual(mod.classify({**clean, **changes}, code), 'ERROR') + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json new file mode 100644 index 000000000..d0d53e5a2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json @@ -0,0 +1,79 @@ +{ + "evidence_policy": "Completed applicable controls and historical body-assertion traces are reused; no unchanged mathematical, Lean, build, original full-suite or original mutant verification replayed. Provider-distinct process requirements remain separate.", + "final_outcome": "No unresolved actionable issue in reviewed runner/classifier/harness scope. This is a scoped review, not a new broad verification or CBZ declaration.", + "historical_applicability": "Original kernel 19 fresh plus 6 reused and auditor 53 historical body traces remain historical source-applicable evidence; this review does not rewrite them into new-schema receipts or present a new full run. Production sources/test bodies and original mutation definitions are outside this patch except separately owned lexer integration.", + "kernel_replay": { + "bindings": { + "work/kernel_replay/mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "work/kernel_replay/run_tests.py": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "work/kernel_replay/tests/test_mutation_harness.py": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6" + }, + "checked": [ + "actual selected method invocation rather than dispatcher hook", + "dispatcher authorization outside enclosing lifecycle depth", + "complete unique selected canonical parent population and pre-mutation --list binding", + "exact exception object for direct assertion and exact integer/event accounting", + "subtest body activity, lifecycle phase and actual subtest.test_case parent identity" + ], + "evidence_detail": { + "established_methods_before_foreign_parent_control": 13, + "established_unique_safeguard_mutants_before_foreign_parent_control": 9, + "final_foreign_parent_guard_mutant": "KILLED by focused foreign-parent assertion control; receipt kernel-parent-identity-mutant/summary.json", + "new_foreign_parent_method": 1, + "total_focused_methods": 14, + "total_unique_safeguard_mutants": 10 + }, + "new_execution_by_reviewer": "Only three concrete counterexample fixtures during review (dispatch hook, lifecycle invocation, foreign subtest); no completed applicable test or mathematical check repeated.", + "previous_findings_addressed": [ + "dispatch-hook assertion before actual selected method", + "selected-method invocation from lifecycle hook", + "selector and externally established expected population binding", + "foreign subtest falsely attributed to selected parent" + ], + "reused_evidence": [ + "evidence/kernel-controls-green.log", + "evidence/kernel-population-listing-green.log", + "evidence/kernel-controls-optimized-green.log", + "evidence/kernel-foreign-subtest-green.log", + "evidence/kernel-foreign-subtest-optimized-green.log", + "evidence/kernel-harness-mutants/summary.json", + "evidence/kernel-final-runner-mutants/summary.json", + "evidence/kernel-parent-identity-mutant/summary.json" + ], + "status": "CLEAR_FOR_REVIEWED_SCOPE" + }, + "layer_a": { + "bindings": { + "work/layer_a/mutation_test.py": "e857fde3c3d7caf301e24a77972ee18d1253186613633e1b0876b61f274eebed", + "work/layer_a/tests/test_mutation_runner.py": "347135c69335eaa74a62f5b6380057fff24e30eafcf57b8418de69bef1be7f7d" + }, + "checked": [ + "actual selected method wrapper requires active dispatcher and no enclosing lifecycle hook", + "direct body assertion uses exact escaping exception object", + "complete unique canonical selected population is bound before source mutation using fixture-free --list", + "body-scoped subtests check active parent and subtest.test_case identity; lifecycle and error outcomes reject", + "assertion event origin and exact integer counts agree; old or incomplete summaries reject" + ], + "evidence_detail": { + "actual_source_controls": { + "body-placeholder-weakening": "KILLED by 3 body-scoped subtest assertions", + "identity": "SURVIVED", + "importerror-setup": "ERROR with 1 lifecycle assertion, no selected body entry" + }, + "final_changed_guard_review": "Exact assertion_events id/source match body_assertion_ids; at most one direct assertion per parent; filtered subtest assertions equal subtest event sequence. Final hash cut reread after prior review generation.", + "focused_methods_normal": 8, + "focused_methods_optimized": 8 + }, + "reused_evidence": [ + "evidence/layer_a/final-focused-tests-with-assertion-provenance.log", + "evidence/layer_a/optimized-focused-tests.log", + "evidence/layer_a/new-obligation-source-controls.json", + "evidence/layer_a/final-actual-source-controls/receipts.json" + ], + "status": "CLEAR_FOR_REVIEWED_SCOPE", + "test_execution_by_this_reviewer": 0 + }, + "review_type": "independent static code review with reusable completed verification", + "reviewer": "kernel_lifecycle_review", + "schema_version": 1 +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json new file mode 100644 index 000000000..6c264479f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json @@ -0,0 +1,19 @@ +{ + "ExactReplay.lean": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "PUBLICATION.json": "32950113bc67a50a4199710944a5628ee57ac3e5e4058173605444a6ffd9403b", + "README.md": "1a64ae6f53a78a49643091c32218ceadc99e4aee94669238c1c829ad09de91b2", + "REGISTRY.json": "23b1d1f58c85aea0d7f4c5342e44f70884356330eaa8f6909b6e6bc79dbf1642", + "RESOURCE_FIX.md": "2dac2e6cb467589700e8fa479d7592f2309052f2b09ab4837a839ae27498f2c9", + "SPEC.md": "6c87c49e9bb17a34182de3bf6ba3c701c936ae7c1b80938bba55305723f0c655", + "STATUS_CORRECTION.md": "2e0f67f85a77e7e00f5a2ef7f7626118fa6682dc3dca76b1470707b92b395608", + "kernel_replay.py": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutations.py": "5fd6fbbfd2aab463f1c2c017af942762ae798a67f3d1fc47001bc317b8fee0a0", + "run_tests.py": "b0a7f1c508462c21688de8d5ec70384d40f780c342814d97589f0b45f2d7620b", + "tests/fixtures/BadPrivate.lean": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429", + "tests/fixtures/BadPublic.lean": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5", + "tests/fixtures/Good.lean": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728", + "tests/fixtures/UnapprovedAxiom.lean": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547", + "tests/test_kernel_replay.py": "2ccdd956379bf3ddbc479a10604a10db7c26acee96c54c869c7a6bafc0f2dfeb", + "tests/test_mutation_harness.py": "ca90d5c5c8e48d163d35b2170f2e7f08352863c23bd73f1b383a73a2dcc16ff3", + "tests/test_real_lean.py": "51ab210da908b4e3d74fe179c41a414abf4c53e88458db33f7934ae0010337d7" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log new file mode 100644 index 000000000..063cb4b58 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log @@ -0,0 +1,17 @@ +test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok +test_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok +test_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok +test_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok +test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok +test_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok +test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok +test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok +test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok +test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok +test_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok + +---------------------------------------------------------------------- +Ran 12 tests in 2.014s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log new file mode 100644 index 000000000..cff2e19b6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log @@ -0,0 +1,18 @@ +test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok +test_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok +test_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok +test_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok +test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok +test_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok +test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok +test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok +test_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok +test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok +test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok +test_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok + +---------------------------------------------------------------------- +Ran 13 tests in 6.638s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log new file mode 100644 index 000000000..3a4fe03e9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log @@ -0,0 +1,441 @@ +test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ERROR +test_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok +test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... + test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture', tail='def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])') ... FAIL + test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='') ... FAIL +test_errors_skips_expected_failures_and_subtests_are_ambiguous (test_mutation_harness.MutationHarnessTests.test_errors_skips_expected_failures_and_subtests_are_ambiguous) ... + test_errors_skips_expected_failures_and_subtests_are_ambiguous (test_mutation_harness.MutationHarnessTests.test_errors_skips_expected_failures_and_subtests_are_ambiguous) (source="def test_one(self):\n with self.subTest(i=1): self.fail('subtest')") ... FAIL + test_errors_skips_expected_failures_and_subtests_are_ambiguous (test_mutation_harness.MutationHarnessTests.test_errors_skips_expected_failures_and_subtests_are_ambiguous) (source="def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')") ... FAIL +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='receipt_schema') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='selected_ids') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='started_ids') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='finished_ids') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='body_entered_ids') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='body_finished_ids') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='body_assertion_ids') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='lifecycle_failures') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='subtests') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='invalid_population') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'tests_run': True}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'tests_run': 1.0}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'assertion_failures': '1'}) ... ERROR + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'successful': 0}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'lifecycle_failures': -1}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'subtests': True}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_entered_ids': []}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_finished_ids': []}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'finished_ids': []}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_assertion_ids': []}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_assertion_ids': ['fixture.Case.test_forged']}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'assertion_failures': 2}) ... FAIL +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... FAIL +test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... + test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def tearDown(self): self.fail('teardown')\ndef test_one(self): pass") ... FAIL + test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def test_one(self): self.addCleanup(self.fail, 'cleanup')") ... FAIL + test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')") ... FAIL + test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')") ... FAIL +test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... FAIL +test_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... FAIL + +====================================================================== +ERROR: test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 48, in test_body_assertion_kills_after_all_selected_bodies_finish + self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + ~~~~~^^^^^^^^^^^^^^^^^^^^ +KeyError: 'body_entered_ids' + +====================================================================== +ERROR: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'assertion_failures': '1'}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/mutations.py", line 21, in classify + if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('successful'): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: '>' not supported between instances of 'str' and 'int' + +====================================================================== +FAIL: test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture', tail='def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 96, in test_empty_duplicate_synthetic_and_spoofed_population_is_error + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 2, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\ntest_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpxwhf3qb4/tests/fixture.py", line 3, in test_one\n def test_one(self): self.fail("body")\n ^^^^^^^^^^^^^^^^^\nAssertionError: body\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpxwhf3qb4/tests/fixture.py", line 3, in test_one\n def test_one(self): self.fail("body")\n ^^^^^^^^^^^^^^^^^\nAssertionError: body\n\n----------------------------------------------------------------------\nRan 2 tests in 0.000s\n\nFAILED (failures=2)\n'} + +====================================================================== +FAIL: test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 96, in test_empty_duplicate_synthetic_and_spoofed_population_is_error + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpqwfqnlqa/tests/fixture.py", line 4, in test_one\n def test_one(self): self.fail("body")\n ^^^^^^^^^^^^^^^^^\nAssertionError: body\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=1)\n'} + +====================================================================== +FAIL: test_errors_skips_expected_failures_and_subtests_are_ambiguous (test_mutation_harness.MutationHarnessTests.test_errors_skips_expected_failures_and_subtests_are_ambiguous) (source="def test_one(self):\n with self.subTest(i=1): self.fail('subtest')") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 84, in test_errors_skips_expected_failures_and_subtests_are_ambiguous + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... \n test_one (fixture.Case.test_one) (i=1) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one) (i=1)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpiikl2hbn/tests/fixture.py", line 4, in test_one\n with self.subTest(i=1): self.fail(\'subtest\')\n ^^^^^^^^^^^^^^^^^^^^\nAssertionError: subtest\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=1)\n'} + +====================================================================== +FAIL: test_errors_skips_expected_failures_and_subtests_are_ambiguous (test_mutation_harness.MutationHarnessTests.test_errors_skips_expected_failures_and_subtests_are_ambiguous) (source="def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 84, in test_errors_skips_expected_failures_and_subtests_are_ambiguous + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpcow7qjj1/tests/fixture.py", line 5, in test_one\n self.fail(\'body\')\nAssertionError: body\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=1)\n'} + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='receipt_schema') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='selected_ids') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='started_ids') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='finished_ids') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='body_entered_ids') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='body_finished_ids') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='body_assertion_ids') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='lifecycle_failures') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='subtests') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='invalid_population') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 113, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'tests_run': True}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'tests_run': 1.0}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'successful': 0}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'lifecycle_failures': -1}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'subtests': True}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_entered_ids': []}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_finished_ids': []}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'finished_ids': []}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_assertion_ids': []}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_assertion_ids': ['fixture.Case.test_forged']}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'assertion_failures': 2}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 124, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 126, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def tearDown(self): self.fail('teardown')\ndef test_one(self): pass") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 69, in test_lifecycle_failures_never_kill_even_with_body_assertion + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp3i_u2akl/tests/fixture.py", line 3, in tearDown\n def tearDown(self): self.fail(\'teardown\')\n ^^^^^^^^^^^^^^^^^^^^^\nAssertionError: teardown\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=1)\n'} + +====================================================================== +FAIL: test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def test_one(self): self.addCleanup(self.fail, 'cleanup')") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 69, in test_lifecycle_failures_never_kill_even_with_body_assertion + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nAssertionError: cleanup\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=1)\n'} + +====================================================================== +FAIL: test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 69, in test_lifecycle_failures_never_kill_even_with_body_assertion + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\ntest_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpktpqy5jz/tests/fixture.py", line 4, in test_one\n def test_one(self): self.fail(\'body\')\n ^^^^^^^^^^^^^^^^^\nAssertionError: body\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpktpqy5jz/tests/fixture.py", line 3, in tearDown\n def tearDown(self): self.fail(\'teardown\')\n ^^^^^^^^^^^^^^^^^^^^^\nAssertionError: teardown\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=2)\n'} + +====================================================================== +FAIL: test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) (source="def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')") +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 69, in test_lifecycle_failures_never_kill_even_with_body_assertion + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\ntest_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp_imcd3ae/tests/fixture.py", line 5, in test_one\n self.fail(\'body\')\nAssertionError: body\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nAssertionError: cleanup\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=2)\n'} + +====================================================================== +FAIL: test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 40, in test_setup_assertion_is_not_a_kill + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpiid3uj2g/tests/fixture.py", line 4, in setUp\n def setUp(self): self.fail(\'setup only\')\n ^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: setup only\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=1)\n'} + +====================================================================== +FAIL: test_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 101, in test_summary_without_lifecycle_receipt_fails_closed + self.assertEqual(mutations.classify(old, 1), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +---------------------------------------------------------------------- +Ran 8 tests in 1.454s + +FAILED (failures=34, errors=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json new file mode 100644 index 000000000..9582c60fc --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json @@ -0,0 +1,116 @@ +{ + "component": "kernel_replay", + "changed_files": { + "run_tests.py": { + "baseline_sha256": "b0a7f1c508462c21688de8d5ec70384d40f780c342814d97589f0b45f2d7620b", + "previous_integrated_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "changed_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa" + }, + "mutations.py": { + "baseline_sha256": "5fd6fbbfd2aab463f1c2c017af942762ae798a67f3d1fc47001bc317b8fee0a0", + "previous_integrated_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "changed_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd" + }, + "tests/test_mutation_harness.py": { + "baseline_sha256": "ca90d5c5c8e48d163d35b2170f2e7f08352863c23bd73f1b383a73a2dcc16ff3", + "previous_integrated_sha256": "96f372fbc4dbf0c0ead1195f85230235741acca687405b74f7365b9d9647e843", + "changed_sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6" + } + }, + "current_harness_method_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "current_harness_method_count": 14, + "replaces_old_harness_ids": [ + "test_mutation_harness.MutationHarnessTests.test_only_clean_assertion_failure_is_a_kill" + ], + "unchanged_original_method_count": 40, + "current_total_test_method_count": 54, + "fresh_normal_methods": { + "kernel-controls-green.log": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "kernel-population-listing-green.log": [ + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies" + ], + "kernel-foreign-subtest-green.log": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ] + }, + "fresh_optimized_methods": { + "kernel-controls-optimized-green.log": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "kernel-foreign-subtest-optimized-green.log": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ] + }, + "fresh_original_production_mutants": 0, + "fresh_harness_source_mutants": { + "initial_generation": 8, + "changed_final_runner_generation": 4, + "foreign_parent_followup_generation": 1, + "unique_safeguard_mutants": 10, + "unchanged_classifier_mutants_reused": 5, + "note": "13 observed harness-mutant executions represent 10 distinct safeguard definitions across source generations; no fresh original production mutant replay" + }, + "historical_original_production_mutants_reused": { + "fresh_from_previous_component_delivery": 19, + "reused_from_previous_component_delivery": 6 + }, + "scope": "No original Lean, project build, proof, broad kernel suite, or original production mutation replay. Dynamic benign fixture invocations are controls, not additional production-suite methods.", + "unchanged_mutation_definitions_block_sha256": "3de9f76a2f8b81d9c0a1fd81c89ed0b8a2efd92ef73900ddaabd761469b45499", + "evidence_reuse_rationale": "Only the runner/classifier and its harness tests changed. Original kernel_replay.py, ExactReplay.lean, wrapper/real test bodies, and all 25 original mutation definitions remain unchanged. Previously established actual assertion traces in those selected bodies remain body-scoped evidence. New phase controls correct future receipt grading; old receipts are retained historical records, not rewritten as new-schema receipts or presented as a fresh whole-suite run. Reuse old 19 fresh +6 earlier kills under their source applicability, with owner source-custody checks separate.", + "foreign_parent_followup": { + "specific_uncovered_obligation": "A reported subtest must belong to the actual selected parent TestCase.", + "guard_change": "Reject getattr(subtest,test_case,None) is not test; only foreign-parent events affected.", + "reused_evidence": "All prior13 controls and unchanged safeguards use actual parent identity and remain applicable.", + "fresh_evidence": [ + "kernel-foreign-subtest-red.log", + "kernel-foreign-subtest-green.log", + "kernel-foreign-subtest-optimized-green.log", + "kernel-parent-identity-mutant/summary.json" + ] + }, + "independent_review": { + "path": "evidence/independent-lifecycle-review.json", + "sha256": "e9ad02a21799e314b5374d77cb6aef468e2561f92ee23d9b5e3fefe6e19df242", + "outcome": "CLEAR on final source hashes; provider-distinct process requirements separately tracked" + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log new file mode 100644 index 000000000..54c72abb3 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log @@ -0,0 +1,17 @@ +test_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... FAIL + +====================================================================== +FAIL: test_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 54, in test_dispatch_hook_assertion_without_selected_method_is_error + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp2q0dzi55/run_tests.py", line 100, in body\n return original_body(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/tmp/tmp2q0dzi55/tests/fixture.py", line 3, in _callTestMethod\n def _callTestMethod(self, method): self.fail(\'dispatch hook only\')\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: dispatch hook only\n\nRan 1 tests\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}]} + +---------------------------------------------------------------------- +Ran 1 test in 0.068s + +FAILED (failures=1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log new file mode 100644 index 000000000..706563ac2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log @@ -0,0 +1,4 @@ +trust-overridable-display-id: KILLED +drop-body-completion: KILLED +erase-subtest-lifecycle-origin: KILLED +drop-selected-method-dispatch-authorization: KILLED diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json new file mode 100644 index 000000000..bceb286b9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json @@ -0,0 +1,53 @@ +{ + "name": "drop-body-completion", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "d64bec8d1d7849796cc87bae06f94034e19592bd9d68d0b60f70a4245a351743", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... FAIL\n\n======================================================================\nFAIL: test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-final-runner-mutants/guard_run_tests.py\", line 110, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'ERROR' != 'KILLED'\n- ERROR\n+ KILLED\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\ntest_two (fixture.Case.test_two) ... ok\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpislbdejc/run_tests.py\", line 110, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'finished_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'body_entered_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'body_finished_ids': [], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json new file mode 100644 index 000000000..6422c05f8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json @@ -0,0 +1,53 @@ +{ + "name": "drop-selected-method-dispatch-authorization", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "5785187c7611d8e57b5d81909439a0e96b13630e60f19af60b3cbbe4d927c142", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... FAIL\n\n======================================================================\nFAIL: test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-final-runner-mutants/guard_run_tests.py\", line 110, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpfs9zp6c9/run_tests.py\", line 98, in lifecycle\\n return _original(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: called from setup\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json new file mode 100644 index 000000000..6763eac2e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json @@ -0,0 +1,53 @@ +{ + "name": "erase-subtest-lifecycle-origin", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "8983e64fda9e4990dfa1b8b7702ecc525adb50e50bda2423faa0194238bacba7", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... FAIL\n\n======================================================================\nFAIL: test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-final-runner-mutants/guard_run_tests.py\", line 110, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\n test_one (fixture.Case.test_one) (i=1) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp4h835m19/run_tests.py\", line 110, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one) (i=1)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp4h835m19/tests/fixture.py\", line 4, in tearDown\\n with self.subTest(i=1): self.fail(\\'teardown subtest\\')\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: teardown subtest\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one', 'fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 1, 'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}, {'parent_id': 'fixture.Case.test_one', 'origin': 'subtest'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py new file mode 100644 index 000000000..1eb89b3a4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py @@ -0,0 +1,227 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + # _Outcome calls addFailure *after* this wrapper unwinds. + if inspect.iscoroutinefunction(original_body): + @functools.wraps(original_body) + async def async_body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected async method invoked outside body dispatch') + return await original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return await original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + body = async_body + setattr(test, test._testMethodName, body) + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection): + cases, population = describe_suite(suite, selection) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + for test in cases: + if method_id(test) is not None: + instrument(test, result) + suite.run(result) + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json new file mode 100644 index 000000000..f43adee1b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "scope": "4 final runner-source mutants after dispatch guard change; unchanged classifier controls reused from prior generation", + "planned": 4, + "killed": 4, + "ok": true, + "results": [ + { + "name": "trust-overridable-display-id", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "1d11bd9a48ddf6b9617357966fd5e7866e2165909b8b9a4a41e6f052cad6f798", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9" + }, + { + "name": "drop-body-completion", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "d64bec8d1d7849796cc87bae06f94034e19592bd9d68d0b60f70a4245a351743", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9" + }, + { + "name": "erase-subtest-lifecycle-origin", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "8983e64fda9e4990dfa1b8b7702ecc525adb50e50bda2423faa0194238bacba7", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9" + }, + { + "name": "drop-selected-method-dispatch-authorization", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "5785187c7611d8e57b5d81909439a0e96b13630e60f19af60b3cbbe4d927c142", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json new file mode 100644 index 000000000..2f937b841 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json @@ -0,0 +1,74 @@ +{ + "name": "trust-overridable-display-id", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "mutated_sha256": "1d11bd9a48ddf6b9617357966fd5e7866e2165909b8b9a4a41e6f052cad6f798", + "guard_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... \n test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='') ... FAIL\n\n======================================================================\nFAIL: test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-harness-mutant-nqgsaus4/kernel_replay/tests/test_mutation_harness.py\", line 123, in test_empty_duplicate_synthetic_and_spoofed_population_is_error\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_forged'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpyy31xnaq/run_tests.py\", line 110, in dispatch\\n return original_dispatch(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_forged'], 'finished_ids': ['fixture.Case.test_forged'], 'body_entered_ids': ['fixture.Case.test_forged'], 'body_finished_ids': ['fixture.Case.test_forged'], 'body_assertion_ids': ['fixture.Case.test_forged'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_forged', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log new file mode 100644 index 000000000..bf9d37f08 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log @@ -0,0 +1,6 @@ +test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok + +---------------------------------------------------------------------- +Ran 1 test in 0.067s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log new file mode 100644 index 000000000..b5c27518b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log @@ -0,0 +1,6 @@ +test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok + +---------------------------------------------------------------------- +Ran 1 test in 0.210s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log new file mode 100644 index 000000000..f3978a0a6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log @@ -0,0 +1,17 @@ +test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... FAIL + +====================================================================== +FAIL: test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 108, in test_foreign_subtest_parent_cannot_claim_selected_body_assertion + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... \n unittest.case.FunctionTestCase () [foreign] ... FAIL\ntest_one (fixture.Case.test_one) ... ok\n\n======================================================================\nFAIL: unittest.case.FunctionTestCase () [foreign]\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp7qy0b623/tests/fixture.py", line 6, in test_one\n try: raise AssertionError(\'foreign parent assertion\')\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: foreign parent assertion\n\nRan 1 tests\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 1, 'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'subtest'}]} + +---------------------------------------------------------------------- +Ran 1 test in 0.068s + +FAILED (failures=1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log new file mode 100644 index 000000000..baa1495a0 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log @@ -0,0 +1,8 @@ +restore-summary-only-grading: KILLED +trust-overridable-display-id: KILLED +ignore-body-population-receipt: KILLED +accept-boolean-counts: KILLED +ignore-invalid-population: KILLED +ignore-selector-binding: KILLED +drop-body-completion: KILLED +erase-subtest-lifecycle-origin: KILLED diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json new file mode 100644 index 000000000..31cf3b9bf --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json @@ -0,0 +1,229 @@ +{ + "name": "accept-boolean-counts", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "06da5ce7765d341b7ddbb4aeed0f4de230692fe9751872ac5520a8f0a614c0a9", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... \n test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'tests_run': True}) ... FAIL\n\n======================================================================\nFAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'tests_run': True})\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-harness-mutant-zwsrcxo3/kernel_replay/tests/test_mutation_harness.py\", line 147, in test_forged_or_missing_accounting_is_error\n self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR')\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "lifecycle_failures": 0, + "subtests": 35, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json new file mode 100644 index 000000000..635c6aa15 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json @@ -0,0 +1,53 @@ +{ + "name": "drop-body-completion", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "mutated_sha256": "5f672e042c619ec1248a9c8ab461e6ddd8a57cc71a18652ccbdaa42becd5179a", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... FAIL\n\n======================================================================\nFAIL: test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-harness-mutants/guard_run_tests.py\", line 103, in body\n return original_body(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/tmp/kernel-harness-mutant-8vt7u_e9/kernel_replay/tests/test_mutation_harness.py\", line 47, in test_body_assertion_kills_after_all_selected_bodies_finish\n self.assertEqual(outcome, 'KILLED', value)\nAssertionError: 'ERROR' != 'KILLED'\n- ERROR\n+ KILLED\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'invalid_population': [], 'tests_run': 2, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\ntest_two (fixture.Case.test_two) ... ok\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmp33cy_o_f/run_tests.py\", line 103, in body\\n return original_body(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/tmp/tmp33cy_o_f/tests/fixture.py\", line 4, in test_one\\n def test_one(self): self.fail(\\'body assertion\\')\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: body assertion\\n\\nRan 2 tests\\n', 'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'finished_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'body_entered_ids': ['fixture.Case.test_one', 'fixture.Case.test_two'], 'body_finished_ids': [], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json new file mode 100644 index 000000000..941019fe8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json @@ -0,0 +1,53 @@ +{ + "name": "erase-subtest-lifecycle-origin", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "mutated_sha256": "bb28e94385cca95474399e7195bdd01d4ecaa38a0a34c48ea2d7d242294e776b", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... FAIL\n\n======================================================================\nFAIL: test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-harness-mutants/guard_run_tests.py\", line 103, in body\n return original_body(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/tmp/kernel-harness-mutant-ik_m69vt/kernel_replay/tests/test_mutation_harness.py\", line 103, in test_lifecycle_subtests_and_subtest_errors_are_errors\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\n test_one (fixture.Case.test_one) (i=1) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpnoul2hjg/run_tests.py\", line 103, in body\\n return original_body(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/tmp/tmpnoul2hjg/tests/fixture.py\", line 5, in test_one\\n def test_one(self): self.fail(\\'body\\')\\n ^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one) (i=1)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpnoul2hjg/tests/fixture.py\", line 4, in tearDown\\n with self.subTest(i=1): self.fail(\\'teardown subtest\\')\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: teardown subtest\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one', 'fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 1, 'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}, {'parent_id': 'fixture.Case.test_one', 'origin': 'subtest'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py new file mode 100644 index 000000000..6ea012e79 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py @@ -0,0 +1,201 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + + def startTest(self, test): + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + return _original(*args, **kwargs) + setattr(test, name, lifecycle) + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + # _Outcome calls addFailure *after* this wrapper unwinds. + if inspect.iscoroutinefunction(original_body): + @functools.wraps(original_body) + async def async_body(*args, **kwargs): + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return await original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + body = async_body + setattr(test, test._testMethodName, body) + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection): + cases, population = describe_suite(suite, selection) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + for test in cases: + if method_id(test) is not None: + instrument(test, result) + suite.run(result) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json new file mode 100644 index 000000000..2a5ebefd7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json @@ -0,0 +1,234 @@ +{ + "name": "ignore-body-population-receipt", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "c85285407161cecf59df9b10a077a24d617c87f9429588a42422187556cbfa12", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... \n test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_entered_ids': []}) ... FAIL\n test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_finished_ids': []}) ... FAIL\n\n======================================================================\nFAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_entered_ids': []})\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-harness-mutant-x6w52vrf/kernel_replay/tests/test_mutation_harness.py\", line 147, in test_forged_or_missing_accounting_is_error\n self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR')\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n\n\n======================================================================\nFAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'body_finished_ids': []})\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-harness-mutant-x6w52vrf/kernel_replay/tests/test_mutation_harness.py\", line 147, in test_forged_or_missing_accounting_is_error\n self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR')\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "lifecycle_failures": 0, + "subtests": 35, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "assertion" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "origin": "subtest" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json new file mode 100644 index 000000000..687e470eb --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json @@ -0,0 +1,74 @@ +{ + "name": "ignore-invalid-population", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "7cd74e865e396cbe274d9a7b0b46d408d9414242fd62da59fe512e1fa0b9b6f0", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... \n test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='') ... FAIL\n\n======================================================================\nFAIL: test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-harness-mutant-xqt6v7vv/kernel_replay/tests/test_mutation_harness.py\", line 115, in test_empty_duplicate_synthetic_and_spoofed_population_is_error\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': ['display identity does not match selected method'], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpqpi8dsgy/run_tests.py\", line 103, in body\\n return original_body(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/tmp/tmpqpi8dsgy/tests/fixture.py\", line 4, in test_one\\n def test_one(self): self.fail(\"body\")\\n ^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json new file mode 100644 index 000000000..9fec9772d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json @@ -0,0 +1,229 @@ +{ + "name": "ignore-selector-binding", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "5f51e5cd8b430e63311419b085efcee82e8978659f184d192ea0b252b8e6d4e2", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... FAIL\n\n======================================================================\nFAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-harness-mutants/guard_run_tests.py\", line 103, in body\n return original_body(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/tmp/kernel-harness-mutant-mgro073h/kernel_replay/tests/test_mutation_harness.py\", line 149, in test_forged_or_missing_accounting_is_error\n self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR')\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error" + ], + "lifecycle_failures": 0, + "subtests": 35, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json new file mode 100644 index 000000000..9495a719e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json @@ -0,0 +1,53 @@ +{ + "name": "restore-summary-only-grading", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "cfbac22e1f3cce87e74b81472848e4f025c556b86bf964a0ac0f17b41dd13e33", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... FAIL\n\n======================================================================\nFAIL: test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-harness-mutants/guard_run_tests.py\", line 103, in body\n return original_body(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/tmp/kernel-harness-mutant-0pwphcni/kernel_replay/tests/test_mutation_harness.py\", line 40, in test_setup_assertion_is_not_a_kill\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmptrdcfk30/run_tests.py\", line 93, in lifecycle\\n return _original(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: setup only\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': [], 'body_finished_ids': [], 'body_assertion_ids': [], 'lifecycle_failures': 1, 'subtests': 0, 'subtest_events': [], 'assertion_events': []}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json new file mode 100644 index 000000000..09fc3588b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json @@ -0,0 +1,89 @@ +{ + "schema_version": 1, + "scope": "8 targeted actual harness-source mutants; not original CBZ mutant replay", + "planned": 8, + "killed": 8, + "ok": true, + "results": [ + { + "name": "restore-summary-only-grading", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "cfbac22e1f3cce87e74b81472848e4f025c556b86bf964a0ac0f17b41dd13e33", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "name": "trust-overridable-display-id", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "mutated_sha256": "8f97efa8da0cafe4008cf369dd07a867ffd284b0b6c1b4ffe414435a27c493fb", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "name": "ignore-body-population-receipt", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "c85285407161cecf59df9b10a077a24d617c87f9429588a42422187556cbfa12", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "name": "accept-boolean-counts", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "06da5ce7765d341b7ddbb4aeed0f4de230692fe9751872ac5520a8f0a614c0a9", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "name": "ignore-invalid-population", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "7cd74e865e396cbe274d9a7b0b46d408d9414242fd62da59fe512e1fa0b9b6f0", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "name": "ignore-selector-binding", + "file": "mutations.py", + "test": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "mutated_sha256": "5f51e5cd8b430e63311419b085efcee82e8978659f184d192ea0b252b8e6d4e2", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "name": "drop-body-completion", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "mutated_sha256": "5f672e042c619ec1248a9c8ab461e6ddd8a57cc71a18652ccbdaa42becd5179a", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + }, + { + "name": "erase-subtest-lifecycle-origin", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "mutated_sha256": "bb28e94385cca95474399e7195bdd01d4ecaa38a0a34c48ea2d7d242294e776b", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json new file mode 100644 index 000000000..66426d433 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json @@ -0,0 +1,74 @@ +{ + "name": "trust-overridable-display-id", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "mutated_sha256": "8f97efa8da0cafe4008cf369dd07a867ffd284b0b6c1b4ffe414435a27c493fb", + "guard_sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... \n test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='') ... FAIL\n\n======================================================================\nFAIL: test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) (selection='fixture.Case', tail='')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/kernel-harness-mutant-_yuajen8/kernel_replay/tests/test_mutation_harness.py\", line 115, in test_empty_duplicate_synthetic_and_spoofed_population_is_error\n self.assertEqual(outcome, 'ERROR', value)\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_forged'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\\n\\n======================================================================\\nFAIL: test_one (fixture.Case.test_one)\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpm_pbdttl/run_tests.py\", line 103, in body\\n return original_body(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/tmp/tmpm_pbdttl/tests/fixture.py\", line 4, in test_one\\n def test_one(self): self.fail(\"body\")\\n ^^^^^^^^^^^^^^^^^\\nAssertionError: body\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_forged'], 'finished_ids': ['fixture.Case.test_forged'], 'body_entered_ids': ['fixture.Case.test_forged'], 'body_finished_ids': ['fixture.Case.test_forged'], 'body_assertion_ids': ['fixture.Case.test_forged'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_forged', 'origin': 'body'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error" + ], + "lifecycle_failures": 0, + "subtests": 4, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "assertion" + } + ], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "origin": "subtest" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log new file mode 100644 index 000000000..4adf9a218 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log @@ -0,0 +1,17 @@ +test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... FAIL + +====================================================================== +FAIL: test_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 62, in test_selected_method_invoked_from_lifecycle_is_error + self.assertEqual(outcome, 'ERROR', value) +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmpofxk0gy6/run_tests.py", line 93, in lifecycle\n return _original(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: called from setup\n\nRan 1 tests\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 0, 'subtest_events': [], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'body'}]} + +---------------------------------------------------------------------- +Ran 1 test in 0.065s + +FAILED (failures=1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log new file mode 100644 index 000000000..c81b9a79b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log @@ -0,0 +1 @@ +drop-foreign-subtest-parent-identity: KILLED diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json new file mode 100644 index 000000000..3b44c745f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json @@ -0,0 +1,53 @@ +{ + "name": "drop-foreign-subtest-parent-identity", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "mutated_sha256": "345720acce15f19f34f2b0586fb94326e5bb80f83abb03ccfe0da61dbb06e303", + "guard_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "tests": { + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ], + "invalid_population": [], + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... FAIL\n\n======================================================================\nFAIL: test_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/delivery/mutation-lifecycle-fix/evidence/kernel-parent-identity-mutant/guard_run_tests.py\", line 112, in dispatch\n return original_dispatch(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: 'KILLED' != 'ERROR'\n- KILLED\n+ ERROR\n : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 1, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... \\n unittest.case.FunctionTestCase () [foreign] ... FAIL\\ntest_one (fixture.Case.test_one) ... ok\\n\\n======================================================================\\nFAIL: unittest.case.FunctionTestCase () [foreign]\\n----------------------------------------------------------------------\\nTraceback (most recent call last):\\n File \"/tmp/tmpw68eu4zg/tests/fixture.py\", line 6, in test_one\\n try: raise AssertionError(\\'foreign parent assertion\\')\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError: foreign parent assertion\\n\\nRan 1 tests\\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': ['fixture.Case.test_one'], 'lifecycle_failures': 0, 'subtests': 1, 'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}], 'assertion_events': [{'parent_id': 'fixture.Case.test_one', 'origin': 'subtest'}]}\n\nRan 1 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ], + "body_assertion_ids": [ + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion" + ], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "origin": "body" + } + ] + }, + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py new file mode 100644 index 000000000..87e7fd4d6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py @@ -0,0 +1,229 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and isinstance(err[1], AssertionError)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + # _Outcome calls addFailure *after* this wrapper unwinds. + if inspect.iscoroutinefunction(original_body): + @functools.wraps(original_body) + async def async_body(*args, **kwargs): + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected async method invoked outside body dispatch') + return await original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + return await original_body(*args, **kwargs) + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + body = async_body + setattr(test, test._testMethodName, body) + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection): + cases, population = describe_suite(suite, selection) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + for test in cases: + if method_id(test) is not None: + instrument(test, result) + suite.run(result) + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json new file mode 100644 index 000000000..036e4c463 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json @@ -0,0 +1,19 @@ +{ + "schema_version": 1, + "scope": "one final foreign-subtest parent-identity source guard mutation; all unrelated controls reused", + "planned": 1, + "killed": 1, + "ok": true, + "results": [ + { + "name": "drop-foreign-subtest-parent-identity", + "file": "run_tests.py", + "test": "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "mutated_sha256": "345720acce15f19f34f2b0586fb94326e5bb80f83abb03ccfe0da61dbb06e303", + "guard_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa" + } + ] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log new file mode 100644 index 000000000..8223f3785 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log @@ -0,0 +1,17 @@ +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... FAIL + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 149, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +---------------------------------------------------------------------- +Ran 1 test in 0.061s + +FAILED (failures=1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log new file mode 100644 index 000000000..a0e641f44 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log @@ -0,0 +1,6 @@ +test_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok + +---------------------------------------------------------------------- +Ran 1 test in 0.084s + +OK diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json new file mode 100644 index 000000000..e7dc82076 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json @@ -0,0 +1,16 @@ +{ + "command": "current isolated run_tests.py --test fixture.Case (benign setup assertion)", + "returncode": 1, + "classifier_outcome": "KILLED", + "body_entered": false, + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_one (fixture.Case.test_one) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/tmpcoabbk9t/tests/fixture.py\", line 3, in setUp\n def setUp(self): self.fail(\"benign setup assertion; body never entered\")\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: benign setup assertion; body never entered\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (failures=1)\n" + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log new file mode 100644 index 000000000..ac3e91386 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log @@ -0,0 +1,74 @@ +test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok +test_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... FAIL +test_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok +test_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok +test_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok +test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='subtest_events') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='assertion_events') ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'assertion_events': []}) ... FAIL + test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}) ... FAIL +test_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok +test_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok +test_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok +test_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok + +====================================================================== +FAIL: test_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 88, in test_body_scoped_subtest_assertions_kill_without_changing_parent_population + self.assertEqual(outcome, 'KILLED', value) +AssertionError: 'ERROR' != 'KILLED' +- ERROR ++ KILLED + : {'receipt_schema': 'cbz-unittest-lifecycle-v1', 'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], 'invalid_population': [], 'tests_run': 1, 'assertion_failures': 2, 'errors': 0, 'skipped': 0, 'expected_failures': 0, 'unexpected_successes': 0, 'successful': False, 'log': 'test_one (fixture.Case.test_one) ... \n test_one (fixture.Case.test_one) (i=1) ... FAIL\n test_one (fixture.Case.test_one) (i=2) ... FAIL\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one) (i=1)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp5c_m0fyl/tests/fixture.py", line 4, in test_one\n with self.subTest(i=1): self.fail(\'first\')\n ^^^^^^^^^^^^^^^^^^\nAssertionError: first\n\n======================================================================\nFAIL: test_one (fixture.Case.test_one) (i=2)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/tmp5c_m0fyl/tests/fixture.py", line 5, in test_one\n with self.subTest(i=2): self.fail(\'second\')\n ^^^^^^^^^^^^^^^^^^^\nAssertionError: second\n\nRan 1 tests\n', 'started_ids': ['fixture.Case.test_one'], 'finished_ids': ['fixture.Case.test_one'], 'body_entered_ids': ['fixture.Case.test_one'], 'body_finished_ids': ['fixture.Case.test_one'], 'body_assertion_ids': [], 'lifecycle_failures': 0, 'subtests': 2} + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='subtest_events') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 128, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (missing='assertion_events') +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 128, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify(value, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'assertion_events': []}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 141, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +====================================================================== +FAIL: test_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) (changes={'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/workspace/cbz-0/delivery/mutation-lifecycle-fix/work/kernel_replay/tests/test_mutation_harness.py", line 141, in test_forged_or_missing_accounting_is_error + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') +AssertionError: 'KILLED' != 'ERROR' +- KILLED ++ ERROR + + +---------------------------------------------------------------------- +Ran 10 tests in 1.537s + +FAILED (failures=5) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py new file mode 100644 index 000000000..75404718d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 +"""Targeted actual runner/classifier source mutants; no Lean or original-mutant replay.""" +from pathlib import Path +import hashlib +import importlib.util +import json +import shutil +import subprocess +import sys +import tempfile + +BASE = Path(__file__).resolve().parents[1] +WORK = BASE / 'work/kernel_replay' +OUT = BASE / 'evidence/kernel-final-runner-mutants' +OUT.mkdir(exist_ok=True) +GUARD = OUT / 'guard_run_tests.py' +GUARD.write_bytes((WORK / 'run_tests.py').read_bytes()) +spec = importlib.util.spec_from_file_location('trusted_classifier', WORK / 'mutations.py') +trusted = importlib.util.module_from_spec(spec) +spec.loader.exec_module(trusted) +sha = lambda data: hashlib.sha256(data).hexdigest() + +def replace_once(old, new): + def transform(source): + assert source.count(old) == 1, old + return source.replace(old, new, 1) + return transform + +def legacy(source): + a, b = source.index('def classify('), source.index('\n\ndef digest') + return source[:a] + '''def classify(value, code, expected_selection=None, expected_ids=None): + if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('errors'): + return 'KILLED' + return 'SURVIVED' if code == 0 else 'ERROR' +''' + source[b:] + +def remove_completion(source): + anchor = 'result.body_finished_ids.append(method_id(test))' + assert source.count(anchor) == 2 + return source.replace(anchor, 'pass # mutant drops body completion') + +def erase_subtest_origin(source): + source = replace_once("phase = self.phase.get(id(test))", "phase = 'body'")(source) + return replace_once("if phase == 'body' and id(test) not in self.body_active:", "if False:")(source) + +PREFIX = 'test_mutation_harness.MutationHarnessTests.' +plan = [ + ('restore-summary-only-grading', 'mutations.py', legacy, 'test_setup_assertion_is_not_a_kill'), + ('trust-overridable-display-id', 'run_tests.py', replace_once("return cls.__module__ + '.' + cls.__qualname__ + '.' + name", 'return test.id()'), 'test_empty_duplicate_synthetic_and_spoofed_population_is_error'), + ('ignore-body-population-receipt', 'mutations.py', replace_once('keys[1:5]', 'keys[1:3]'), 'test_forged_or_missing_accounting_is_error'), + ('accept-boolean-counts', 'mutations.py', replace_once('type(value.get(key)) is not int', 'not isinstance(value.get(key), int)'), 'test_forged_or_missing_accounting_is_error'), + ('ignore-invalid-population', 'mutations.py', replace_once("if value.get('invalid_population') != []:", 'if False:'), 'test_empty_duplicate_synthetic_and_spoofed_population_is_error'), + ('ignore-selector-binding', 'mutations.py', replace_once('or any(not any(selector', 'or False and any(not any(selector'), 'test_forged_or_missing_accounting_is_error'), + ('drop-body-completion', 'run_tests.py', remove_completion, 'test_body_assertion_kills_after_all_selected_bodies_finish'), + ('erase-subtest-lifecycle-origin', 'run_tests.py', erase_subtest_origin, 'test_lifecycle_subtests_and_subtest_errors_are_errors'), +] +plan = [item for item in plan if item[1] == 'run_tests.py'] +def drop_dispatch_authorization(source): + anchor = 'if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0):' + assert source.count(anchor) == 2 + return source.replace(anchor, 'if False:') +plan.append(('drop-selected-method-dispatch-authorization', 'run_tests.py', drop_dispatch_authorization, + 'test_selected_method_invoked_from_lifecycle_is_error')) +results = [] +for name, filename, transform, test in plan: + with tempfile.TemporaryDirectory(prefix='kernel-harness-mutant-') as tmp: + root = Path(tmp) / 'kernel_replay' + shutil.copytree(WORK, root, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + target = root / filename + original = target.read_text() + changed = transform(original) + compile(changed, filename, 'exec') + target.write_text(changed) + output = OUT / (name + '.json') + driver = Path(tmp) / 'monitor.py' + driver.write_text('import importlib.util,sys\nfrom pathlib import Path\n' + 's=importlib.util.spec_from_file_location("guard",sys.argv[1]);m=importlib.util.module_from_spec(s);s.loader.exec_module(m)\n' + 'm.ROOT=Path(sys.argv[2]);sys.argv=["guard","--output",sys.argv[3],"--test",sys.argv[4]]\n' + 'raise SystemExit(m.main())\n') + command = [sys.executable, '-B', '-S', str(driver), str(GUARD), str(root), str(output), PREFIX + test] + p = subprocess.run(command, capture_output=True, text=True, timeout=30) + value = json.loads(output.read_text()) if output.exists() else {} + record = {'name': name, 'file': filename, 'test': PREFIX + test, + 'outcome': trusted.classify(value, p.returncode, [PREFIX + test], [PREFIX + test]), + 'returncode': p.returncode, 'original_sha256': sha(original.encode()), + 'mutated_sha256': sha(changed.encode()), 'guard_sha256': sha(GUARD.read_bytes()), + 'tests': value, 'stderr': p.stderr} + output.write_text(json.dumps(record, indent=2) + '\n') + results.append({k: v for k, v in record.items() if k not in ('tests', 'stderr')}) + print(name + ': ' + record['outcome'], flush=True) +report = {'schema_version': 1, 'scope': '4 final runner-source mutants after dispatch guard change; unchanged classifier controls reused from prior generation', + 'planned': len(plan), 'killed': sum(r['outcome'] == 'KILLED' for r in results), + 'ok': all(r['outcome'] == 'KILLED' for r in results), 'results': results} +(OUT / 'summary.json').write_text(json.dumps(report, indent=2) + '\n') +raise SystemExit(0 if report['ok'] else 1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py new file mode 100644 index 000000000..7b582c628 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 +"""Targeted actual runner/classifier source mutants; no Lean or original-mutant replay.""" +from pathlib import Path +import hashlib +import importlib.util +import json +import shutil +import subprocess +import sys +import tempfile + +BASE = Path(__file__).resolve().parents[1] +WORK = BASE / 'work/kernel_replay' +OUT = BASE / 'evidence/kernel-harness-mutants' +OUT.mkdir(exist_ok=True) +GUARD = OUT / 'guard_run_tests.py' +GUARD.write_bytes((WORK / 'run_tests.py').read_bytes()) +spec = importlib.util.spec_from_file_location('trusted_classifier', WORK / 'mutations.py') +trusted = importlib.util.module_from_spec(spec) +spec.loader.exec_module(trusted) +sha = lambda data: hashlib.sha256(data).hexdigest() + +def replace_once(old, new): + def transform(source): + assert source.count(old) == 1, old + return source.replace(old, new, 1) + return transform + +def legacy(source): + a, b = source.index('def classify('), source.index('\n\ndef digest') + return source[:a] + '''def classify(value, code, expected_selection=None, expected_ids=None): + if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('errors'): + return 'KILLED' + return 'SURVIVED' if code == 0 else 'ERROR' +''' + source[b:] + +def remove_completion(source): + anchor = 'result.body_finished_ids.append(method_id(test))' + assert source.count(anchor) == 2 + return source.replace(anchor, 'pass # mutant drops body completion') + +def erase_subtest_origin(source): + source = replace_once("phase = self.phase.get(id(test))", "phase = 'body'")(source) + return replace_once("if phase == 'body' and id(test) not in self.body_active:", "if False:")(source) + +PREFIX = 'test_mutation_harness.MutationHarnessTests.' +plan = [ + ('restore-summary-only-grading', 'mutations.py', legacy, 'test_setup_assertion_is_not_a_kill'), + ('trust-overridable-display-id', 'run_tests.py', replace_once("return cls.__module__ + '.' + cls.__qualname__ + '.' + name", 'return test.id()'), 'test_empty_duplicate_synthetic_and_spoofed_population_is_error'), + ('ignore-body-population-receipt', 'mutations.py', replace_once('keys[1:5]', 'keys[1:3]'), 'test_forged_or_missing_accounting_is_error'), + ('accept-boolean-counts', 'mutations.py', replace_once('type(value.get(key)) is not int', 'not isinstance(value.get(key), int)'), 'test_forged_or_missing_accounting_is_error'), + ('ignore-invalid-population', 'mutations.py', replace_once("if value.get('invalid_population') != []:", 'if False:'), 'test_empty_duplicate_synthetic_and_spoofed_population_is_error'), + ('ignore-selector-binding', 'mutations.py', replace_once('or any(not any(selector', 'or False and any(not any(selector'), 'test_forged_or_missing_accounting_is_error'), + ('drop-body-completion', 'run_tests.py', remove_completion, 'test_body_assertion_kills_after_all_selected_bodies_finish'), + ('erase-subtest-lifecycle-origin', 'run_tests.py', erase_subtest_origin, 'test_lifecycle_subtests_and_subtest_errors_are_errors'), +] +results = [] +for name, filename, transform, test in plan: + with tempfile.TemporaryDirectory(prefix='kernel-harness-mutant-') as tmp: + root = Path(tmp) / 'kernel_replay' + shutil.copytree(WORK, root, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + target = root / filename + original = target.read_text() + changed = transform(original) + compile(changed, filename, 'exec') + target.write_text(changed) + output = OUT / (name + '.json') + driver = Path(tmp) / 'monitor.py' + driver.write_text('import importlib.util,sys\nfrom pathlib import Path\n' + 's=importlib.util.spec_from_file_location("guard",sys.argv[1]);m=importlib.util.module_from_spec(s);s.loader.exec_module(m)\n' + 'm.ROOT=Path(sys.argv[2]);sys.argv=["guard","--output",sys.argv[3],"--test",sys.argv[4]]\n' + 'raise SystemExit(m.main())\n') + command = [sys.executable, '-B', '-S', str(driver), str(GUARD), str(root), str(output), PREFIX + test] + p = subprocess.run(command, capture_output=True, text=True, timeout=30) + value = json.loads(output.read_text()) if output.exists() else {} + record = {'name': name, 'file': filename, 'test': PREFIX + test, + 'outcome': trusted.classify(value, p.returncode, [PREFIX + test], [PREFIX + test]), + 'returncode': p.returncode, 'original_sha256': sha(original.encode()), + 'mutated_sha256': sha(changed.encode()), 'guard_sha256': sha(GUARD.read_bytes()), + 'tests': value, 'stderr': p.stderr} + output.write_text(json.dumps(record, indent=2) + '\n') + results.append({k: v for k, v in record.items() if k not in ('tests', 'stderr')}) + print(name + ': ' + record['outcome'], flush=True) +report = {'schema_version': 1, 'scope': '8 targeted actual harness-source mutants; not original CBZ mutant replay', + 'planned': len(plan), 'killed': sum(r['outcome'] == 'KILLED' for r in results), + 'ok': all(r['outcome'] == 'KILLED' for r in results), 'results': results} +(OUT / 'summary.json').write_text(json.dumps(report, indent=2) + '\n') +raise SystemExit(0 if report['ok'] else 1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py new file mode 100644 index 000000000..07285779d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 +"""Targeted actual runner/classifier source mutants; no Lean or original-mutant replay.""" +from pathlib import Path +import hashlib +import importlib.util +import json +import shutil +import subprocess +import sys +import tempfile + +BASE = Path(__file__).resolve().parents[1] +WORK = BASE / 'work/kernel_replay' +OUT = BASE / 'evidence/kernel-parent-identity-mutant' +OUT.mkdir(exist_ok=True) +GUARD = OUT / 'guard_run_tests.py' +GUARD.write_bytes((WORK / 'run_tests.py').read_bytes()) +spec = importlib.util.spec_from_file_location('trusted_classifier', WORK / 'mutations.py') +trusted = importlib.util.module_from_spec(spec) +spec.loader.exec_module(trusted) +sha = lambda data: hashlib.sha256(data).hexdigest() + +def replace_once(old, new): + def transform(source): + assert source.count(old) == 1, old + return source.replace(old, new, 1) + return transform + +def legacy(source): + a, b = source.index('def classify('), source.index('\n\ndef digest') + return source[:a] + '''def classify(value, code, expected_selection=None, expected_ids=None): + if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('errors'): + return 'KILLED' + return 'SURVIVED' if code == 0 else 'ERROR' +''' + source[b:] + +def remove_completion(source): + anchor = 'result.body_finished_ids.append(method_id(test))' + assert source.count(anchor) == 2 + return source.replace(anchor, 'pass # mutant drops body completion') + +def erase_subtest_origin(source): + source = replace_once("phase = self.phase.get(id(test))", "phase = 'body'")(source) + return replace_once("if phase == 'body' and id(test) not in self.body_active:", "if False:")(source) + +PREFIX = 'test_mutation_harness.MutationHarnessTests.' +plan = [ + ('restore-summary-only-grading', 'mutations.py', legacy, 'test_setup_assertion_is_not_a_kill'), + ('trust-overridable-display-id', 'run_tests.py', replace_once("return cls.__module__ + '.' + cls.__qualname__ + '.' + name", 'return test.id()'), 'test_empty_duplicate_synthetic_and_spoofed_population_is_error'), + ('ignore-body-population-receipt', 'mutations.py', replace_once('keys[1:5]', 'keys[1:3]'), 'test_forged_or_missing_accounting_is_error'), + ('accept-boolean-counts', 'mutations.py', replace_once('type(value.get(key)) is not int', 'not isinstance(value.get(key), int)'), 'test_forged_or_missing_accounting_is_error'), + ('ignore-invalid-population', 'mutations.py', replace_once("if value.get('invalid_population') != []:", 'if False:'), 'test_empty_duplicate_synthetic_and_spoofed_population_is_error'), + ('ignore-selector-binding', 'mutations.py', replace_once('or any(not any(selector', 'or False and any(not any(selector'), 'test_forged_or_missing_accounting_is_error'), + ('drop-body-completion', 'run_tests.py', remove_completion, 'test_body_assertion_kills_after_all_selected_bodies_finish'), + ('erase-subtest-lifecycle-origin', 'run_tests.py', erase_subtest_origin, 'test_lifecycle_subtests_and_subtest_errors_are_errors'), +] +plan = [('drop-foreign-subtest-parent-identity', 'run_tests.py', + replace_once("if getattr(subtest, 'test_case', None) is not test:", 'if False:'), + 'test_foreign_subtest_parent_cannot_claim_selected_body_assertion')] +results = [] +for name, filename, transform, test in plan: + with tempfile.TemporaryDirectory(prefix='kernel-harness-mutant-') as tmp: + root = Path(tmp) / 'kernel_replay' + shutil.copytree(WORK, root, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + target = root / filename + original = target.read_text() + changed = transform(original) + compile(changed, filename, 'exec') + target.write_text(changed) + output = OUT / (name + '.json') + driver = Path(tmp) / 'monitor.py' + driver.write_text('import importlib.util,sys\nfrom pathlib import Path\n' + 's=importlib.util.spec_from_file_location("guard",sys.argv[1]);m=importlib.util.module_from_spec(s);s.loader.exec_module(m)\n' + 'm.ROOT=Path(sys.argv[2]);sys.argv=["guard","--output",sys.argv[3],"--test",sys.argv[4]]\n' + 'raise SystemExit(m.main())\n') + command = [sys.executable, '-B', '-S', str(driver), str(GUARD), str(root), str(output), PREFIX + test] + p = subprocess.run(command, capture_output=True, text=True, timeout=30) + value = json.loads(output.read_text()) if output.exists() else {} + record = {'name': name, 'file': filename, 'test': PREFIX + test, + 'outcome': trusted.classify(value, p.returncode, [PREFIX + test], [PREFIX + test]), + 'returncode': p.returncode, 'original_sha256': sha(original.encode()), + 'mutated_sha256': sha(changed.encode()), 'guard_sha256': sha(GUARD.read_bytes()), + 'tests': value, 'stderr': p.stderr} + output.write_text(json.dumps(record, indent=2) + '\n') + results.append({k: v for k, v in record.items() if k not in ('tests', 'stderr')}) + print(name + ': ' + record['outcome'], flush=True) +report = {'schema_version': 1, 'scope': 'one final foreign-subtest parent-identity source guard mutation; all unrelated controls reused', + 'planned': len(plan), 'killed': sum(r['outcome'] == 'KILLED' for r in results), + 'ok': all(r['outcome'] == 'KILLED' for r in results), 'results': results} +(OUT / 'summary.json').write_text(json.dumps(report, indent=2) + '\n') +raise SystemExit(0 if report['ok'] else 1) diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-first-generation.patch b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-first-generation.patch new file mode 100644 index 000000000..45067dfbb --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-first-generation.patch @@ -0,0 +1,551 @@ +--- a/tools/kernel_replay/run_tests.py ++++ b/tools/kernel_replay/run_tests.py +@@ -1,6 +1,8 @@ + #!/usr/bin/env python3 +-"""Structured, fail-closed unittest runner used by G0 and mutations.""" ++"""Structured unittest execution; only complete selected test bodies grade mutants.""" + import argparse ++import functools ++import inspect + import io + import json + from pathlib import Path +@@ -8,28 +10,217 @@ + import unittest + + ROOT = Path(__file__).resolve().parent ++RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' ++ ++ ++def method_id(test): ++ """Use the actual selected method, rather than an overridable display id.""" ++ cls = type(test) ++ name = getattr(test, '_testMethodName', None) ++ if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' ++ or not isinstance(name, str) or not callable(getattr(test, name, None))): ++ return None ++ return cls.__module__ + '.' + cls.__qualname__ + '.' + name ++ ++ ++def selected_cases(suite): ++ for test in suite: ++ if isinstance(test, unittest.TestSuite): ++ yield from selected_cases(test) ++ else: ++ yield test ++ ++ ++class LifecycleResult(unittest.TextTestResult): ++ def __init__(self, *args, **kwargs): ++ super().__init__(*args, **kwargs) ++ self.started_ids = [] ++ self.finished_ids = [] ++ self.body_entered_ids = [] ++ self.body_finished_ids = [] ++ self.body_assertion_ids = [] ++ self.lifecycle_failures = 0 ++ self.subtests = 0 ++ self.subtest_events = [] ++ self.assertion_events = [] ++ self.phase = {} ++ self.body_exception = {} ++ self.body_active = set() ++ self.dispatch_active = set() ++ self.lifecycle_depth = {} ++ self.invalid_execution = [] ++ ++ def startTest(self, test): ++ self.started_ids.append(method_id(test)) ++ self.phase[id(test)] = 'setup' ++ super().startTest(test) ++ ++ def stopTest(self, test): ++ self.finished_ids.append(method_id(test)) ++ super().stopTest(test) ++ ++ def addFailure(self, test, err): ++ if (self.phase.get(id(test)) == 'body' ++ and self.body_exception.get(id(test)) is err[1] ++ and isinstance(err[1], AssertionError)): ++ self.body_assertion_ids.append(method_id(test)) ++ self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) ++ else: ++ self.lifecycle_failures += 1 ++ super().addFailure(test, err) ++ ++ def addSubTest(self, test, subtest, err): ++ self.subtests += 1 ++ phase = self.phase.get(id(test)) ++ if phase == 'body' and id(test) not in self.body_active: ++ phase = 'outside-body' ++ outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' ++ self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) ++ if err is not None and outcome == 'assertion': ++ if phase == 'body': ++ self.body_assertion_ids.append(method_id(test)) ++ self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) ++ else: ++ self.lifecycle_failures += 1 ++ super().addSubTest(test, subtest, err) ++ ++ ++def instrument(test, result): ++ """Keep body exception identity until unittest reports it after this call exits.""" ++ for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), ++ ('doCleanups', 'cleanup')): ++ original = getattr(test, name) ++ ++ def lifecycle(*args, _original=original, _phase=phase, **kwargs): ++ result.phase[id(test)] = _phase ++ result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 ++ try: ++ return _original(*args, **kwargs) ++ finally: ++ result.lifecycle_depth[id(test)] -= 1 ++ setattr(test, name, lifecycle) ++ original_dispatch = test._callTestMethod ++ ++ def dispatch(*args, **kwargs): ++ if result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') ++ return original_dispatch(*args, **kwargs) ++ result.dispatch_active.add(id(test)) ++ try: ++ return original_dispatch(*args, **kwargs) ++ finally: ++ result.dispatch_active.discard(id(test)) ++ test._callTestMethod = dispatch ++ original_body = getattr(test, test._testMethodName) ++ ++ @functools.wraps(original_body) ++ def body(*args, **kwargs): ++ if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('selected method invoked outside body dispatch') ++ return original_body(*args, **kwargs) ++ result.phase[id(test)] = 'body' ++ result.body_entered_ids.append(method_id(test)) ++ result.body_active.add(id(test)) ++ try: ++ return original_body(*args, **kwargs) ++ except BaseException as exc: ++ result.body_exception[id(test)] = exc ++ raise ++ finally: ++ result.body_active.discard(id(test)) ++ result.body_finished_ids.append(method_id(test)) ++ # _Outcome calls addFailure *after* this wrapper unwinds. ++ if inspect.iscoroutinefunction(original_body): ++ @functools.wraps(original_body) ++ async def async_body(*args, **kwargs): ++ if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('selected async method invoked outside body dispatch') ++ return await original_body(*args, **kwargs) ++ result.phase[id(test)] = 'body' ++ result.body_entered_ids.append(method_id(test)) ++ result.body_active.add(id(test)) ++ try: ++ return await original_body(*args, **kwargs) ++ except BaseException as exc: ++ result.body_exception[id(test)] = exc ++ raise ++ finally: ++ result.body_active.discard(id(test)) ++ result.body_finished_ids.append(method_id(test)) ++ body = async_body ++ setattr(test, test._testMethodName, body) ++ ++ ++def describe_suite(suite, selection): ++ cases = list(selected_cases(suite)) ++ selected = [method_id(test) for test in cases] ++ invalid = [] ++ if not selected: ++ invalid.append('empty selected population') ++ if any(item is None for item in selected): ++ invalid.append('synthetic or unsupported selected test') ++ if len(set(selected)) != len(selected): ++ invalid.append('duplicate selected method identity') ++ for test, identity in zip(cases, selected): ++ if identity is not None and test.id() != identity: ++ invalid.append('display identity does not match selected method') ++ return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} ++ ++ ++def run_suite(suite, selection): ++ cases, population = describe_suite(suite, selection) ++ stream = io.StringIO() ++ result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), ++ descriptions=True, verbosity=2) ++ for test in cases: ++ if method_id(test) is not None: ++ instrument(test, result) ++ suite.run(result) ++ population['invalid_population'].extend(result.invalid_execution) ++ # Render the ordinary summary for humans; grading uses the structured fields. ++ result.printErrors() ++ stream.write(f'Ran {result.testsRun} tests\n') ++ value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, ++ **population, ++ 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), ++ 'errors': len(result.errors), 'skipped': len(result.skipped), ++ 'expected_failures': len(result.expectedFailures), ++ 'unexpected_successes': len(result.unexpectedSuccesses), ++ 'successful': result.wasSuccessful(), 'log': stream.getvalue()} ++ for name in ('started_ids', 'finished_ids', 'body_entered_ids', ++ 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', ++ 'subtest_events', 'assertion_events'): ++ value[name] = getattr(result, name) ++ return value + + + def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) ++ parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') +- stream = io.StringIO() +- result = unittest.TextTestRunner(stream=stream, verbosity=2).run(suite) +- value = {'tests_run': result.testsRun, 'assertion_failures': len(result.failures), +- 'errors': len(result.errors), 'skipped': len(result.skipped), +- 'expected_failures': len(result.expectedFailures), +- 'unexpected_successes': len(result.unexpectedSuccesses), +- 'successful': result.wasSuccessful(), 'log': stream.getvalue()} ++ selection = args.test or ['discover:test_*.py'] ++ if args.list: ++ _, population = describe_suite(suite, selection) ++ Path(args.output).write_text(json.dumps(population, indent=2) + '\n') ++ return 0 if population['selected_ids'] and not population['invalid_population'] else 1 ++ value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') +- return 0 if result.wasSuccessful() and result.testsRun and not result.skipped else 1 ++ complete = (not value['invalid_population'] and value['selected_ids'] ++ and all(value[key] == value['selected_ids'] for key in ++ ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) ++ return 0 if (complete and value['successful'] and not value['skipped'] ++ and not value['expected_failures'] and not value['unexpected_successes'] ++ and all(event['phase'] == 'body' and event['outcome'] == 'success' ++ for event in value['subtest_events']) ++ and not value['lifecycle_failures']) else 1 + + + if __name__ == '__main__': +--- a/tools/kernel_replay/mutations.py ++++ b/tools/kernel_replay/mutations.py +@@ -5,6 +5,7 @@ + import json + import os + from pathlib import Path ++import re + import shutil + import subprocess + import sys +@@ -13,14 +14,71 @@ + ROOT = Path(__file__).resolve().parent + + +-def classify(value, code): +- if (code not in (0, 1) or not value.get('tests_run') or value.get('errors') +- or value.get('skipped') or value.get('expected_failures') +- or value.get('unexpected_successes')): +- return 'ERROR' +- if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('successful'): ++def classify(value, code, expected_selection=None, expected_ids=None): ++ """Grade only trusted runner receipts; legacy/log-only summaries fail closed. ++ ++ This validates accounting, not an adversarial author's fabricated JSON. The ++ receipt must come from the runner subprocess whose source is custody-bound. ++ """ ++ if (not isinstance(value, dict) or type(code) is not int or code not in (0, 1) ++ or value.get('receipt_schema') != 'cbz-unittest-lifecycle-v1' ++ or type(value.get('successful')) is not bool): ++ return 'ERROR' ++ counts = ('tests_run', 'assertion_failures', 'errors', 'skipped', ++ 'expected_failures', 'unexpected_successes', 'lifecycle_failures', 'subtests') ++ if any(type(value.get(key)) is not int or value[key] < 0 for key in counts): ++ return 'ERROR' ++ if any(value[key] for key in ('errors', 'skipped', 'expected_failures', ++ 'unexpected_successes', 'lifecycle_failures')): ++ return 'ERROR' ++ if value.get('invalid_population') != []: ++ return 'ERROR' ++ selection = value.get('selection') ++ if (not isinstance(selection, list) or not selection ++ or any(not isinstance(item, str) or not item for item in selection) ++ or expected_selection is not None and selection != expected_selection): ++ return 'ERROR' ++ keys = ('selected_ids', 'started_ids', 'finished_ids', 'body_entered_ids', ++ 'body_finished_ids', 'body_assertion_ids') ++ for key in keys: ++ ids = value.get(key) ++ if (not isinstance(ids, list) or any(not isinstance(item, str) or not re.fullmatch(r'(?:[A-Za-z_]\w*\.){2,}[A-Za-z_]\w*', item) ++ or item.startswith('unittest.loader.') for item in ids) ++ or key != 'body_assertion_ids' and len(ids) != len(set(ids))): ++ return 'ERROR' ++ selected = value['selected_ids'] ++ if (expected_ids is not None and selected != expected_ids ++ or any(not any(selector == 'discover:test_*.py' or identity == selector ++ or identity.startswith(selector + '.') for selector in selection) ++ for identity in selected)): ++ return 'ERROR' ++ if (not selected or value['tests_run'] != len(selected) ++ or any(value[key] != selected for key in keys[1:5]) ++ or any(item not in selected for item in value['body_assertion_ids']) ++ or value['assertion_failures'] != len(value['body_assertion_ids'])): ++ return 'ERROR' ++ events = value.get('subtest_events') ++ assertions = value.get('assertion_events') ++ if not isinstance(events, list) or not isinstance(assertions, list) or value['subtests'] != len(events): ++ return 'ERROR' ++ for event in events: ++ if (not isinstance(event, dict) or set(event) != {'parent_id', 'phase', 'outcome'} ++ or event['parent_id'] not in selected or event['phase'] != 'body' ++ or event['outcome'] not in ('success', 'assertion')): ++ return 'ERROR' ++ for event in assertions: ++ if (not isinstance(event, dict) or set(event) != {'parent_id', 'origin'} ++ or event['parent_id'] not in selected or event['origin'] not in ('body', 'subtest')): ++ return 'ERROR' ++ direct = [event['parent_id'] for event in assertions if event['origin'] == 'body'] ++ if (len(set(direct)) != len(direct) ++ or value['body_assertion_ids'] != [event['parent_id'] for event in assertions] ++ or [event['parent_id'] for event in assertions if event['origin'] == 'subtest'] != ++ [event['parent_id'] for event in events if event['outcome'] == 'assertion']): ++ return 'ERROR' ++ if code == 1 and value['assertion_failures'] > 0 and value['successful'] is False: + return 'KILLED' +- if code == 0 and value.get('successful') and value.get('assertion_failures') == 0: ++ if code == 0 and value['successful'] is True and value['assertion_failures'] == 0: + return 'SURVIVED' + return 'ERROR' + +@@ -136,7 +194,18 @@ + evidence = ROOT / ('evidence/mutations' if group == 'all' else 'evidence/resource-mutations') + evidence.mkdir(parents=True, exist_ok=True) + results = [] ++ populations = {} + for name, filename, old, new, test in plan: ++ if test not in populations: ++ population_path = evidence / ('population-' + str(len(populations)) + '.json') ++ listed = subprocess.run([sys.executable, '-B', '-S', str(ROOT / 'run_tests.py'), ++ '--output', str(population_path), '--test', test, '--list'], ++ capture_output=True, text=True, timeout=15) ++ population = json.loads(population_path.read_text()) if population_path.exists() else {} ++ if (listed.returncode != 0 or population.get('invalid_population') != [] ++ or not population.get('selected_ids') or population.get('selection') != [test]): ++ raise ValueError('cannot bind unchanged selected test population: ' + test) ++ populations[test] = population['selected_ids'] + with tempfile.TemporaryDirectory(dir=ROOT / 'evidence', prefix='mutant-') as d: + work = Path(d) / 'kernel_replay' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) +@@ -153,7 +222,8 @@ + p = subprocess.run(command, capture_output=True, text=True, timeout=90) + value = json.loads(result_path.read_text()) if result_path.exists() else {} + record = {'name': name, 'file': filename, 'test': test, +- 'outcome': classify(value, p.returncode), 'returncode': p.returncode, ++ 'outcome': classify(value, p.returncode, [test], populations[test]), 'returncode': p.returncode, ++ 'expected_selected_ids': populations[test], + 'original_sha256': digest(original.encode()), + 'mutated_sha256': digest(changed.encode()), 'tests': value, + 'stdout': p.stdout, 'stderr': p.stderr} +--- a/tools/kernel_replay/tests/test_mutation_harness.py ++++ b/tools/kernel_replay/tests/test_mutation_harness.py +@@ -1,25 +1,178 @@ +-"""Mutation accounting cannot turn errors, skips, or no tests into kills.""" ++"""Real runner controls for body-only mutation kills and complete selected populations.""" ++import copy + import importlib.util ++import json + from pathlib import Path ++import shutil ++import subprocess ++import sys ++import tempfile ++import textwrap + import unittest + + ROOT = Path(__file__).resolve().parents[1] ++_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') ++mutations = importlib.util.module_from_spec(_spec) ++_spec.loader.exec_module(mutations) + + + class MutationHarnessTests(unittest.TestCase): +- def test_only_clean_assertion_failure_is_a_kill(self): +- spec = importlib.util.spec_from_file_location('mutations', ROOT / 'mutations.py') +- mod = importlib.util.module_from_spec(spec) +- spec.loader.exec_module(mod) +- clean = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, +- expected_failures=0, unexpected_successes=0, successful=False) +- self.assertEqual(mod.classify(clean, 1), 'KILLED') +- self.assertEqual(mod.classify({**clean, 'assertion_failures': 0, 'successful': True}, 0), 'SURVIVED') +- for changes, code in (({'tests_run': 0}, 1), ({'errors': 1}, 1), +- ({'skipped': 1}, 1), ({'expected_failures': 1}, 1), +- ({'unexpected_successes': 1}, 1), ({}, 2), ({}, -9)): +- with self.subTest(changes=changes, code=code): +- self.assertEqual(mod.classify({**clean, **changes}, code), 'ERROR') ++ def run_fixture(self, methods, selection='fixture.Case', module_tail=''): ++ source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ (root / 'tests/fixture.py').write_text(source) ++ output = root / 'result.json' ++ p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', selection], ++ capture_output=True, text=True, timeout=10) ++ self.assertTrue(output.exists(), p.stderr) ++ value = json.loads(output.read_text()) ++ return mutations.classify(value, p.returncode), value, p.returncode ++ ++ def test_setup_assertion_is_not_a_kill(self): ++ outcome, value, _ = self.run_fixture(''' ++ def setUp(self): self.fail('setup only') ++ def test_one(self): pass ++ ''') ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_body_assertion_kills_after_all_selected_bodies_finish(self): ++ outcome, value, _ = self.run_fixture(''' ++ def test_one(self): self.fail('body assertion') ++ def test_two(self): pass ++ ''') ++ self.assertEqual(outcome, 'KILLED', value) ++ self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) ++ self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) ++ self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) ++ ++ def test_dispatch_hook_assertion_without_selected_method_is_error(self): ++ outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_selected_method_invoked_from_lifecycle_is_error(self): ++ for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", ++ "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", ++ "def tearDown(self): self.test_one()\ndef test_one(self): pass", ++ "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_clean_identity_survives(self): ++ outcome, value, _ = self.run_fixture('def test_one(self): pass') ++ self.assertEqual(outcome, 'SURVIVED', value) ++ ++ def test_lifecycle_failures_never_kill_even_with_body_assertion(self): ++ cases = [ ++ "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", ++ "def test_one(self): self.addCleanup(self.fail, 'cleanup')", ++ "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", ++ "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", ++ "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", ++ "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", ++ "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", ++ ] ++ for source in cases: ++ with self.subTest(source=source): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_errors_skips_and_expected_failures_are_errors(self): ++ cases = [ ++ "def test_one(self): raise RuntimeError('body runtime')", ++ "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", ++ "@unittest.skip('skip')\ndef test_one(self): pass", ++ "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", ++ "@unittest.expectedFailure\ndef test_one(self): pass", ++ ] ++ for source in cases: ++ with self.subTest(source=source): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): ++ for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), ++ ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'KILLED', value) ++ self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) ++ self.assertEqual(value['assertion_failures'], failures) ++ outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") ++ self.assertEqual(outcome, 'SURVIVED', value) ++ ++ def test_lifecycle_subtests_and_subtest_errors_are_errors(self): ++ for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", ++ "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", ++ "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): ++ cases = [ ++ ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), ++ ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), ++ ('def test_one(self): pass', 'fixture.Missing', ''), ++ ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), ++ ] ++ for source, selection, tail in cases: ++ with self.subTest(selection=selection, tail=tail): ++ outcome, value, _ = self.run_fixture(source, selection, tail) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_population_listing_does_not_execute_fixtures_or_bodies(self): ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") ++ output = root / 'population.json' ++ p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', 'fixture.Case', '--list'], ++ capture_output=True, text=True, timeout=10) ++ self.assertEqual(p.returncode, 0, p.stderr) ++ self.assertEqual(json.loads(output.read_text()), ++ {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], ++ 'invalid_population': []}) ++ ++ def test_summary_without_lifecycle_receipt_fails_closed(self): ++ old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, ++ expected_failures=0, unexpected_successes=0, successful=False) ++ self.assertEqual(mutations.classify(old, 1), 'ERROR') ++ self.assertEqual(mutations.classify({}, 1), 'ERROR') ++ self.assertEqual(mutations.classify(None, 1), 'ERROR') ++ ++ def test_forged_or_missing_accounting_is_error(self): ++ _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') ++ for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', ++ 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', ++ 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): ++ with self.subTest(missing=key): ++ value = copy.deepcopy(receipt) ++ value.pop(key, None) ++ self.assertEqual(mutations.classify(value, code), 'ERROR') ++ for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, ++ {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, ++ {'body_entered_ids': []}, {'body_finished_ids': []}, ++ {'finished_ids': []}, {'body_assertion_ids': []}, ++ {'body_assertion_ids': ['fixture.Case.test_forged']}, ++ {'selected_ids': ['synthetic']}, ++ {'selected_ids': ['unittest.loader._FailedTest.test_one']}, ++ {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, ++ {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, ++ {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, ++ {'unexpected_successes': 1}, {'assertion_failures': 2}, ++ {'subtests': 1}, {'assertion_events': []}, ++ {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): ++ with self.subTest(changes=changes): ++ self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') ++ self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') ++ self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') ++ self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') ++ for exit_code in (2, -9, True): ++ self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + + if __name__ == '__main__': diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch new file mode 100644 index 000000000..c9a45bbe7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch @@ -0,0 +1,24 @@ +--- a/tools/kernel_replay/run_tests.py ++++ b/tools/kernel_replay/run_tests.py +@@ -74,6 +74,8 @@ + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' ++ if getattr(subtest, 'test_case', None) is not test: ++ phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': +--- a/tools/kernel_replay/tests/test_mutation_harness.py ++++ b/tools/kernel_replay/tests/test_mutation_harness.py +@@ -103,6 +103,10 @@ + outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") + self.assertEqual(outcome, 'SURVIVED', value) + ++ def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): ++ outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") ++ self.assertEqual(outcome, 'ERROR', value) ++ + def test_lifecycle_subtests_and_subtest_errors_are_errors(self): + for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", + "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel.patch b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel.patch new file mode 100644 index 000000000..815bf2cf3 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel.patch @@ -0,0 +1,557 @@ +--- a/tools/kernel_replay/run_tests.py ++++ b/tools/kernel_replay/run_tests.py +@@ -1,6 +1,8 @@ + #!/usr/bin/env python3 +-"""Structured, fail-closed unittest runner used by G0 and mutations.""" ++"""Structured unittest execution; only complete selected test bodies grade mutants.""" + import argparse ++import functools ++import inspect + import io + import json + from pathlib import Path +@@ -8,28 +10,219 @@ + import unittest + + ROOT = Path(__file__).resolve().parent ++RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' ++ ++ ++def method_id(test): ++ """Use the actual selected method, rather than an overridable display id.""" ++ cls = type(test) ++ name = getattr(test, '_testMethodName', None) ++ if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' ++ or not isinstance(name, str) or not callable(getattr(test, name, None))): ++ return None ++ return cls.__module__ + '.' + cls.__qualname__ + '.' + name ++ ++ ++def selected_cases(suite): ++ for test in suite: ++ if isinstance(test, unittest.TestSuite): ++ yield from selected_cases(test) ++ else: ++ yield test ++ ++ ++class LifecycleResult(unittest.TextTestResult): ++ def __init__(self, *args, **kwargs): ++ super().__init__(*args, **kwargs) ++ self.started_ids = [] ++ self.finished_ids = [] ++ self.body_entered_ids = [] ++ self.body_finished_ids = [] ++ self.body_assertion_ids = [] ++ self.lifecycle_failures = 0 ++ self.subtests = 0 ++ self.subtest_events = [] ++ self.assertion_events = [] ++ self.phase = {} ++ self.body_exception = {} ++ self.body_active = set() ++ self.dispatch_active = set() ++ self.lifecycle_depth = {} ++ self.invalid_execution = [] ++ ++ def startTest(self, test): ++ self.started_ids.append(method_id(test)) ++ self.phase[id(test)] = 'setup' ++ super().startTest(test) ++ ++ def stopTest(self, test): ++ self.finished_ids.append(method_id(test)) ++ super().stopTest(test) ++ ++ def addFailure(self, test, err): ++ if (self.phase.get(id(test)) == 'body' ++ and self.body_exception.get(id(test)) is err[1] ++ and isinstance(err[1], AssertionError)): ++ self.body_assertion_ids.append(method_id(test)) ++ self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) ++ else: ++ self.lifecycle_failures += 1 ++ super().addFailure(test, err) ++ ++ def addSubTest(self, test, subtest, err): ++ self.subtests += 1 ++ phase = self.phase.get(id(test)) ++ if phase == 'body' and id(test) not in self.body_active: ++ phase = 'outside-body' ++ if getattr(subtest, 'test_case', None) is not test: ++ phase = 'foreign-parent' ++ outcome = 'success' if err is None else 'assertion' if isinstance(err[1], AssertionError) else 'error' ++ self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) ++ if err is not None and outcome == 'assertion': ++ if phase == 'body': ++ self.body_assertion_ids.append(method_id(test)) ++ self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) ++ else: ++ self.lifecycle_failures += 1 ++ super().addSubTest(test, subtest, err) ++ ++ ++def instrument(test, result): ++ """Keep body exception identity until unittest reports it after this call exits.""" ++ for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), ++ ('doCleanups', 'cleanup')): ++ original = getattr(test, name) ++ ++ def lifecycle(*args, _original=original, _phase=phase, **kwargs): ++ result.phase[id(test)] = _phase ++ result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 ++ try: ++ return _original(*args, **kwargs) ++ finally: ++ result.lifecycle_depth[id(test)] -= 1 ++ setattr(test, name, lifecycle) ++ original_dispatch = test._callTestMethod ++ ++ def dispatch(*args, **kwargs): ++ if result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') ++ return original_dispatch(*args, **kwargs) ++ result.dispatch_active.add(id(test)) ++ try: ++ return original_dispatch(*args, **kwargs) ++ finally: ++ result.dispatch_active.discard(id(test)) ++ test._callTestMethod = dispatch ++ original_body = getattr(test, test._testMethodName) ++ ++ @functools.wraps(original_body) ++ def body(*args, **kwargs): ++ if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('selected method invoked outside body dispatch') ++ return original_body(*args, **kwargs) ++ result.phase[id(test)] = 'body' ++ result.body_entered_ids.append(method_id(test)) ++ result.body_active.add(id(test)) ++ try: ++ return original_body(*args, **kwargs) ++ except BaseException as exc: ++ result.body_exception[id(test)] = exc ++ raise ++ finally: ++ result.body_active.discard(id(test)) ++ result.body_finished_ids.append(method_id(test)) ++ # _Outcome calls addFailure *after* this wrapper unwinds. ++ if inspect.iscoroutinefunction(original_body): ++ @functools.wraps(original_body) ++ async def async_body(*args, **kwargs): ++ if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): ++ result.invalid_execution.append('selected async method invoked outside body dispatch') ++ return await original_body(*args, **kwargs) ++ result.phase[id(test)] = 'body' ++ result.body_entered_ids.append(method_id(test)) ++ result.body_active.add(id(test)) ++ try: ++ return await original_body(*args, **kwargs) ++ except BaseException as exc: ++ result.body_exception[id(test)] = exc ++ raise ++ finally: ++ result.body_active.discard(id(test)) ++ result.body_finished_ids.append(method_id(test)) ++ body = async_body ++ setattr(test, test._testMethodName, body) ++ ++ ++def describe_suite(suite, selection): ++ cases = list(selected_cases(suite)) ++ selected = [method_id(test) for test in cases] ++ invalid = [] ++ if not selected: ++ invalid.append('empty selected population') ++ if any(item is None for item in selected): ++ invalid.append('synthetic or unsupported selected test') ++ if len(set(selected)) != len(selected): ++ invalid.append('duplicate selected method identity') ++ for test, identity in zip(cases, selected): ++ if identity is not None and test.id() != identity: ++ invalid.append('display identity does not match selected method') ++ return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} ++ ++ ++def run_suite(suite, selection): ++ cases, population = describe_suite(suite, selection) ++ stream = io.StringIO() ++ result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), ++ descriptions=True, verbosity=2) ++ for test in cases: ++ if method_id(test) is not None: ++ instrument(test, result) ++ suite.run(result) ++ population['invalid_population'].extend(result.invalid_execution) ++ # Render the ordinary summary for humans; grading uses the structured fields. ++ result.printErrors() ++ stream.write(f'Ran {result.testsRun} tests\n') ++ value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, ++ **population, ++ 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), ++ 'errors': len(result.errors), 'skipped': len(result.skipped), ++ 'expected_failures': len(result.expectedFailures), ++ 'unexpected_successes': len(result.unexpectedSuccesses), ++ 'successful': result.wasSuccessful(), 'log': stream.getvalue()} ++ for name in ('started_ids', 'finished_ids', 'body_entered_ids', ++ 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', ++ 'subtest_events', 'assertion_events'): ++ value[name] = getattr(result, name) ++ return value + + + def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) ++ parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + if args.test: + suite = unittest.defaultTestLoader.loadTestsFromNames(args.test) + else: + suite = unittest.defaultTestLoader.discover(str(ROOT / 'tests'), pattern='test_*.py') +- stream = io.StringIO() +- result = unittest.TextTestRunner(stream=stream, verbosity=2).run(suite) +- value = {'tests_run': result.testsRun, 'assertion_failures': len(result.failures), +- 'errors': len(result.errors), 'skipped': len(result.skipped), +- 'expected_failures': len(result.expectedFailures), +- 'unexpected_successes': len(result.unexpectedSuccesses), +- 'successful': result.wasSuccessful(), 'log': stream.getvalue()} ++ selection = args.test or ['discover:test_*.py'] ++ if args.list: ++ _, population = describe_suite(suite, selection) ++ Path(args.output).write_text(json.dumps(population, indent=2) + '\n') ++ return 0 if population['selected_ids'] and not population['invalid_population'] else 1 ++ value = run_suite(suite, selection) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') +- return 0 if result.wasSuccessful() and result.testsRun and not result.skipped else 1 ++ complete = (not value['invalid_population'] and value['selected_ids'] ++ and all(value[key] == value['selected_ids'] for key in ++ ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) ++ return 0 if (complete and value['successful'] and not value['skipped'] ++ and not value['expected_failures'] and not value['unexpected_successes'] ++ and all(event['phase'] == 'body' and event['outcome'] == 'success' ++ for event in value['subtest_events']) ++ and not value['lifecycle_failures']) else 1 + + + if __name__ == '__main__': +--- a/tools/kernel_replay/mutations.py ++++ b/tools/kernel_replay/mutations.py +@@ -5,6 +5,7 @@ + import json + import os + from pathlib import Path ++import re + import shutil + import subprocess + import sys +@@ -13,14 +14,71 @@ + ROOT = Path(__file__).resolve().parent + + +-def classify(value, code): +- if (code not in (0, 1) or not value.get('tests_run') or value.get('errors') +- or value.get('skipped') or value.get('expected_failures') +- or value.get('unexpected_successes')): +- return 'ERROR' +- if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('successful'): ++def classify(value, code, expected_selection=None, expected_ids=None): ++ """Grade only trusted runner receipts; legacy/log-only summaries fail closed. ++ ++ This validates accounting, not an adversarial author's fabricated JSON. The ++ receipt must come from the runner subprocess whose source is custody-bound. ++ """ ++ if (not isinstance(value, dict) or type(code) is not int or code not in (0, 1) ++ or value.get('receipt_schema') != 'cbz-unittest-lifecycle-v1' ++ or type(value.get('successful')) is not bool): ++ return 'ERROR' ++ counts = ('tests_run', 'assertion_failures', 'errors', 'skipped', ++ 'expected_failures', 'unexpected_successes', 'lifecycle_failures', 'subtests') ++ if any(type(value.get(key)) is not int or value[key] < 0 for key in counts): ++ return 'ERROR' ++ if any(value[key] for key in ('errors', 'skipped', 'expected_failures', ++ 'unexpected_successes', 'lifecycle_failures')): ++ return 'ERROR' ++ if value.get('invalid_population') != []: ++ return 'ERROR' ++ selection = value.get('selection') ++ if (not isinstance(selection, list) or not selection ++ or any(not isinstance(item, str) or not item for item in selection) ++ or expected_selection is not None and selection != expected_selection): ++ return 'ERROR' ++ keys = ('selected_ids', 'started_ids', 'finished_ids', 'body_entered_ids', ++ 'body_finished_ids', 'body_assertion_ids') ++ for key in keys: ++ ids = value.get(key) ++ if (not isinstance(ids, list) or any(not isinstance(item, str) or not re.fullmatch(r'(?:[A-Za-z_]\w*\.){2,}[A-Za-z_]\w*', item) ++ or item.startswith('unittest.loader.') for item in ids) ++ or key != 'body_assertion_ids' and len(ids) != len(set(ids))): ++ return 'ERROR' ++ selected = value['selected_ids'] ++ if (expected_ids is not None and selected != expected_ids ++ or any(not any(selector == 'discover:test_*.py' or identity == selector ++ or identity.startswith(selector + '.') for selector in selection) ++ for identity in selected)): ++ return 'ERROR' ++ if (not selected or value['tests_run'] != len(selected) ++ or any(value[key] != selected for key in keys[1:5]) ++ or any(item not in selected for item in value['body_assertion_ids']) ++ or value['assertion_failures'] != len(value['body_assertion_ids'])): ++ return 'ERROR' ++ events = value.get('subtest_events') ++ assertions = value.get('assertion_events') ++ if not isinstance(events, list) or not isinstance(assertions, list) or value['subtests'] != len(events): ++ return 'ERROR' ++ for event in events: ++ if (not isinstance(event, dict) or set(event) != {'parent_id', 'phase', 'outcome'} ++ or event['parent_id'] not in selected or event['phase'] != 'body' ++ or event['outcome'] not in ('success', 'assertion')): ++ return 'ERROR' ++ for event in assertions: ++ if (not isinstance(event, dict) or set(event) != {'parent_id', 'origin'} ++ or event['parent_id'] not in selected or event['origin'] not in ('body', 'subtest')): ++ return 'ERROR' ++ direct = [event['parent_id'] for event in assertions if event['origin'] == 'body'] ++ if (len(set(direct)) != len(direct) ++ or value['body_assertion_ids'] != [event['parent_id'] for event in assertions] ++ or [event['parent_id'] for event in assertions if event['origin'] == 'subtest'] != ++ [event['parent_id'] for event in events if event['outcome'] == 'assertion']): ++ return 'ERROR' ++ if code == 1 and value['assertion_failures'] > 0 and value['successful'] is False: + return 'KILLED' +- if code == 0 and value.get('successful') and value.get('assertion_failures') == 0: ++ if code == 0 and value['successful'] is True and value['assertion_failures'] == 0: + return 'SURVIVED' + return 'ERROR' + +@@ -136,7 +194,18 @@ + evidence = ROOT / ('evidence/mutations' if group == 'all' else 'evidence/resource-mutations') + evidence.mkdir(parents=True, exist_ok=True) + results = [] ++ populations = {} + for name, filename, old, new, test in plan: ++ if test not in populations: ++ population_path = evidence / ('population-' + str(len(populations)) + '.json') ++ listed = subprocess.run([sys.executable, '-B', '-S', str(ROOT / 'run_tests.py'), ++ '--output', str(population_path), '--test', test, '--list'], ++ capture_output=True, text=True, timeout=15) ++ population = json.loads(population_path.read_text()) if population_path.exists() else {} ++ if (listed.returncode != 0 or population.get('invalid_population') != [] ++ or not population.get('selected_ids') or population.get('selection') != [test]): ++ raise ValueError('cannot bind unchanged selected test population: ' + test) ++ populations[test] = population['selected_ids'] + with tempfile.TemporaryDirectory(dir=ROOT / 'evidence', prefix='mutant-') as d: + work = Path(d) / 'kernel_replay' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) +@@ -153,7 +222,8 @@ + p = subprocess.run(command, capture_output=True, text=True, timeout=90) + value = json.loads(result_path.read_text()) if result_path.exists() else {} + record = {'name': name, 'file': filename, 'test': test, +- 'outcome': classify(value, p.returncode), 'returncode': p.returncode, ++ 'outcome': classify(value, p.returncode, [test], populations[test]), 'returncode': p.returncode, ++ 'expected_selected_ids': populations[test], + 'original_sha256': digest(original.encode()), + 'mutated_sha256': digest(changed.encode()), 'tests': value, + 'stdout': p.stdout, 'stderr': p.stderr} +--- a/tools/kernel_replay/tests/test_mutation_harness.py ++++ b/tools/kernel_replay/tests/test_mutation_harness.py +@@ -1,25 +1,182 @@ +-"""Mutation accounting cannot turn errors, skips, or no tests into kills.""" ++"""Real runner controls for body-only mutation kills and complete selected populations.""" ++import copy + import importlib.util ++import json + from pathlib import Path ++import shutil ++import subprocess ++import sys ++import tempfile ++import textwrap + import unittest + + ROOT = Path(__file__).resolve().parents[1] ++_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') ++mutations = importlib.util.module_from_spec(_spec) ++_spec.loader.exec_module(mutations) + + + class MutationHarnessTests(unittest.TestCase): +- def test_only_clean_assertion_failure_is_a_kill(self): +- spec = importlib.util.spec_from_file_location('mutations', ROOT / 'mutations.py') +- mod = importlib.util.module_from_spec(spec) +- spec.loader.exec_module(mod) +- clean = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, +- expected_failures=0, unexpected_successes=0, successful=False) +- self.assertEqual(mod.classify(clean, 1), 'KILLED') +- self.assertEqual(mod.classify({**clean, 'assertion_failures': 0, 'successful': True}, 0), 'SURVIVED') +- for changes, code in (({'tests_run': 0}, 1), ({'errors': 1}, 1), +- ({'skipped': 1}, 1), ({'expected_failures': 1}, 1), +- ({'unexpected_successes': 1}, 1), ({}, 2), ({}, -9)): +- with self.subTest(changes=changes, code=code): +- self.assertEqual(mod.classify({**clean, **changes}, code), 'ERROR') ++ def run_fixture(self, methods, selection='fixture.Case', module_tail=''): ++ source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ (root / 'tests/fixture.py').write_text(source) ++ output = root / 'result.json' ++ p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', selection], ++ capture_output=True, text=True, timeout=10) ++ self.assertTrue(output.exists(), p.stderr) ++ value = json.loads(output.read_text()) ++ return mutations.classify(value, p.returncode), value, p.returncode ++ ++ def test_setup_assertion_is_not_a_kill(self): ++ outcome, value, _ = self.run_fixture(''' ++ def setUp(self): self.fail('setup only') ++ def test_one(self): pass ++ ''') ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_body_assertion_kills_after_all_selected_bodies_finish(self): ++ outcome, value, _ = self.run_fixture(''' ++ def test_one(self): self.fail('body assertion') ++ def test_two(self): pass ++ ''') ++ self.assertEqual(outcome, 'KILLED', value) ++ self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) ++ self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) ++ self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) ++ ++ def test_dispatch_hook_assertion_without_selected_method_is_error(self): ++ outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_selected_method_invoked_from_lifecycle_is_error(self): ++ for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", ++ "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", ++ "def tearDown(self): self.test_one()\ndef test_one(self): pass", ++ "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_clean_identity_survives(self): ++ outcome, value, _ = self.run_fixture('def test_one(self): pass') ++ self.assertEqual(outcome, 'SURVIVED', value) ++ ++ def test_lifecycle_failures_never_kill_even_with_body_assertion(self): ++ cases = [ ++ "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", ++ "def test_one(self): self.addCleanup(self.fail, 'cleanup')", ++ "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", ++ "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", ++ "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", ++ "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", ++ "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", ++ ] ++ for source in cases: ++ with self.subTest(source=source): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_errors_skips_and_expected_failures_are_errors(self): ++ cases = [ ++ "def test_one(self): raise RuntimeError('body runtime')", ++ "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", ++ "@unittest.skip('skip')\ndef test_one(self): pass", ++ "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", ++ "@unittest.expectedFailure\ndef test_one(self): pass", ++ ] ++ for source in cases: ++ with self.subTest(source=source): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): ++ for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), ++ ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'KILLED', value) ++ self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) ++ self.assertEqual(value['assertion_failures'], failures) ++ outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") ++ self.assertEqual(outcome, 'SURVIVED', value) ++ ++ def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): ++ outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_lifecycle_subtests_and_subtest_errors_are_errors(self): ++ for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", ++ "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", ++ "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): ++ outcome, value, _ = self.run_fixture(source) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): ++ cases = [ ++ ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), ++ ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), ++ ('def test_one(self): pass', 'fixture.Missing', ''), ++ ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), ++ ] ++ for source, selection, tail in cases: ++ with self.subTest(selection=selection, tail=tail): ++ outcome, value, _ = self.run_fixture(source, selection, tail) ++ self.assertEqual(outcome, 'ERROR', value) ++ ++ def test_population_listing_does_not_execute_fixtures_or_bodies(self): ++ with tempfile.TemporaryDirectory() as tmp: ++ root = Path(tmp) ++ (root / 'tests').mkdir() ++ shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') ++ (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") ++ output = root / 'population.json' ++ p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), ++ '--output', str(output), '--test', 'fixture.Case', '--list'], ++ capture_output=True, text=True, timeout=10) ++ self.assertEqual(p.returncode, 0, p.stderr) ++ self.assertEqual(json.loads(output.read_text()), ++ {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], ++ 'invalid_population': []}) ++ ++ def test_summary_without_lifecycle_receipt_fails_closed(self): ++ old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, ++ expected_failures=0, unexpected_successes=0, successful=False) ++ self.assertEqual(mutations.classify(old, 1), 'ERROR') ++ self.assertEqual(mutations.classify({}, 1), 'ERROR') ++ self.assertEqual(mutations.classify(None, 1), 'ERROR') ++ ++ def test_forged_or_missing_accounting_is_error(self): ++ _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') ++ for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', ++ 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', ++ 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): ++ with self.subTest(missing=key): ++ value = copy.deepcopy(receipt) ++ value.pop(key, None) ++ self.assertEqual(mutations.classify(value, code), 'ERROR') ++ for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, ++ {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, ++ {'body_entered_ids': []}, {'body_finished_ids': []}, ++ {'finished_ids': []}, {'body_assertion_ids': []}, ++ {'body_assertion_ids': ['fixture.Case.test_forged']}, ++ {'selected_ids': ['synthetic']}, ++ {'selected_ids': ['unittest.loader._FailedTest.test_one']}, ++ {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, ++ {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, ++ {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, ++ {'unexpected_successes': 1}, {'assertion_failures': 2}, ++ {'subtests': 1}, {'assertion_events': []}, ++ {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): ++ with self.subTest(changes=changes): ++ self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') ++ self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') ++ self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') ++ self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') ++ for exit_code in (2, -9, True): ++ self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + + if __name__ == '__main__': diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json new file mode 100644 index 000000000..0ff53a4d7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json @@ -0,0 +1,199 @@ +{ + "schema_version": 1, + "component": "kernel_replay_lifecycle_delivery", + "root": "/workspace/cbz-0/delivery/mutation-lifecycle-fix", + "artifacts": [ + { + "path": "changed/kernel_replay/mutations.py", + "sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "bytes": 15771 + }, + { + "path": "changed/kernel_replay/run_tests.py", + "sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "bytes": 9834 + }, + { + "path": "changed/kernel_replay/tests/test_mutation_harness.py", + "sha256": "96f372fbc4dbf0c0ead1195f85230235741acca687405b74f7365b9d9647e843", + "bytes": 11264 + }, + { + "path": "evidence/kernel-baseline-sha256.json", + "sha256": "839242ae4659709f9572b4cf9f06012b4d74e039ff2d1c3b2c422a4a33005002", + "bytes": 1595 + }, + { + "path": "evidence/kernel-controls-green.log", + "sha256": "171f4fb72934006fc29bc75e482234148d8eed67077dbb6e179371ad93fa8baa", + "bytes": 1997 + }, + { + "path": "evidence/kernel-controls-optimized-green.log", + "sha256": "93835d11aac0de286239faca85dc5d63b4f71118ba01e2a4a6154f91bd18b615", + "bytes": 2169 + }, + { + "path": "evidence/kernel-controls-red.log", + "sha256": "974f9047781ca8b429d091b77eb6e69c2581b0cdbe0bda46a21420f5767353ee", + "bytes": 39211 + }, + { + "path": "evidence/kernel-delivery.json", + "sha256": "9b921e7456f7512769420f23a3850db876ec449ce3583941458b7abf2cba1a65", + "bytes": 6553 + }, + { + "path": "evidence/kernel-dispatch-red.log", + "sha256": "c5cb3242587b83ef49764cab5dc2880ed1e1084fbb046ccc2d9176bda8f321d2", + "bytes": 2279 + }, + { + "path": "evidence/kernel-final-runner-mutants.log", + "sha256": "290e05136be930e5222f7e50bc9ccec4222ac850ef6a6492f174edb5739222b3", + "bytes": 157 + }, + { + "path": "evidence/kernel-final-runner-mutants/drop-body-completion.json", + "sha256": "f5486d2c4a4facfd60fa4423d2b6c1901259b63f77c492509278dd52f117c57b", + "bytes": 4144 + }, + { + "path": "evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json", + "sha256": "bc6fcb2f856b1abd2a591efe29b4f708fcab76e8f7c7026eb1f98b5f2cf403e4", + "bytes": 3957 + }, + { + "path": "evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json", + "sha256": "2c0258edad9ce69e4cc95fe3bc74a240d12fe24a1b9b44ec3d537777fa8ce661", + "bytes": 4637 + }, + { + "path": "evidence/kernel-final-runner-mutants/guard_run_tests.py", + "sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "bytes": 9834 + }, + { + "path": "evidence/kernel-final-runner-mutants/summary.json", + "sha256": "aa220c602f10c7830766e60e8de6bb9b541f24319f688f12ec8352320e8660fe", + "bytes": 2352 + }, + { + "path": "evidence/kernel-final-runner-mutants/trust-overridable-display-id.json", + "sha256": "13bfdabaceeeb6a42787f0c26d903947de73902504d73629b594e695d10a4d32", + "bytes": 5143 + }, + { + "path": "evidence/kernel-harness-mutants.log", + "sha256": "c0ad54870a6a97b028980e57b5c0728c8a01fbe16a22dd861cde932a200835d1", + "bytes": 277 + }, + { + "path": "evidence/kernel-harness-mutants/accept-boolean-counts.json", + "sha256": "93185f80485e4dee555da10032ddd757eef534d414049625958ceccdd0296a69", + "bytes": 9204 + }, + { + "path": "evidence/kernel-harness-mutants/drop-body-completion.json", + "sha256": "248cc91fd0c811a5f4dd8ef88599fc020bc19260cf5c5301f2c51b8709a09929", + "bytes": 4508 + }, + { + "path": "evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json", + "sha256": "452c1a27c908af5be0ce4626e2061c3e691ce681da0572f3cd616ad1e0eb4da4", + "bytes": 4976 + }, + { + "path": "evidence/kernel-harness-mutants/guard_run_tests.py", + "sha256": "81b914e3af5f923d8d119960131352e6e2d2813eec7d02f5ca6d42ac4b27f9f2", + "bytes": 8474 + }, + { + "path": "evidence/kernel-harness-mutants/ignore-body-population-receipt.json", + "sha256": "b3efe36ff2885f524b2b64131b0a3cd532b0c3b533d02ada5d77ff02f455125b", + "bytes": 10299 + }, + { + "path": "evidence/kernel-harness-mutants/ignore-invalid-population.json", + "sha256": "53d0580b382d2cb9481d250b74755e396045fc89b705bd03e7386d8e8446302f", + "bytes": 5314 + }, + { + "path": "evidence/kernel-harness-mutants/ignore-selector-binding.json", + "sha256": "18bbaabd7d9584b128b5944a23565173c63f57e1f43e7011d3c7bc390b449f4c", + "bytes": 9259 + }, + { + "path": "evidence/kernel-harness-mutants/restore-summary-only-grading.json", + "sha256": "df89afbf409c23517c6adc10f05a3be910532cdaaf40fc2b405474df8b11e842", + "bytes": 3747 + }, + { + "path": "evidence/kernel-harness-mutants/summary.json", + "sha256": "7305176ef9c79bddc152de57b075b84e8575de21bf557be74e60d65801ac91e9", + "bytes": 4345 + }, + { + "path": "evidence/kernel-harness-mutants/trust-overridable-display-id.json", + "sha256": "6cbd7ecd15e86b6aabbdaef5745c94f5f3406a02e6ef9b7dd85973510609d165", + "bytes": 5289 + }, + { + "path": "evidence/kernel-lifecycle-method-red.log", + "sha256": "dc6de5aab8c2d626de5f9730534359aaf047e1344a41f68bbc88370b5e1c157c", + "bytes": 2011 + }, + { + "path": "evidence/kernel-population-binding-red.log", + "sha256": "72f07a3d9b8c97ac3afc1aa366d76442e1d47d028b5e598be0a9365be3dd8ef9", + "bytes": 908 + }, + { + "path": "evidence/kernel-population-listing-green.log", + "sha256": "075fdb533d31a636713bc9b0742e9f5efaa07703f8eb06e91e490c055ab9d485", + "bytes": 269 + }, + { + "path": "evidence/kernel-setup-red.json", + "sha256": "4bbb6076e1df6d98fa22a2d55628b9f86d5476e1219bf419157c346ff079cbbb", + "bytes": 1038 + }, + { + "path": "evidence/kernel-subtest-controls-red.log", + "sha256": "6982f7375c35792a5740a303f75626cb3b1f183044ea561622e1fe593d03b25d", + "bytes": 7289 + }, + { + "path": "evidence/run_kernel_final_runner_mutants.py", + "sha256": "51f7c12bba3d058b666c013fff518aeb7fa70573de77b54d3993612e29604863", + "bytes": 5784 + }, + { + "path": "evidence/run_kernel_harness_mutants.py", + "sha256": "e186270d37002f4766388f17bd083b50b57163d2c0d6b82f6a08722b1b279ebe", + "bytes": 5273 + }, + { + "path": "kernel.patch", + "sha256": "fec302cc6ef2b346aa1c0aaff8cdba5573884370b1cedea19a94fda8b3b9f79b", + "bytes": 30252 + }, + { + "path": "kernel/REPORT.md", + "sha256": "eae74e982183e7e9b3c13d6b178076cc2459fa03f70f75a6095f362c5c921427", + "bytes": 4649 + }, + { + "path": "kernel/REVIEW.txt", + "sha256": "b873d146c025cd7180617f293dd80fcdf2ac8ba79f4b0acb685b37b7d9ae6089", + "bytes": 1552 + } + ], + "runtime_file_registry_updates": [ + "tools/kernel_replay/run_tests.py", + "tools/kernel_replay/mutations.py", + "tools/kernel_replay/tests/test_mutation_harness.py" + ], + "new_runtime_modules": [], + "status": "isolated patch sealed; parent owns canonical integration and publication; no CBZ declaration" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REPORT.md b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REPORT.md new file mode 100644 index 000000000..3b544fb19 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REPORT.md @@ -0,0 +1,27 @@ +# Lifecycle-safe kernel mutation grading + +The isolated patch replaces summary-only grading with a custody-bound structured unittest receipt. A mutation kill requires the exact pristine selected parent-method population, one start/finish and one authorized body entry/exit for every method, and at least one actual body AssertionError. Each subtest must reference that actual selected parent TestCase object. Body subtest assertions remain valid with explicit parent/phase/outcome events; lifecycle assertions, missing/duplicate identities, errors, skips, expected failures, synthetic/empty populations, missing metadata and inconsistent integer accounting fail closed. + +The selected method itself is wrapped, preserving unittest decorators. The dispatcher authorizes body invocation, while lifecycle depth prevents calls from setup, teardown or cleanup from becoming body evidence. Direct body failures require the identical escaping AssertionError object; subtest assertions require an active selected body. Multiple failing subtests may belong to one selected parent method. An externally discovered pristine method list is bound before each mutant runs, with discovery cached per selector and no fixtures or bodies executed by --list. + +Changed runtime files: run_tests.py and mutations.py. Changed harness: tests/test_mutation_harness.py. No new runtime helper module. Existing registry entries for these three files need their content hashes updated; keep kernel_replay.py, ExactReplay.lean and original production tests/bindings intact. Portable copies already include run_tests.py through the existing copytree. The patch adds an internal --list mode to run_tests.py, and classify(value, code, expected_selection=None, expected_ids=None) remains callable with the old two arguments while rejecting legacy summary-only payloads. + +Fresh verification is limited to the changed harness: twelve normal methods, one separately added population-listing method, and thirteen methods with PYTHONOPTIMIZE=1 and -O (also inherited by fixture subprocesses). A subsequently identified foreign-subtest-parent control passes normally and under optimization, with the preceding thirteen controls reused because they all use matching actual parents. The current fourteen harness method IDs replace the old single method; together with the unchanged 31 wrapper and 9 real methods, the current production-suite population is 54. Benign fixture invocations inside harness methods are controls, not additional production-suite methods. + +Eight targeted actual harness-source mutants were killed in the first source generation. The later dispatcher/lifecycle implementation change warranted four runner-source controls on the final runner (three affected controls refreshed and one new authorization control). The five unchanged classifier-source controls are reused. The foreign-parent followup adds one actual drop-parent-identity guard mutant, also killed. This is ten distinct safeguard mutations across thirteen executions, not thirteen distinct mutations or a fresh original 25-mutant run. Each kill has a structured guarded body-assertion receipt. kernel-delivery.json records exact method IDs, hashes, counts and applicability. + +The old 19 fresh plus 6 earlier original source-mutant assertion kills remain historical evidence: production source, original wrapper/real test bodies, and mutation definitions are unchanged, and previously established failure traces are in the selected bodies. This patch does not retroactively fabricate lifecycle metadata for old receipts. It does not rerun Lean, proof replay, builds, the unchanged original tests, or original production mutants. Source custody and provider-distinct review remain separate requirements. + +Fresh evidence commands (paths relative to the CBZ root): + +- Normal twelve-method log: delivery/mutation-lifecycle-fix/evidence/kernel-controls-green.log. +- Separate listing control: delivery/mutation-lifecycle-fix/evidence/kernel-population-listing-green.log. +- Optimized thirteen-method command: PYTHONOPTIMIZE=1 python3 -B -S -O -m unittest discover -s delivery/mutation-lifecycle-fix/work/kernel_replay/tests -p test_mutation_harness.py -v. +- Initial source controls: delivery/mutation-lifecycle-fix/evidence/kernel-harness-mutants/summary.json. +- Changed final runner controls: delivery/mutation-lifecycle-fix/evidence/kernel-final-runner-mutants/summary.json. +- Foreign-parent followup: delivery/mutation-lifecycle-fix/evidence/kernel-foreign-subtest-{red,green,optimized-green}.log and kernel-parent-identity-mutant/summary.json. +- Final independent review: delivery/mutation-lifecycle-fix/evidence/independent-lifecycle-review.json, bound to the final kernel and layer source hashes. + +The saved source-control scripts are provenance artifacts for those runs. Their default output directories already contain sealed receipts; use an isolated new output directory if adapting them for future execution. Do not overwrite completed evidence or replay unchanged checks solely because of handoff. + +JSON receipts validate accounting from the custody-bound runner, not cryptographic authenticity of a completely fabricated consistent JSON document. Missing, malformed, contradictory or wrongly selected payloads are rejected; the paired runner/process/source bindings remain part of the trust boundary. diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt new file mode 100644 index 000000000..4c6906bf5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt @@ -0,0 +1,15 @@ +Independent lifecycle review, kernel_replay + +Reviewer: /root/cbz_mutation_lifecycle_fix/kernel_lifecycle_review (separate agent). +Review scope: run_tests.py, mutations.py, tests/test_mutation_harness.py only. + +Found and resolved: +1. _callTestMethod dispatch-hook assertion could be labeled body failure without invoking the selected method. A focused RED reproduced this; actual selected-method wrapping with preserved decorators resolved it. +2. Selector metadata could disagree with selected canonical IDs. Selector coherence and pristine, externally discovered expected method populations now bind receipts; --list executes no fixtures or bodies. +3. A setup hook invoking the actual selected method could still be labeled body execution. Dispatcher authorization and lifecycle depth now reject direct and dispatched method calls from lifecycle hooks, with focused RED/GREEN controls. + +4. A manually reported subtest belonging to a foreign TestCase could be attributed to the selected body. The final addSubTest guard requires actual parent object identity. A new focused normal/optimized control and one actual guard-source mutation close this obligation. + +Final reviewer result: all four reproduced defects addressed; final source bindings are CLEAR in evidence/independent-lifecycle-review.json. No further actionable issue found in changed hunks. Completed twelve-method GREEN evidence was reused. Reviewer ran only the newly uncovered dispatch and setup-invokes-method counterexamples, with no original suites, original mutants, Lean checks, or redundant full verification. The thirteenth listing control and fourteenth foreign-parent control were added under their specific new obligations; unrelated completed evidence was reused. + +This is a technical independent-agent review record. Provider-distinct review requirements remain separately tracked by the parent; this record does not assert that process requirement is fulfilled. diff --git a/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json new file mode 100644 index 000000000..38daf04df --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json @@ -0,0 +1,17 @@ +{ + "run_tests.py": { + "baseline_sha256": "b0a7f1c508462c21688de8d5ec70384d40f780c342814d97589f0b45f2d7620b", + "previous_integrated_sha256": "5403f6b1ca6954cb0db9e0dc29e16b97a8f82506d1acedb8f0d7d2bece49bbf9", + "changed_sha256": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa" + }, + "mutations.py": { + "baseline_sha256": "5fd6fbbfd2aab463f1c2c017af942762ae798a67f3d1fc47001bc317b8fee0a0", + "previous_integrated_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "changed_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd" + }, + "tests/test_mutation_harness.py": { + "baseline_sha256": "ca90d5c5c8e48d163d35b2170f2e7f08352863c23bd73f1b383a73a2dcc16ff3", + "previous_integrated_sha256": "96f372fbc4dbf0c0ead1195f85230235741acca687405b74f7365b9d9647e843", + "changed_sha256": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6" + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/allow-artifact-symlink.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/allow-artifact-symlink.json new file mode 100644 index 000000000..58e14ec86 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/allow-artifact-symlink.json @@ -0,0 +1,21 @@ +{ + "name": "allow-artifact-symlink", + "file": "kernel_replay.py", + "test": "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "78a0d048f9b362aed5b7243a59da04a2160234461213627800516b5b7c71e296", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... FAIL\n\n======================================================================\nFAIL: test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/test_real_lean.py\", line 107, in test_real_private_body_cannot_hide_behind_olean_symlink\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:14.818262+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:14.821967+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9725, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:15.897498+00:00', 'elapsed_seconds': 1.0755437139996502}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/symlink-negative'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/kernel_replay.py', 'sha256': '78a0d048f9b362aed5b7243a59da04a2160234461213627800516b5b7c71e296'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:15.899916+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.133s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... FAIL\n\n======================================================================\nFAIL: test_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/test_real_lean.py\", line 107, in test_real_private_body_cannot_hide_behind_olean_symlink\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:14.818262+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:14.821967+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9725, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:15.897498+00:00', 'elapsed_seconds': 1.0755437139996502}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/symlink-negative'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/kernel_replay.py', 'sha256': '78a0d048f9b362aed5b7243a59da04a2160234461213627800516b5b7c71e296'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-op8ic6rr/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:15.899916+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.133s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/concurrent-module-processes.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/concurrent-module-processes.json new file mode 100644 index 000000000..5727d6c77 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/concurrent-module-processes.json @@ -0,0 +1,21 @@ +{ + "name": "concurrent-module-processes", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "694cb0cf895869bb5e8d77a43ca8cce0b14e8e3c35b66780421914f17e52818f", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:26.138025+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144168+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9829, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:26.260348+00:00', 'elapsed_seconds': 0.11618071599968971}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144547+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9830, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T17:52:26.179114+00:00', 'elapsed_seconds': 0.03456953000022622}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', 'sha256': 'f387a1660d42da50856a5ba7784fe8846871072f5dec3ceae866a878bf49ea18'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/kernel_replay.py', 'sha256': '694cb0cf895869bb5e8d77a43ca8cce0b14e8e3c35b66780421914f17e52818f'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:26.262959+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.133s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:26.138025+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144168+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9829, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:26.260348+00:00', 'elapsed_seconds': 0.11618071599968971}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:26.144547+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9830, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T17:52:26.179114+00:00', 'elapsed_seconds': 0.03456953000022622}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/fake-lean', 'sha256': 'f387a1660d42da50856a5ba7784fe8846871072f5dec3ceae866a878bf49ea18'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/evidence/tmp14apc0ip/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/kernel_replay.py', 'sha256': '694cb0cf895869bb5e8d77a43ca8cce0b14e8e3c35b66780421914f17e52818f'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-gzjre9hz/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:26.262959+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.133s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/empty-coverage.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/empty-coverage.json new file mode 100644 index 000000000..b611661f8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/empty-coverage.json @@ -0,0 +1,21 @@ +{ + "name": "empty-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "c20b4aaacfaae0fc4acc45a2d697e16a5670173889a99129d1068baed8551d2b", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ajs_md7p/kernel_replay/tests/test_kernel_replay.py\", line 56, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 17 tests in 0.585s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ajs_md7p/kernel_replay/tests/test_kernel_replay.py\", line 56, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 17 tests in 0.585s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/exported-part-only.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/exported-part-only.json new file mode 100644 index 000000000..04b300e03 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/exported-part-only.json @@ -0,0 +1,21 @@ +{ + "name": "exported-part-only", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "443d9ae2a760b4587461eab2d21896628344a620987d4e9de760c643ff315be2", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/test_real_lean.py\", line 52, in test_private_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:34.568213+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:34.576467+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9982, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:36.527793+00:00', 'elapsed_seconds': 1.951343576999534}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean', 'sha256': '443d9ae2a760b4587461eab2d21896628344a620987d4e9de760c643ff315be2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:36.531572+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 4.079s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/test_real_lean.py\", line 52, in test_private_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:34.568213+00:00', 'ok': True, 'results': [{'module': 'BadPrivate', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:34.576467+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}], 'pid': 9982, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPrivate\\n', 'stdout_bytes': 32, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:36.527793+00:00', 'elapsed_seconds': 1.951343576999534}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPrivate'], 'modules': [{'name': 'BadPrivate', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/tests/fixtures/BadPrivate.lean', 'sha256': 'fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean', 'sha256': '4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server', 'sha256': '1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private', 'sha256': '3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-akayh08_/kernel_replay/ExactReplay.lean', 'sha256': '443d9ae2a760b4587461eab2d21896628344a620987d4e9de760c643ff315be2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:36.531572+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 4.079s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json new file mode 100644 index 000000000..fc08f7a26 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-compiled-parts-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "580dc617d2ba08c0d0d4d4f15b9dcf930c88730388d89d2dfd97a614d1b6c711", + "tests": { + "tests_run": 17, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 110, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 103, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 110, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u1stm5uv/kernel_replay/tests/test_kernel_replay.py\", line 103, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=2)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-completion-marker.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-completion-marker.json new file mode 100644 index 000000000..4d53c610d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-completion-marker.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-completion-marker", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "45a0b4cdd1a062270ca2a3dc3f96937fd0b754020adf1298c04f77cd1a9432af", + "tests": { + "tests_run": 17, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.587s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-p58ef761/kernel_replay/tests/test_kernel_replay.py\", line 127, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.587s\n\nFAILED (failures=2)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-memory-limit.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-memory-limit.json new file mode 100644 index 000000000..ccc15c485 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-memory-limit.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-memory-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "1dfb7f0795deba49cd263f4322550f9bb0176a3e59e86ddc59d6afe63fe8d775", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:24.878644+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:24.882815+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9806, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T17:52:24.899440+00:00', 'elapsed_seconds': 0.0166251620003095}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/kernel_replay.py', 'sha256': '1dfb7f0795deba49cd263f4322550f9bb0176a3e59e86ddc59d6afe63fe8d775'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:24.901171+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.594s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_memory_limit_applied\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:24.878644+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:24.882815+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9806, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean\", line 3, in \\n assert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nAssertionError\\n', 'stderr_bytes': 327, 'ended': '2026-10-29T17:52:24.899440+00:00', 'elapsed_seconds': 0.0166251620003095}], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/fake-lean', 'sha256': 'e6e78fabbffccd559ec688b2aa995a93b19b6aea953a8e4045ad208641f9caef'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/evidence/tmp4_220054/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/kernel_replay.py', 'sha256': '1dfb7f0795deba49cd263f4322550f9bb0176a3e59e86ddc59d6afe63fe8d775'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-4g5x2ftj/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:24.901171+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.594s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-nonzero-exit.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-nonzero-exit.json new file mode 100644 index 000000000..e8bcfc5f5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-nonzero-exit.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-nonzero-exit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "25fc542a9e5be4e71c2bb0f13dacf9778fb3ce696affe2c6c94b22509243cfeb", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-3988xbim/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.597s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-3988xbim/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 17 tests in 0.597s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-source-binding.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-source-binding.json new file mode 100644 index 000000000..95b2bdf79 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-source-binding.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-source-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "6c74d8bc5d4fb8958540b617e540d89962348b85701c58550b7fa8c5b588cd52", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-bltslxh5/kernel_replay/tests/test_kernel_replay.py\", line 96, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-bltslxh5/kernel_replay/tests/test_kernel_replay.py\", line 96, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.614s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-timeout.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-timeout.json new file mode 100644 index 000000000..7f4fde4a5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-timeout.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-timeout", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "d5259e8dfc1f567b5bff1a4489056a2020ab1bfa350ebb01abd22130276e2dd5", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-7ab4sdae/kernel_replay/tests/test_kernel_replay.py\", line 132, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 17 tests in 5.408s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-7ab4sdae/kernel_replay/tests/test_kernel_replay.py\", line 132, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 17 tests in 5.408s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-tool-binding.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-tool-binding.json new file mode 100644 index 000000000..fb122173e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-tool-binding.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-tool-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "a5f42c9dffd884cc72c5b29ab522f8f7c1554c75fd7aef898b56ef543ebdafd7", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u95lytlt/kernel_replay/tests/test_kernel_replay.py\", line 117, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.588s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-u95lytlt/kernel_replay/tests/test_kernel_replay.py\", line 117, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 17 tests in 0.588s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/prefix-expansion.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/prefix-expansion.json new file mode 100644 index 000000000..c62fe90cd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/prefix-expansion.json @@ -0,0 +1,21 @@ +{ + "name": "prefix-expansion", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "472a0c92ab568d849ba0d0e52f16347f3512e7f6cfcd6d89d78b9f582b9a0763", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... FAIL\n\n======================================================================\nFAIL: test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-knm94682/kernel_replay/tests/test_real_lean.py\", line 81, in test_exact_module_no_prefix_glob\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 1.919s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... FAIL\n\n======================================================================\nFAIL: test_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-knm94682/kernel_replay/tests/test_real_lean.py\", line 81, in test_exact_module_no_prefix_glob\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 1.919s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/preload-target-self-reference.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/preload-target-self-reference.json new file mode 100644 index 000000000..90b2f2ea5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/preload-target-self-reference.json @@ -0,0 +1,21 @@ +{ + "name": "preload-target-self-reference", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:37.672043+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:37.675603+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 10021, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:39.001302+00:00', 'elapsed_seconds': 1.3257151409998187}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean', 'sha256': '930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:39.003923+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.388s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:37.672043+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:37.675603+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 10021, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:39.001302+00:00', 'elapsed_seconds': 1.3257151409998187}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutk3ywk/kernel_replay/ExactReplay.lean', 'sha256': '930f302c06967af3f95f1e98f74d71c87e63d79694694977d6bf4c9e1ae04dd9'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:39.003923+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 2.388s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/skip-kernel-replay.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/skip-kernel-replay.json new file mode 100644 index 000000000..1acdca890 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/skip-kernel-replay.json @@ -0,0 +1,21 @@ +{ + "name": "skip-kernel-replay", + "file": "ExactReplay.lean", + "test": "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66", + "mutated_sha256": "77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:27.400980+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:27.405583+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 9863, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:27.675154+00:00', 'elapsed_seconds': 0.26957460299945524}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean', 'sha256': '77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:27.677429+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 1.338s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... FAIL\n\n======================================================================\nFAIL: test_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/test_real_lean.py\", line 46, in test_public_self_reference_rejected\n self.assertFalse(r['ok'], r)\nAssertionError: True is not false : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:27.400980+00:00', 'ok': True, 'results': [{'module': 'BadPublic', 'command': ['/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:27.405583+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 8192, 'timeout_seconds': 60, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}], 'pid': 9863, 'stdout': 'CBZ_KERNEL_REPLAY_OK BadPublic\\n', 'stdout_bytes': 31, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:27.675154+00:00', 'elapsed_seconds': 0.26957460299945524}], 'completed_count': 1, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures'], 'expected_modules': ['BadPublic'], 'modules': [{'name': 'BadPublic', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/tests/fixtures/BadPublic.lean', 'sha256': '9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean', 'sha256': '964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server', 'sha256': 'f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private', 'sha256': '79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/kernel_replay.py', 'sha256': '416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-d6afza4i/kernel_replay/ExactReplay.lean', 'sha256': '77e78da80654096e071db87e02006c57c681cde68d147d4ed95fa5a2407e69d2'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:27.677429+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 1.338s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/truncate-module-coverage.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/truncate-module-coverage.json new file mode 100644 index 000000000..cdd407a6f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/truncate-module-coverage.json @@ -0,0 +1,21 @@ +{ + "name": "truncate-module-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "7c87381f4be61e4fdc490b5bd003937d19e0a708fd3e6fad827c6dbaa72b6e74", + "tests": { + "tests_run": 17, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:25.657979+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:25.661857+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9821, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:25.776863+00:00', 'elapsed_seconds': 0.11500879599952896}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', 'sha256': 'ae3646e87b900b7be8f82899f997899973befa59e18ad3307b55b4db59012183'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/kernel_replay.py', 'sha256': '7c87381f4be61e4fdc490b5bd003937d19e0a708fd3e6fad827c6dbaa72b6e74'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:25.779229+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.523s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/tests/test_kernel_replay.py\", line 146, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T17:52:25.657979+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T17:52:25.661857+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 9821, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T17:52:25.776863+00:00', 'elapsed_seconds': 0.11500879599952896}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/fake-lean', 'sha256': 'ae3646e87b900b7be8f82899f997899973befa59e18ad3307b55b4db59012183'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/evidence/tmp6mn6ue8k/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/kernel_replay.py', 'sha256': '7c87381f4be61e4fdc490b5bd003937d19e0a708fd3e6fad827c6dbaa72b6e74'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-hutceb6m/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'ended': '2026-10-29T17:52:25.779229+00:00'}\n\n----------------------------------------------------------------------\nRan 17 tests in 0.523s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/mutations/untrusted-checker-search-path.json b/cbz/contributions/math514/kernel_replay/evidence/mutations/untrusted-checker-search-path.json new file mode 100644 index 000000000..75823619a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/mutations/untrusted-checker-search-path.json @@ -0,0 +1,21 @@ +{ + "name": "untrusted-checker-search-path", + "file": "kernel_replay.py", + "test": "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "mutated_sha256": "6820debaca0a9a0e1ac0c6b4f0922096eb23957042ff98792a1329532569d658", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... FAIL\n\n======================================================================\nFAIL: test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-l16hub7o/kernel_replay/tests/test_real_lean.py\", line 87, in test_user_lean_path_cannot_shadow_checker\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 2.543s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... FAIL\n\n======================================================================\nFAIL: test_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-l16hub7o/kernel_replay/tests/test_real_lean.py\", line 87, in test_user_lean_path_cannot_shadow_checker\n self.assertTrue(self.replay('Good')['ok'])\nAssertionError: False is not true\n\n----------------------------------------------------------------------\nRan 1 test in 2.543s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/harness-normal.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/harness-normal.json new file mode 100644 index 000000000..d0da9068f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/harness-normal.json @@ -0,0 +1,371 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "invalid_population": [], + "tests_run": 15, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok\ntest_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok\ntest_checker_origin_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill) ... ok\ntest_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok\ntest_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok\ntest_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok\ntest_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok\ntest_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok\ntest_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok\ntest_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok\ntest_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok\ntest_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok\ntest_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok\ntest_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok\ntest_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok\n\nRan 15 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 53, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/harness-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/harness-optimized.json new file mode 100644 index 000000000..d0da9068f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/harness-optimized.json @@ -0,0 +1,371 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_mutation_harness.MutationHarnessTests" + ], + "selected_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "invalid_population": [], + "tests_run": 15, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok\ntest_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok\ntest_checker_origin_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill) ... ok\ntest_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok\ntest_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok\ntest_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok\ntest_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok\ntest_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok\ntest_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok\ntest_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok\ntest_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok\ntest_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok\ntest_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok\ntest_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok\ntest_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok\n\nRan 15 tests\n", + "started_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "body_entered_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "body_finished_ids": [ + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 53, + "subtest_events": [ + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/population-list.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/population-list.json new file mode 100644 index 000000000..5a26edd50 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/population-list.json @@ -0,0 +1,76 @@ +{ + "selection": [ + "discover:test_*.py" + ], + "selected_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "invalid_population": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/fixture-g2-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/fixture-g2-rejection.json new file mode 100644 index 000000000..6e2bbc586 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/fixture-g2-rejection.json @@ -0,0 +1,6 @@ +{ + "returncode": 1, + "stdout": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:4:0: error: don't know how to synthesize implicit argument `\u03b1`\n @discard CommandElabM ?kResultTy\u271d ReaderT.instFunctorOfMonad do\n let __do_lift \u2190 getEnv\n match __do_lift.find? `unapprovedKernelReplayFixture with\n | some (ConstantInfo.axiomInfo val) =>\n Lean.throwError (toMessageData \"G2 fixture policy: unapproved axiom unapprovedKernelReplayFixture\")\n | x => Lean.throwError (toMessageData \"fixture missing its axiom\")\ncontext:\n\u22a2 Type\n/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:6:6: error: don't know how to synthesize implicit argument `\u03b1`\n @Lean.throwError CommandElabM ?kResultTy\u271d instMonadCommandElabM\n { toMonadExceptOf := instMonadExceptOfExceptionCommandElabM, toMonadRef := instMonadRefCommandElabM,\n toAddErrorMessageContext := instAddErrorMessageContextCommandElabM }\n (toMessageData \"fixture missing its axiom\")\ncontext:\nx\u271d : Option ConstantInfo\n\u22a2 Type\n/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:7:2: error: don't know how to synthesize implicit argument `\u03b1`\n @Lean.throwError CommandElabM ?kResultTy\u271d instMonadCommandElabM\n { toMonadExceptOf := instMonadExceptOfExceptionCommandElabM, toMonadRef := instMonadRefCommandElabM,\n toAddErrorMessageContext := instAddErrorMessageContextCommandElabM }\n (toMessageData \"G2 fixture policy: unapproved axiom unapprovedKernelReplayFixture\")\ncontext:\nval\u271d : AxiomVal\n\u22a2 Type\n", + "stderr": "", + "scope": "one explicit unapproved fixture axiom; not a production all-declaration G2 auditor" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPrivate.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPrivate.json new file mode 100644 index 000000000..5c3e45e26 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPrivate.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:05:35.049833+00:00", + "ok": false, + "results": [ + { + "module": "BadPrivate", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:05:35.053280+00:00", + "status": "FAIL", + "ok": false, + "returncode": 1, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ], + "pid": 5534, + "stdout": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean:33:0: error: while replaying declaration '_private.BadPrivate.0.malformedPrivate':\n(kernel) unknown constant '_private.BadPrivate.0.malformedPrivate'\n", + "stdout_bytes": 218, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:05:36.122414+00:00", + "elapsed_seconds": 1.0691873370001304 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "BadPrivate" + ], + "modules": [ + { + "name": "BadPrivate", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:05:36.124952+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPublic.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPublic.json new file mode 100644 index 000000000..9e5dfa9e8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-BadPublic.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:05:36.127956+00:00", + "ok": false, + "results": [ + { + "module": "BadPublic", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:05:36.130895+00:00", + "status": "FAIL", + "ok": false, + "returncode": 1, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean", + "sha256": "964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server", + "sha256": "f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private", + "sha256": "79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce" + } + ], + "pid": 5540, + "stdout": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean:33:0: error: while replaying declaration 'malformedPublic':\n(kernel) unknown constant 'malformedPublic'\n", + "stdout_bytes": 172, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:05:37.299758+00:00", + "elapsed_seconds": 1.1688837749998129 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "BadPublic" + ], + "modules": [ + { + "name": "BadPublic", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean", + "sha256": "964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server", + "sha256": "f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private", + "sha256": "79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:05:37.301899+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-Good.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-Good.json new file mode 100644 index 000000000..5182798e2 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-Good.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:05:38.529259+00:00", + "ok": true, + "results": [ + { + "module": "Good", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:05:38.532434+00:00", + "status": "PASS", + "ok": true, + "returncode": 0, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ], + "pid": 5560, + "stdout": "CBZ_KERNEL_REPLAY_OK Good\n", + "stdout_bytes": 26, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:05:39.149575+00:00", + "elapsed_seconds": 0.6171625810000023 + } + ], + "completed_count": 1, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "Good" + ], + "modules": [ + { + "name": "Good", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:05:39.151832+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-UnapprovedAxiom.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-UnapprovedAxiom.json new file mode 100644 index 000000000..d386ea8b4 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/normal/real-UnapprovedAxiom.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:05:37.305515+00:00", + "ok": true, + "results": [ + { + "module": "UnapprovedAxiom", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:05:37.308266+00:00", + "status": "PASS", + "ok": true, + "returncode": 0, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ], + "pid": 5546, + "stdout": "CBZ_KERNEL_REPLAY_OK UnapprovedAxiom\n", + "stdout_bytes": 37, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:05:37.926274+00:00", + "elapsed_seconds": 0.6180279239999891 + } + ], + "completed_count": 1, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "UnapprovedAxiom" + ], + "modules": [ + { + "name": "UnapprovedAxiom", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:05:37.928454+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/fixture-g2-rejection.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/fixture-g2-rejection.json new file mode 100644 index 000000000..6e2bbc586 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/fixture-g2-rejection.json @@ -0,0 +1,6 @@ +{ + "returncode": 1, + "stdout": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:4:0: error: don't know how to synthesize implicit argument `\u03b1`\n @discard CommandElabM ?kResultTy\u271d ReaderT.instFunctorOfMonad do\n let __do_lift \u2190 getEnv\n match __do_lift.find? `unapprovedKernelReplayFixture with\n | some (ConstantInfo.axiomInfo val) =>\n Lean.throwError (toMessageData \"G2 fixture policy: unapproved axiom unapprovedKernelReplayFixture\")\n | x => Lean.throwError (toMessageData \"fixture missing its axiom\")\ncontext:\n\u22a2 Type\n/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:6:6: error: don't know how to synthesize implicit argument `\u03b1`\n @Lean.throwError CommandElabM ?kResultTy\u271d instMonadCommandElabM\n { toMonadExceptOf := instMonadExceptOfExceptionCommandElabM, toMonadRef := instMonadRefCommandElabM,\n toAddErrorMessageContext := instAddErrorMessageContextCommandElabM }\n (toMessageData \"fixture missing its axiom\")\ncontext:\nx\u271d : Option ConstantInfo\n\u22a2 Type\n/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/FixtureAxiomPolicy.lean:7:2: error: don't know how to synthesize implicit argument `\u03b1`\n @Lean.throwError CommandElabM ?kResultTy\u271d instMonadCommandElabM\n { toMonadExceptOf := instMonadExceptOfExceptionCommandElabM, toMonadRef := instMonadRefCommandElabM,\n toAddErrorMessageContext := instAddErrorMessageContextCommandElabM }\n (toMessageData \"G2 fixture policy: unapproved axiom unapprovedKernelReplayFixture\")\ncontext:\nval\u271d : AxiomVal\n\u22a2 Type\n", + "stderr": "", + "scope": "one explicit unapproved fixture axiom; not a production all-declaration G2 auditor" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPrivate.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPrivate.json new file mode 100644 index 000000000..83d8f8845 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPrivate.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:06:03.940403+00:00", + "ok": false, + "results": [ + { + "module": "BadPrivate", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:06:03.943135+00:00", + "status": "FAIL", + "ok": false, + "returncode": 1, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ], + "pid": 5761, + "stdout": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean:33:0: error: while replaying declaration '_private.BadPrivate.0.malformedPrivate':\n(kernel) unknown constant '_private.BadPrivate.0.malformedPrivate'\n", + "stdout_bytes": 218, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:06:05.211986+00:00", + "elapsed_seconds": 1.2689002390000041 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "BadPrivate" + ], + "modules": [ + { + "name": "BadPrivate", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:06:05.214429+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPublic.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPublic.json new file mode 100644 index 000000000..a85b55d0a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-BadPublic.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:06:05.217254+00:00", + "ok": false, + "results": [ + { + "module": "BadPublic", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:06:05.220026+00:00", + "status": "FAIL", + "ok": false, + "returncode": 1, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean", + "sha256": "964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server", + "sha256": "f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private", + "sha256": "79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce" + } + ], + "pid": 5767, + "stdout": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean:33:0: error: while replaying declaration 'malformedPublic':\n(kernel) unknown constant 'malformedPublic'\n", + "stdout_bytes": 172, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:06:06.238944+00:00", + "elapsed_seconds": 1.018936849000056 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "BadPublic" + ], + "modules": [ + { + "name": "BadPublic", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean", + "sha256": "964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server", + "sha256": "f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private", + "sha256": "79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:06:06.240963+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-Good.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-Good.json new file mode 100644 index 000000000..d7bbb7e6d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-Good.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:06:07.540881+00:00", + "ok": true, + "results": [ + { + "module": "Good", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:06:07.543803+00:00", + "status": "PASS", + "ok": true, + "returncode": 0, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ], + "pid": 5787, + "stdout": "CBZ_KERNEL_REPLAY_OK Good\n", + "stdout_bytes": 26, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:06:08.161578+00:00", + "elapsed_seconds": 0.6177921890000562 + } + ], + "completed_count": 1, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "Good" + ], + "modules": [ + { + "name": "Good", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:06:08.163569+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-UnapprovedAxiom.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-UnapprovedAxiom.json new file mode 100644 index 000000000..c2cceab9d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-fixtures/optimized/real-UnapprovedAxiom.json @@ -0,0 +1,129 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-11-01T00:06:06.244505+00:00", + "ok": true, + "results": [ + { + "module": "UnapprovedAxiom", + "command": [ + "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean" + ], + "started": "2026-11-01T00:06:06.247295+00:00", + "status": "PASS", + "ok": true, + "returncode": 0, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ], + "pid": 5773, + "stdout": "CBZ_KERNEL_REPLAY_OK UnapprovedAxiom\n", + "stdout_bytes": 37, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-11-01T00:06:06.914491+00:00", + "elapsed_seconds": 0.6672208590000537 + } + ], + "completed_count": 1, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "UnapprovedAxiom" + ], + "modules": [ + { + "name": "UnapprovedAxiom", + "source": { + "path": "/workspace/cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz/contributions/math514/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/ubuntu/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "resource_limits": { + "memory_mib_max": 8796093022207, + "timeout_seconds_max": 2147483, + "cleanup_timeout_seconds": 1.0 + }, + "ended": "2026-11-01T00:06:06.916658+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-lean-normal.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-lean-normal.json new file mode 100644 index 000000000..137daa633 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-lean-normal.json @@ -0,0 +1,75 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_real_lean.RealLeanTests" + ], + "selected_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "invalid_population": [], + "tests_run": 9, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_cli_prepare_and_run (test_real_lean.RealLeanTests.test_cli_prepare_and_run) ... ok\ntest_driver_missing_request_and_binding_rejected (test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected) ... ok\ntest_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... ok\ntest_good_public_private_inductive_all_parts (test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts) ... ok\ntest_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... ok\ntest_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... ok\ntest_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... ok\ntest_unapproved_axiom_kernel_valid_but_independent_policy_rejects (test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects) ... ok\ntest_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... ok\n\nRan 9 tests\n", + "started_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "finished_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_entered_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_finished_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-lean-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-lean-optimized.json new file mode 100644 index 000000000..137daa633 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/real-lean-optimized.json @@ -0,0 +1,75 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "test_real_lean.RealLeanTests" + ], + "selected_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "invalid_population": [], + "tests_run": 9, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_cli_prepare_and_run (test_real_lean.RealLeanTests.test_cli_prepare_and_run) ... ok\ntest_driver_missing_request_and_binding_rejected (test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected) ... ok\ntest_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... ok\ntest_good_public_private_inductive_all_parts (test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts) ... ok\ntest_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... ok\ntest_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... ok\ntest_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... ok\ntest_unapproved_axiom_kernel_valid_but_independent_policy_rejects (test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects) ... ok\ntest_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... ok\n\nRan 9 tests\n", + "started_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "finished_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_entered_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_finished_ids": [ + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 0, + "subtest_events": [], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/suite-normal.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/suite-normal.json new file mode 100644 index 000000000..4b412db60 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/suite-normal.json @@ -0,0 +1,1046 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "discover:test_*.py" + ], + "selected_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "invalid_population": [], + "tests_run": 68, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_oversized_cli_arguments_emit_non_green_report (test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report) ... ok\ntest_resource_real_preexec_failure_is_structured (test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\ntest_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok\ntest_custom_testcase_run_is_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution) ... ok\ntest_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok\ntest_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok\ntest_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok\ntest_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... ok\ntest_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok\ntest_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok\ntest_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok\ntest_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok\ntest_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok\ntest_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok\ntest_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok\ntest_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok\ntest_checker_origin_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill) ... ok\ntest_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok\ntest_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok\ntest_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok\ntest_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok\ntest_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok\ntest_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok\ntest_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok\ntest_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok\ntest_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok\ntest_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok\ntest_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok\ntest_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok\ntest_cli_prepare_and_run (test_real_lean.RealLeanTests.test_cli_prepare_and_run) ... ok\ntest_driver_missing_request_and_binding_rejected (test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected) ... ok\ntest_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... ok\ntest_good_public_private_inductive_all_parts (test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts) ... ok\ntest_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... ok\ntest_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... ok\ntest_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... ok\ntest_unapproved_axiom_kernel_valid_but_independent_policy_rejects (test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects) ... ok\ntest_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... ok\n\nRan 68 tests\n", + "started_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "finished_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_entered_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_finished_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 135, + "subtest_events": [ + { + "parent_id": "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/suite-optimized.json b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/suite-optimized.json new file mode 100644 index 000000000..4b412db60 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/oracle-assertion-origin/suite-optimized.json @@ -0,0 +1,1046 @@ +{ + "receipt_schema": "cbz-unittest-lifecycle-v1", + "selection": [ + "discover:test_*.py" + ], + "selected_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "invalid_population": [], + "tests_run": 68, + "assertion_failures": 0, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": true, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_oversized_cli_arguments_emit_non_green_report (test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report) ... ok\ntest_resource_real_preexec_failure_is_structured (test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\ntest_callable_factory_selector_is_refused_before_factory_or_body (test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body) ... ok\ntest_class_fixture_function_and_code_substitutions_are_refused (test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused) ... ok\ntest_custom_testcase_run_is_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution) ... ok\ntest_identity_change_during_body_is_not_a_clean_kill (test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill) ... ok\ntest_module_alias_subclass_and_population_hooks_refused_before_execution (test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution) ... ok\ntest_named_class_and_method_selection_preserve_exact_population (test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population) ... ok\ntest_postload_substitution_refused_before_any_fixture (test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture) ... ok\ntest_all_non_none_returns_refuse_without_iterating_custom_objects (test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects) ... ok\ntest_declared_lazy_method_shapes_refuse_mixed_population_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution) ... ok\ntest_decorator_without_wrapped_metadata_cannot_hide_lazy_return (test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return) ... ok\ntest_ordinary_synchronous_body_positives_remain_supported (test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported) ... ok\ntest_sync_lazy_returns_refuse_without_advancing_suspended_work (test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work) ... ok\ntest_wrapped_lazy_method_shapes_refuse_before_execution (test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution) ... ok\ntest_body_assertion_kills_after_all_selected_bodies_finish (test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish) ... ok\ntest_body_scoped_subtest_assertions_kill_without_changing_parent_population (test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population) ... ok\ntest_checker_origin_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill) ... ok\ntest_clean_identity_survives (test_mutation_harness.MutationHarnessTests.test_clean_identity_survives) ... ok\ntest_dispatch_hook_assertion_without_selected_method_is_error (test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error) ... ok\ntest_empty_duplicate_synthetic_and_spoofed_population_is_error (test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error) ... ok\ntest_errors_skips_and_expected_failures_are_errors (test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors) ... ok\ntest_foreign_subtest_parent_cannot_claim_selected_body_assertion (test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion) ... ok\ntest_forged_or_missing_accounting_is_error (test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error) ... ok\ntest_lifecycle_failures_never_kill_even_with_body_assertion (test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion) ... ok\ntest_lifecycle_subtests_and_subtest_errors_are_errors (test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors) ... ok\ntest_population_listing_does_not_execute_fixtures_or_bodies (test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies) ... ok\ntest_selected_method_invoked_from_lifecycle_is_error (test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error) ... ok\ntest_setup_assertion_is_not_a_kill (test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill) ... ok\ntest_summary_without_lifecycle_receipt_fails_closed (test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed) ... ok\ntest_cli_prepare_and_run (test_real_lean.RealLeanTests.test_cli_prepare_and_run) ... ok\ntest_driver_missing_request_and_binding_rejected (test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected) ... ok\ntest_exact_module_no_prefix_glob (test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob) ... ok\ntest_good_public_private_inductive_all_parts (test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts) ... ok\ntest_private_self_reference_rejected (test_real_lean.RealLeanTests.test_private_self_reference_rejected) ... ok\ntest_public_self_reference_rejected (test_real_lean.RealLeanTests.test_public_self_reference_rejected) ... ok\ntest_real_private_body_cannot_hide_behind_olean_symlink (test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink) ... ok\ntest_unapproved_axiom_kernel_valid_but_independent_policy_rejects (test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects) ... ok\ntest_user_lean_path_cannot_shadow_checker (test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker) ... ok\n\nRan 68 tests\n", + "started_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "finished_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_entered_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_finished_ids": [ + "test_kernel_replay.WrapperTests.test_duplicate_modules_rejected", + "test_kernel_replay.WrapperTests.test_empty_coverage_rejected", + "test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected", + "test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected", + "test_kernel_replay.WrapperTests.test_memory_limit_applied", + "test_kernel_replay.WrapperTests.test_missing_module_rejected", + "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "test_kernel_replay.WrapperTests.test_new_private_part_rejected", + "test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker", + "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "test_kernel_replay.WrapperTests.test_part_change_rejected", + "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "test_kernel_replay.WrapperTests.test_resource_real_preexec_failure_is_structured", + "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child", + "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected", + "test_kernel_replay.WrapperTests.test_source_change_rejected", + "test_kernel_replay.WrapperTests.test_strict_cli", + "test_kernel_replay.WrapperTests.test_timeout_fatal", + "test_kernel_replay.WrapperTests.test_tool_binding_change_rejected", + "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "test_mutation_harness.IdentityHarnessTests.test_custom_testcase_run_is_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_identity_change_during_body_is_not_a_clean_kill", + "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "test_mutation_harness.IdentityHarnessTests.test_postload_substitution_refused_before_any_fixture", + "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "test_mutation_harness.LazyBodyHarnessTests.test_decorator_without_wrapped_metadata_cannot_hide_lazy_return", + "test_mutation_harness.LazyBodyHarnessTests.test_ordinary_synchronous_body_positives_remain_supported", + "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "test_mutation_harness.MutationHarnessTests.test_body_assertion_kills_after_all_selected_bodies_finish", + "test_mutation_harness.MutationHarnessTests.test_body_scoped_subtest_assertions_kill_without_changing_parent_population", + "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_clean_identity_survives", + "test_mutation_harness.MutationHarnessTests.test_dispatch_hook_assertion_without_selected_method_is_error", + "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "test_mutation_harness.MutationHarnessTests.test_foreign_subtest_parent_cannot_claim_selected_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "test_mutation_harness.MutationHarnessTests.test_lifecycle_subtests_and_subtest_errors_are_errors", + "test_mutation_harness.MutationHarnessTests.test_population_listing_does_not_execute_fixtures_or_bodies", + "test_mutation_harness.MutationHarnessTests.test_selected_method_invoked_from_lifecycle_is_error", + "test_mutation_harness.MutationHarnessTests.test_setup_assertion_is_not_a_kill", + "test_mutation_harness.MutationHarnessTests.test_summary_without_lifecycle_receipt_fails_closed", + "test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "test_real_lean.RealLeanTests.test_driver_missing_request_and_binding_rejected", + "test_real_lean.RealLeanTests.test_exact_module_no_prefix_glob", + "test_real_lean.RealLeanTests.test_good_public_private_inductive_all_parts", + "test_real_lean.RealLeanTests.test_private_self_reference_rejected", + "test_real_lean.RealLeanTests.test_public_self_reference_rejected", + "test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink", + "test_real_lean.RealLeanTests.test_unapproved_axiom_kernel_valid_but_independent_policy_rejects", + "test_real_lean.RealLeanTests.test_user_lean_path_cannot_shadow_checker" + ], + "body_assertion_ids": [], + "lifecycle_failures": 0, + "subtests": 135, + "subtest_events": [ + { + "parent_id": "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_callable_factory_selector_is_refused_before_factory_or_body", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_class_fixture_function_and_code_substitutions_are_refused", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_module_alias_subclass_and_population_hooks_refused_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.IdentityHarnessTests.test_named_class_and_method_selection_preserve_exact_population", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_all_non_none_returns_refuse_without_iterating_custom_objects", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_declared_lazy_method_shapes_refuse_mixed_population_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_sync_lazy_returns_refuse_without_advancing_suspended_work", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.LazyBodyHarnessTests.test_wrapped_lazy_method_shapes_refuse_before_execution", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_checker_origin_assertion_is_not_a_kill", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_empty_duplicate_synthetic_and_spoofed_population_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_errors_skips_and_expected_failures_are_errors", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_forged_or_missing_accounting_is_error", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + }, + { + "parent_id": "test_mutation_harness.MutationHarnessTests.test_lifecycle_failures_never_kill_even_with_body_assertion", + "phase": "body", + "outcome": "success" + } + ], + "assertion_events": [] +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/PUBLICATION.json b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/PUBLICATION.json new file mode 100644 index 000000000..f4ee6be3e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/PUBLICATION.json @@ -0,0 +1,718 @@ +{ + "destination_root": "cbz/contributions/math514/kernel_replay", + "files": [ + { + "source": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "destination": "cbz/contributions/math514/kernel_replay/ExactReplay.lean" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/LAZY_BODY_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/LAZY_BODY_FIX.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/LIFECYCLE_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/LIFECYCLE_FIX.md" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/PUBLICATION.json", + "destination": "cbz/contributions/math514/kernel_replay/PUBLICATION.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/README.md", + "destination": "cbz/contributions/math514/kernel_replay/README.md" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/REGISTRY.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/RESOURCE_FIX.md", + "destination": "cbz/contributions/math514/kernel_replay/RESOURCE_FIX.md" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/SPEC.md", + "destination": "cbz/contributions/math514/kernel_replay/SPEC.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/STATUS_CORRECTION.md", + "destination": "cbz/contributions/math514/kernel_replay/STATUS_CORRECTION.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/fixture-g2-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/fixture-g2-rejection.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-additional-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-additional-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-applicable-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-applicable-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-initial-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-initial-mutations.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-mutations.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-additional-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-additional-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-applicable.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-applicable.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-cleanup-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-cleanup-red.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-memory-mutant-refresh.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-mutations.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-mutations.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-preexec-test.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-preexec-test.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-red-initial.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-red-initial.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-red.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-wrapper-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-resource-wrapper-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-tests.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/g0-tests.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-import-shadow-failure.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-import-shadow-failure.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-low-address-limit-failures.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-low-address-limit-failures.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-real-symlink-replay.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/initial-real-symlink-replay.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/ARTIFACT_ORIGINS.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/ARTIFACT_ORIGINS.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/DOC_ADDITIONS.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/DOC_ADDITIONS.md" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/EVIDENCE_PATH_MAP.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/EVIDENCE_PATH_MAP.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/REPORT.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/REPORT.md" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/mutations.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/baseline/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/run_tests.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/baseline/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/baseline/tests/test_mutation_harness.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/current-composed-receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/current-composed-receipt.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/baseline-sha256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/baseline-sha256.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/independent-lazy-body-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/independent-lazy-body-review.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-delivery.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-delivery.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-controls-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-green.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-optimized-green.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-controls-red.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-lazy-return-rejection.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-drop-pristine-lazy-shape-rejection.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/normal-ignore-decorator-lazy-shape-links.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-lazy-return-rejection.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-drop-pristine-lazy-shape-rejection.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/optimized-ignore-decorator-lazy-shape-links.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-lazy-guard-mutants/summary.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-mixed-generator-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-mixed-generator-red.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-profile-controls-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-green.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-profile-controls-optimized-green.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/normal-drop-non-none-return-rejection.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/optimized-drop-non-none-return-rejection.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-guard-mutant/summary.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/kernel-none-return-profile-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/kernel-none-return-profile-red.log" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/original-method-shape-applicability.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/original-method-shape-applicability.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_lazy_guard_mutants.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/evidence/run_kernel_none_return_guard_mutant.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/kernel-lazy-body.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lazy-body.patch" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/kernel-lifecycle-and-lazy-cumulative.patch" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/published-parent/PUBLICATION.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/PUBLICATION.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/published-parent/README.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/README.md" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/published-parent/REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/REGISTRY.json" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/evidence/lazy-body/published-parent/SPEC.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lazy-body/published-parent/SPEC.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/DELIVERY_REGISTRY.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/mutations.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/baseline/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/baseline/tests/test_mutation_harness.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/independent-lifecycle-review.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-baseline-sha256.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-optimized-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-controls-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-delivery.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-dispatch-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-body-completion.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/drop-selected-method-dispatch-authorization.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/erase-subtest-lifecycle-origin.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/summary.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-final-runner-mutants/trust-overridable-display-id.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-optimized-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-foreign-subtest-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/accept-boolean-counts.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/drop-body-completion.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/erase-subtest-lifecycle-origin.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-body-population-receipt.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-invalid-population.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/ignore-selector-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/restore-summary-only-grading.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/summary.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-harness-mutants/trust-overridable-display-id.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-lifecycle-method-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/drop-foreign-subtest-parent-identity.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/guard_run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-parent-identity-mutant/summary.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-binding-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-population-listing-green.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-setup-red.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/kernel-subtest-controls-red.log" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_final_runner_mutants.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_harness_mutants.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/evidence/run_kernel_parent_identity_mutant.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel-first-generation.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-first-generation.patch" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel-parent-identity-followup.patch" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel.patch", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel.patch" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/DELIVERY_REGISTRY-first-generation.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/REPORT.md", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REPORT.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/REVIEW.txt" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/lifecycle/kernel/SUCCESSOR_SHA256.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/allow-artifact-symlink.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/allow-artifact-symlink.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/concurrent-module-processes.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/concurrent-module-processes.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/empty-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/empty-coverage.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/exported-part-only.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/exported-part-only.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-compiled-parts-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-completion-marker.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-completion-marker.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-memory-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-memory-limit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-nonzero-exit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-nonzero-exit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-source-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-source-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-timeout.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/ignore-tool-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/ignore-tool-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/prefix-expansion.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/prefix-expansion.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/preload-target-self-reference.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/preload-target-self-reference.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/skip-kernel-replay.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/skip-kernel-replay.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/truncate-module-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/truncate-module-coverage.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/mutations/untrusted-checker-search-path.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/mutations/untrusted-checker-search-path.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-BadPrivate.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-BadPrivate.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-BadPublic.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-BadPublic.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-Good.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-Good.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/real-UnapprovedAxiom.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/real-UnapprovedAxiom.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/mutations.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-baseline/test_kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-baseline/test_kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/empty-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/empty-coverage.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-source-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-source-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-timeout.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json", + "destination": "cbz/contributions/math514/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-replay-independent-review.md", + "destination": "cbz/contributions/math514/kernel_replay/independent-review.md" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/mutations.py", + "destination": "cbz/contributions/math514/kernel_replay/mutations.py" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-resource-fix-report.json", + "destination": "cbz/contributions/math514/kernel_replay/resource-fix-report.json" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-resource-fix-report.md", + "destination": "cbz/contributions/math514/kernel_replay/resource-fix-report.md" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-resource-postfix-review.md", + "destination": "cbz/contributions/math514/kernel_replay/resource-postfix-review.md" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/run_tests.py", + "destination": "cbz/contributions/math514/kernel_replay/run_tests.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPublic.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "destination": "cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_kernel_replay.py" + }, + { + "source": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files/tests/test_mutation_harness.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_mutation_harness.py" + }, + { + "source": "/workspace/cbz-0/tools/kernel_replay/tests/test_real_lean.py", + "destination": "cbz/contributions/math514/kernel_replay/tests/test_real_lean.py" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-replay-tool-report.json", + "destination": "cbz/contributions/math514/kernel_replay/tool-report.json" + }, + { + "source": "/workspace/cbz-0/discovery/kernel-replay-tool-report.md", + "destination": "cbz/contributions/math514/kernel_replay/tool-report.md" + } + ], + "published_parent": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "overlay_root": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files", + "retained_predecessor_entries": 135, + "overlay_path_count": 48, + "rule": "Retain prior native paths; publish only changed/new overlay files with expected-old tree CAS." +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/README.md b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/README.md new file mode 100644 index 000000000..026c34bba --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/README.md @@ -0,0 +1,70 @@ +# Bounded exact-module Lean kernel replay + +This adapter invokes the installed `LeanChecker.replayFromImports` once in each fresh Lean process. It removes the upstream CLI's prefix expansion and concurrent per-module tasks while preserving its kernel replay routine. It is a scoped G4 tool, not an independent proof checker or a complete CBZ gate suite. + +Requirements: Linux, Python 3 standard library, and a complete Lean 4.34.1 toolchain containing `bin/lean`, `lib/lean/LeanChecker.olean`, `lib/lean/Lean/Replay.olean`, and their corresponding installed source files. No Lake invocation, package download or native build is required. The driver is evaluated by plain `lean -j1 ExactReplay.lean`, because importing `LeanChecker` already imports upstream's root `main`; using `lean --run` would invoke its unsuitable CLI. + +Use absolute, canonical paths without symlinks for artifact roots and olean files/parts. The sysroot library takes precedence over supplied `LEAN_PATH` entries so a project cannot shadow the imported checker. Only explicit ASCII Lean module identifiers are accepted. Unknown arguments, including `--help`, fail; `python3 kernel_replay.py help` prints usage. + +From a fresh clone's repository root, use the published contribution path below. This example requires `elan` and an already installed Lean 4.34.1 toolchain selected by the repository's pinned toolchain setting. Without `elan`, set `LEAN=/absolute/lean-4.34.1/bin/lean` instead. Historical G0 receipts retain the actual author-workspace paths recorded when those checks ran; these portable usage examples do not rewrite that evidence. + +```bash +TOOL="$PWD/cbz/contributions/math514/kernel_replay" +LEAN="$(elan which lean)" + +# Include every module from the caller's independently complete owned-module inventory. +python3 "$TOOL/kernel_replay.py" prepare \ + --lean "$LEAN" \ + --lean-path /absolute/project/.lake/build/lib/lean \ + --lean-path /absolute/mathlib/.lake/build/lib/lean \ + --module ExactModule=/absolute/project/ExactModule.lean \ + --module AnotherModule=/absolute/project/AnotherModule.lean \ + --context /absolute/project/lean-toolchain \ + --context /absolute/project/lake-manifest.json \ + --output /absolute/evidence/replay-manifest.json + +python3 "$TOOL/kernel_replay.py" run /absolute/evidence/replay-manifest.json \ + --memory-mib 16384 --timeout-seconds 600 \ + --output /absolute/evidence/replay-report.json + +# The one-module convenience command uses the same manifest and replay checks. +python3 "$TOOL/kernel_replay.py" one ExactModule \ + --lean "$LEAN" --lean-path /absolute/project/.lake/build/lib/lean \ + --source /absolute/project/ExactModule.lean \ + --memory-mib 16384 --timeout-seconds 600 \ + --output /absolute/evidence/one-module-report.json +``` + +Repeat `--lean-path`, `--module`, and `--context` as needed. No glob, prefix expansion, implicit module or skip option exists. `prepare` binds every source, available exported/server/private olean part, executable and checker implementation. `run` checks exact nonempty coverage, validates bindings before/after execution, and waits for each process before starting the next. It requires exit zero and exactly one matching success marker. A failed child remains fatal to overall status even if other modules pass. Reports contain commands, times, bounds, hashes and output tails. CLI exit codes: 0 successful scoped replay/preparation, 1 non-green replay report, 2 malformed CLI/input/preparation failure. Preserve failed reports. + +Resource quantities are validated before spawning. Memory must be an integer from 64 MiB through `min(sys.maxsize, finite inherited RLIMIT_AS hard limit) // 1048576`; an unlimited inherited hard limit contributes no cap. This conservative Linux platform-integer ceiling excludes the unlimited sentinel, rejects values the child cannot install, and never silently clamps a request. Timeout must be an integer or float in `(0, min(floor(threading.TIMEOUT_MAX), 2147483)]` seconds. The second ceiling is the signed 32-bit poll-millisecond range rounded down to whole seconds. Booleans, nonfinite values and oversized integers are rejected without float conversion or a child process. Reports record the effective ceilings. + +Spawn and wait `OSError`, `SubprocessError`, `OverflowError` and `ValueError` become structured non-green reports. A timeout or abnormal wait sends SIGKILL to the process group, attempts a direct child kill if group signaling fails, and waits at most one second to reap. A normal killable child is reaped before scheduling continues. If the OS refuses signaling/reaping (for example an uninterruptible kernel wait), the adapter reports `ERROR` with the PID and cleanup diagnostics, then stops further modules; users must resolve that OS-level process. Finite cleanup cannot guarantee forced termination of an uninterruptible child. An error remains `ERROR` even if cleanup observes exit zero and a matching success marker. + +`--memory-mib` limits **virtual address space** with Linux `RLIMIT_AS`; it is not an RSS measurement or a replacement for the enclosing cgroup's physical memory limit. Tiny-driver diagnostics observed about 6.2 GiB virtual reservation and 614 MiB RSS. A 2 GiB address-space limit aborted during thread creation before checking; fixture replay passed with an explicit 8192 MiB cap. Individual real modules can still exceed memory or time bounds. The initial Math core exit-137 OOM at16GiB remains retained failed-run evidence. The canonical handoff already records a later successful same-source complete Math-core gate with `LEAN_NUM_THREADS=2` at8151; see [the immutable component receipt](https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json). Reuse that completed evidence: this adapter is a separately verified exact-scheduling option and does not require another Math-core replay. Its tiny fixtures alone do not establish every project module's resource requirement. + +The source and compiled hashes are separate bindings; G3 build evidence must establish that the compiled artifacts came from those sources. The report covers only declared targets and explicit context files. Supply all dependency bindings required by the intended evidence claim, and use a stable input tree. A hand-selected subset does not establish complete project coverage. Symlinked artifact roots/components/files/parts are rejected because upstream selects private/server siblings by lexical filename; canonicalizing a single file could otherwise bind different parts from those replayed. + +Upstream reads all available olean parts, uses the most private constant map, and checks safe total declarations in an **import-only** environment. It handles inductive declarations and checks the generated constructors/recursors. Its intentional exclusion of unsafe and partial definitions remains in effect. Imported dependencies require their own coverage/evidence. Kernel validity permits axioms; `g2_status` always remains `NOT_ASSESSED`. The included axiom fixture is kernel-valid and is rejected by a separate explicit fixture-policy check. That check illustrates the G2/G4 distinction; it is not a production all-declaration approved-axiom auditor. G2 is still a separate blocking obligation. + +The [lifecycle repair](LIFECYCLE_FIX.md) established 14 harness methods and 10 distinct safeguard mutants with exact selected-population/body-assertion accounting. The later [None-return profile](LAZY_BODY_FIX.md) adds six affected methods, verified normally and optimized, to refuse deferred method bodies and unsupported return objects. The current 60 methods comprise 31 unchanged wrapper, 9 unchanged real-Lean, 14 earlier lifecycle and 6 new profile methods. These are composed results, not a fresh full-suite run. Resource-only results below retain their historical generation at 9c94ff6; the old one-method synthetic fixture remains source history. + +Run G0 only for changed tooling or uncovered obligations; reuse applicable evidence on unchanged material. The resource-boundary repair changed the wrapper and its tests, so its affected checks are: + +```bash +export CBZ_TEST_LEAN="$LEAN" +python3 "$TOOL/run_tests.py" --output "$TOOL/evidence/g0-wrapper-current.json" \ + --test test_kernel_replay.WrapperTests --test test_mutation_harness.MutationHarnessTests +python3 "$TOOL/mutations.py" --group wrapper --output "$TOOL/evidence/g0-wrapper-mutations-current.json" +``` + +Resource generation evidence consists of 30 passing tests, two additional passing tests (one repeats the strengthened memory oracle), and one actual preexec-failure test: 32 distinct fresh tests, including 14 new resource tests. Nineteen current-source wrapper mutants were killed by actual assertion failures: ten original wrapper cases and nine new resource cases. The memory mutant was then rechecked only because its test oracle changed. These are separate from the preserved original 27-test/16-mutation receipts for wrapper SHA-256 `416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293`. The nine unchanged real-Lean tests and six real-driver/import-trust mutants retain their earlier applicable evidence; no real Lean fixture or project proof was replayed for this repair. See [RESOURCE_FIX.md](RESOURCE_FIX.md) and `evidence/g0-resource-applicable.json` for the exact evidence split. The default unfiltered runners still support a full suite when a new change warrants it. + +The real fixtures cover public/private proofs, data, inductives, exact-module behavior, installed-checker import trust and module-file symlink rejection. `BadPublic.lean` and `BadPrivate.lean` intentionally inject self-referential proofs through the public declaration API with fixture-local `debug.skipKernelTC`. They and `UnapprovedAxiom.lean` are quarantined test data, never closed mathematical modules. The exported-only and target-preloading mutants demonstrate why private parts and an import-only replay environment are required. Mutation copies are isolated and disposable; only complete custody-bound selected-body assertion evidence counts as a kill. Lifecycle assertions, errors, skips, empty/incomplete populations and timeouts are non-green harness outcomes. Initial survivors and erroneous historical adapter receipts are retained as failed tooling evidence, never certification. + +Ownership, gate boundaries, publication mapping and canonical registry/ledger payload are in `REGISTRY.json`. The canonical writer integrates that payload; this contribution does not edit shared canonical surfaces. + + +Mutation grading supports ordinary synchronous unittest methods that return None. Generator, coroutine, async-generator and wraps-linked suspended method shapes are refused during pristine population discovery. Every non-None body return is ERROR, including falsey values and opaque iterables. Returned work is not consumed or awaited; only a fresh native coroutine may be closed without entering its body. Creating a suspended call object is not evidence that its deferred test body executed. + +Only the new profile obligation required fresh checks. Use the focused commands in REGISTRY.json when relevant; retain completed applicable evidence instead of replaying the original suite, 25 source mutants or Lean. Prior published/hosted results remain pinned to their tested heads. No new-head CI or CBZ result is asserted here. diff --git a/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/REGISTRY.json b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/REGISTRY.json new file mode 100644 index 000000000..a96c01c7a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/REGISTRY.json @@ -0,0 +1,222 @@ +{ + "id": "cbz-kernel-exact-replay-v1", + "status": "COMPLETE_SCOPED_TOOL_REGISTRY_PAYLOAD", + "owner": "CBZ tooling / canonical writer integration", + "purpose": "Bounded serial exact-module scheduling of installed LeanChecker.replayFromImports, with target source/artifact bindings and fail-closed coverage/error handling.", + "associated_criteria": [ + "G0 auditor self-test/mutations", + "G4 scoped kernel replay", + "G11 complete documented tooling" + ], + "gates_not_claimed": [ + "G2 all-declaration approved-axiom audit", + "complete project G4 coverage", + "CBZ-0" + ], + "commands": { + "help": "python3 kernel_replay.py help", + "prepare": "python3 kernel_replay.py prepare --lean ABS_LEAN --lean-path ABS_OLEAN_ROOT --module NAME=ABS_SOURCE --output MANIFEST.json", + "run": "python3 kernel_replay.py run MANIFEST.json --memory-mib 16384 --timeout-seconds 600 --output REPORT.json", + "g0": "python3 run_tests.py --output evidence/g0-tests.json", + "mutations": "python3 mutations.py --output evidence/g0-mutations.json", + "g0_resource": "python3 run_tests.py --output evidence/g0-wrapper-current.json --test test_kernel_replay.WrapperTests --test test_mutation_harness.MutationHarnessTests", + "mutations_resource": "python3 mutations.py --group wrapper --output evidence/g0-wrapper-mutations-current.json", + "g0_lifecycle": "python3 -B -S run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness.json", + "g0_lifecycle_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.MutationHarnessTests --output /absolute/new-evidence/harness-optimized.json", + "g0_lazy_body_profile": "python3 -B -S run_tests.py --test test_mutation_harness.LazyBodyHarnessTests --output /absolute/new-evidence/lazy-body.json", + "g0_lazy_body_profile_optimized": "PYTHONOPTIMIZE=1 python3 -B -S -O run_tests.py --test test_mutation_harness.LazyBodyHarnessTests --output /absolute/new-evidence/lazy-body-optimized.json" + }, + "self_verification": { + "status": "PASS_SCOPED_COMPOSED_NONE_RETURN_PROFILE", + "generation": "lazy-body-none-v4", + "single_full_suite_claim": false, + "current_test_methods": 60, + "fresh_affected_harness_methods": 6, + "fresh_modes": [ + "normal", + "optimized with inherited PYTHONOPTIMIZE=1" + ], + "reused_prior_lifecycle_methods": 14, + "reused_unchanged_wrapper_methods": 31, + "reused_unchanged_real_lean_methods": 9, + "fresh_final_none_return_guard_mutants": 1, + "fresh_final_guard_executions": 2, + "reused_unchanged_shape_and_decorator_guard_mutants": 2, + "initial_type_only_guard_generation": { + "distinct": 3, + "executions": 6, + "scope": "earlier type-only source; return-profile branch superseded; unchanged shape/decorator guards reused" + }, + "historical_production_mutations_applicable": 25, + "evidence": "evidence/lazy-body/current-composed-receipt.json", + "review": "evidence/lazy-body/evidence/independent-lazy-body-review.json", + "historical_lifecycle_generation": { + "status": "PASS_SCOPED_COMPOSED_LIFECYCLE_REPAIR", + "generation": "lifecycle-v3", + "single_full_suite_claim": false, + "current_test_methods": 54, + "fresh_affected_harness_methods": 14, + "reused_unchanged_wrapper_methods": 31, + "reused_unchanged_real_lean_methods": 9, + "fresh_distinct_grader_safeguard_mutants": 10, + "safeguard_mutant_executions_across_source_generations": 13, + "historical_production_mutations_applicable": 25, + "evidence": "evidence/lifecycle/evidence/kernel-delivery.json", + "review": "evidence/lifecycle/evidence/independent-lifecycle-review.json", + "historical_resource_generation": { + "status": "PASS_RESOURCE_BOUNDARY_G0", + "generation": "resource-boundary-v2", + "fresh_distinct_tests": 32, + "new_resource_tests": 14, + "fresh_test_invocations": 33, + "single_full_suite_claim": false, + "test_evidence": [ + "evidence/g0-resource-wrapper-tests.json", + "evidence/g0-resource-additional-tests.json", + "evidence/g0-resource-preexec-test.json", + "evidence/g0-resource-applicable.json" + ], + "reused_unchanged_real_lean_tests": 9, + "mutations": { + "fresh_planned": 19, + "fresh_executed": 19, + "fresh_killed": 19, + "new_resource_cases": 9, + "original_wrapper_cases": 10, + "reused_unchanged_real_cases": 6, + "memory_oracle_refresh": "evidence/g0-resource-memory-mutant-refresh.json", + "evidence": "evidence/g0-resource-mutations.json", + "threshold": 1 + }, + "prior_generation": { + "production_wrapper_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "verification": { + "status": "PASS", + "applicable_tests": 27, + "test_evidence": [ + "evidence/g0-tests.json", + "evidence/g0-additional-tests.json", + "evidence/g0-applicable-tests.json" + ], + "mutations": { + "planned": 16, + "executed": 16, + "killed": 16, + "threshold": 1, + "evidence": "evidence/g0-mutations.json" + } + } + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: reuse completed applicable checks on unchanged material; provider/process review tracked separately." + }, + "limits_and_boundaries": [ + "RLIMIT_AS bounds virtual address space, not RSS; enclosing cgroup physical limit remains separate. Fixture cap8192MiB; no assertion every project module fits.", + "Only explicit nonempty module list; caller independently establishes full owned-module inventory and dependency evidence.", + "Installed sysroot import precedence; no symlinked search roots/artifact components/module files/parts.", + "G3 independently binds source to compiled output. G2 remains NOT_ASSESSED by replay.", + "Unsafe and partial exclusions are upstream behavior.", + "Resource bounds reject bool, huge/nonfinite timeouts and unrepresentable/inherited-hard-limit memory caps before spawn; see SPEC.md.", + "Explicit Popen lifecycle normalizes spawn/wait resource exceptions. Kill/reap wait is bounded to one second; unreaped PID is reported ERROR and stops later modules. OS-uninterruptible processes cannot be promised forced termination.", + "Mutation grading supports only ordinary synchronous Python function/bound-method bodies that return None. Every wraps-linked shape must be non-generator/non-coroutine/non-async-generator; every non-None return is ERROR without evaluating or advancing it." + ], + "quarantined_test_data": [ + { + "path": "tests/fixtures/BadPublic.lean", + "boundary": "Intentional self-referential theorem inserted with fixture-local skipKernelTC; only negative tests, never closed code." + }, + { + "path": "tests/fixtures/BadPrivate.lean", + "boundary": "Same intentional malformed body with genuine private visibility; only negative tests." + }, + { + "path": "tests/fixtures/UnapprovedAxiom.lean", + "boundary": "Explicit unapproved false axiom; kernel pass is expected while independent fixture axiom policy rejects." + } + ], + "ledger_payload": { + "phase": 2, + "layer": "B", + "action": "Refuse suspended test-function shapes and every non-None body return; compose six new normal/optimized harness controls with applicable prior lifecycle, replay and source-mutant evidence.", + "rationale": "Upstream prefix expansion launches concurrent per-module tasks with no CLI jobs flag. The original OOM is historical; canonical947 records a later successful same-source complete Math core gate with two threads. This adapter supplies exact serial scheduling, input binding and finite adversarial controls independently.", + "reversibility": "New isolated contribution files only; no mathematical source, branch, Git, remote or canonical-surface mutation by this task.", + "evidence": [ + "evidence/g0-applicable-tests.json", + "evidence/g0-mutations.json", + "tool-report.json", + "RESOURCE_FIX.md", + "resource-fix-report.json", + "evidence/g0-resource-applicable.json", + "LIFECYCLE_FIX.md", + "evidence/lifecycle/evidence/kernel-delivery.json", + "evidence/lifecycle/evidence/independent-lifecycle-review.json", + "LAZY_BODY_FIX.md", + "evidence/lazy-body/current-composed-receipt.json", + "evidence/lazy-body/evidence/independent-lazy-body-review.json" + ] + }, + "publication": { + "source_root": "/workspace/cbz-0/delivery/lazy-body-lifecycle-fix/packages/kernel_replay/files", + "destination_root": "cbz/contributions/math514/kernel_replay", + "excluded": [ + "**/__pycache__/**", + "**/*.pyc", + "evidence/compiled-fixtures/**", + "evidence/tmp*/**", + "evidence/mutant-*/**", + "evidence/RuntimeDiagnostic.lean" + ], + "mapping_file": "PUBLICATION.json" + }, + "canonical_math_core_resolution": { + "observed_by_this_window_utc": "2026-10-29T18:50:42.767390+00:00", + "source_commit": "8151f592918a845bf19eb8eafaf8444540a32734", + "canonical_handoff_cut": "94747663830ca6645ea27c8820058168c08cf170", + "status_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/STATUS.md", + "receipt_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json", + "reported_resource_configuration": "LEAN_NUM_THREADS=2", + "component_scope": "Math core:116 owned constants,63 public theorem targets,26853 dependency closure; onlypropext/Classical.choice/Quot.sound; fullcomponentgate/adversecontrols recorded", + "project_proof_replayed_for_this_correction": false, + "adapter_production_code_or_tests_changed": false, + "adapter_27_tests_16_mutants_reused": true, + "federation_CBZ_claim": false, + "record_context": "Historical documentation-only correction at cd3a0021; adapter-unchanged/reused-27-16 fields describe that cut. The later resource-boundary source change has separate self_verification evidence above." + }, + "resource_repair_review": { + "finding": "https://github.com/d6g8k5htny-coder/main/pull/696#discussion_r4416529549", + "status": "PASS_SAME_PROVIDER_ENGINEERING_REVIEW", + "prior_published_head": "cd3a0021a16437567ceda8c9a0f0525677042de2", + "project_math_replayed": false, + "report": "resource-postfix-review.md", + "sha256": "660d37c8e5c3374d8fee867182042c12d2fc863f2a0f63198e4b01b0c8ced8b2", + "provider_distinct_scientific_review": "NOT_ASSESSED_BY_THIS_ENGINEERING_REVIEW" + }, + "lifecycle_repair": { + "description": "LIFECYCLE_FIX.md", + "source_sha256": { + "run_tests.py": "de089e08688ffb2c236cdc34ccc095eb421d5162dde6d8eff24af7fdc3c91baa", + "mutations.py": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "tests/test_mutation_harness.py": "9887371525049cbc9685fadfd02531b1171507ad3c2c8373947c37875b3783e6" + }, + "metadata_authentication_boundary": "Trusted source-bound runner; accounting schema does not authenticate adversarially fabricated consistent JSON.", + "original_summary_only_fixture_preserved": "evidence/lifecycle/baseline/", + "record_context": "Historical published lifecycle predecessor at 7b50d2b4c433a8f3b5442925e1ac9ff664880166; retain these source-bound hashes. Current runtime hashes are under lazy_body_profile." + }, + "lazy_body_profile": { + "description": "LAZY_BODY_FIX.md", + "published_parent": "7b50d2b4c433a8f3b5442925e1ac9ff664880166", + "source_sha256": { + "run_tests.py": "f0a67f6cb3a2e0232d1cb7ff61cd7e5c21ae4c414a8c74c3a3225712b3a74ba3", + "tests/test_mutation_harness.py": "05a4a2f4c803315f80a3fcb2bb16f0d5d6df19c874c118152c257544880de114" + }, + "unchanged_classifier_sha256": "a1a0b0e7d6c5809c1f3f291a10aa14edc04265ce73cf76494318f966ab69b9bd", + "supported_shapes": "ordinary synchronous Python functions and bound methods, including every advertised __wrapped__ link", + "required_return": "None by identity; falsey/non-None values also rejected", + "suspended_work_policy": "Never iterate or await a return; close only a native CORO_CREATED coroutine for disposal without body execution.", + "applicability": "evidence/lazy-body/evidence/original-method-shape-applicability.json", + "mathematics_or_original_mutants_replayed": false + } +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/SPEC.md b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/SPEC.md new file mode 100644 index 000000000..e42b704e9 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/pre-review-identity-metadata/SPEC.md @@ -0,0 +1,31 @@ +# Exact-module kernel replay specification + +This tool repairs resource scheduling for Lean 4.34.1's installed `LeanChecker.replayFromImports`. It does not replace the kernel or change mathematical source. Owner: CBZ tooling agent; registry payload is `REGISTRY.json` for the canonical writer. + +The Lean driver imports `LeanChecker`, initializes the search path with `findSysroot`, and calls the exported official unsafe IO routine exactly once. It never imports the target into its driver environment. The official routine reads exported/server/private parts, builds an environment containing only the target's imports, then replays the constants from the most private available part. This preserves upstream handling of inductives, constructors, recursors and proof bodies. Its intentional unsafe/partial-definition exclusion remains upstream behavior. + +The Python CLI accepts only declared arguments; no prefix expansion, default anonymous target, ignored dash flags, concurrency option or empty target set exists. `prepare` creates a manifest from explicit `--module NAME=SOURCE` selections. `run` validates exact expected coverage and all bindings, then starts and waits for one Lean process at a time. Each process has an explicit address-space limit and wall timeout. Any missing module, source/part mutation, nonzero exit, timeout, absent/mismatched completion marker, changed tool binding or coverage mismatch is non-green. A report records every requested module, observed return code, exact command, hashes, resource bounds, times and output. A failed run never claims G4 success. + +The manifest binds source bytes and compiled bytes independently; it does not prove that source produced those bytes. G3 build evidence must establish that relationship. The report binds only declared target artifacts and explicit extra context bindings; it does not claim to bind an undeclared full dependency closure. The manifest's explicit expected list must come from the caller's independently complete owned-module inventory; preparing a subset cannot establish full-project coverage. + +Trust/path invariant: installed sysroot library precedence pins the driver's checker import. Artifact search roots, selected module filenames and all sibling part paths must be canonical and contain no symlinks. This conservative restriction prevents binding canonical destination siblings while the official routine reads lexical search-path siblings. Limits bound virtual address space, not RSS; an 8192 MiB cap is used for actual fixtures, and no claim is made that every project module fits. + +Kernel validity permits axioms. A successful replay is not G2 approved-axiom certification and is not full CBZ. G2 remains an independent blocking gate. Fixtures include a quarantined unapproved axiom and an intentionally corrupted theorem body solely as negative tool tests. + +G0 acceptance: strict CLI, exact target, sequential processes, no empty/missing/duplicate coverage, fatal child failure, limits/timeouts, source/part/tool binding changes, public/private/inductive fixture with three real olean parts, malformed public and private proof bodies rejected, unapproved axiom replay accepted while an independent fixture axiom check rejects it. Mutation testing must kill relevant wrapper/driver defects and report actual counts. No heavy project replay is required to self-test this tool. + +Resource-boundary generation (P2 repair): memory is an exact integer in `[64, min(sys.maxsize, finite inherited RLIMIT_AS hard limit) // 1048576]` MiB. The unlimited hard-limit sentinel contributes no cap. Timeout is an exact int/float type in `(0, min(floor(threading.TIMEOUT_MAX), 2147483)]` seconds; 2147483 is the signed 32-bit poll-millisecond range rounded down. Bool, NaN/infinity and oversized values are rejected before process creation and before converting a huge int to float. Both ceilings and the one-second cleanup wait budget appear in the report. + +The wrapper owns Popen explicitly and never invokes its implicit unbounded context-manager cleanup. Spawn/wait resource exceptions (`OSError`, `SubprocessError`, `OverflowError`, `ValueError`) are structured errors. Timeout/error cleanup signals the process group, falls back to child signaling on a group error, and uses a one-second reap wait plus nonblocking poll. Cleanup failure leaves a non-green ERROR with the PID and diagnostics, and stops subsequent modules. A finite wait cannot force an OS-uninterruptible child to exit. Only an ordinary completed wait can promote a result to PASS/FAIL; neither timeout nor ERROR can become PASS from exit-zero/marker observations during cleanup. Existing coverage, binding, private-part, replay, and G2 semantics remain unchanged. + + +## Mutation grader lifecycle contract + +See LIFECYCLE_FIX.md. Kills require a pristine externally bound exact selected parent-method population and one authorized body entry/exit per method, direct escaping AssertionError identity or matched body-subtest assertion events, and exact integer count/event consistency. Lifecycle errors/assertions, false or incomplete identities, foreign subtest parents, missing metadata, skips/expected failures and synthetic summaries are ERROR. Fully fabricated consistent JSON remains outside the trusted runner/source-custody boundary. Historical source-bound body-trace evidence is retained separately from new receipts. + + +## Synchronous None-return test-body profile + +Mutation grading supports ordinary synchronous unittest methods that return None. Generator, coroutine, async-generator and wraps-linked suspended method shapes are refused during pristine population discovery. Every non-None body return is ERROR, including falsey values and opaque iterables. Returned work is not consumed or awaited; only a fresh native coroutine may be closed without entering its body. Creating a suspended call object is not evidence that its deferred test body executed. + +All 54 predecessor methods are ordinary synchronous methods with no direct valued return or suspension; the static source-applicability report is in evidence/lazy-body/evidence/original-method-shape-applicability.json. Existing lifecycle/error/subtest and externally bound population obligations remain in force. No additional runtime module, dependency or receipt schema is introduced. diff --git a/cbz/contributions/math514/kernel_replay/evidence/real-BadPrivate.json b/cbz/contributions/math514/kernel_replay/evidence/real-BadPrivate.json new file mode 100644 index 000000000..ee16597f0 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/real-BadPrivate.json @@ -0,0 +1,124 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:51:50.822704+00:00", + "ok": false, + "results": [ + { + "module": "BadPrivate", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:51:50.825886+00:00", + "status": "FAIL", + "ok": false, + "returncode": 1, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ], + "pid": 9633, + "stdout": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean:33:0: error: while replaying declaration '_private.BadPrivate.0.malformedPrivate':\n(kernel) unknown constant '_private.BadPrivate.0.malformedPrivate'\n", + "stdout_bytes": 204, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-10-29T17:51:51.947126+00:00", + "elapsed_seconds": 1.121253784000146 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "BadPrivate" + ], + "modules": [ + { + "name": "BadPrivate", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean", + "sha256": "4852f84146cb5a48707afd347a25b72a515bf8b49d3fcb41de8737207fa07c4a" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.server", + "sha256": "1fdecaa00df8d775a546be77006e144d7400bf57e79f00264fa698f9a8ed18d8" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPrivate.olean.private", + "sha256": "3bff38ad49d726bb62879d3ed4e7a1ad155dd1bfb35dd48f5a210243caf9db2a" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:51:51.949454+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/real-BadPublic.json b/cbz/contributions/math514/kernel_replay/evidence/real-BadPublic.json new file mode 100644 index 000000000..2f054fb41 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/real-BadPublic.json @@ -0,0 +1,124 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:51:51.951716+00:00", + "ok": false, + "results": [ + { + "module": "BadPublic", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:51:51.954962+00:00", + "status": "FAIL", + "ok": false, + "returncode": 1, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPublic.olean", + "sha256": "964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server", + "sha256": "f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private", + "sha256": "79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce" + } + ], + "pid": 9639, + "stdout": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean:33:0: error: while replaying declaration 'malformedPublic':\n(kernel) unknown constant 'malformedPublic'\n", + "stdout_bytes": 158, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-10-29T17:51:53.026772+00:00", + "elapsed_seconds": 1.0718270409997785 + } + ], + "completed_count": 0, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "BadPublic" + ], + "modules": [ + { + "name": "BadPublic", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPublic.olean", + "sha256": "964baf2b19c4c8f766910851d8f8aa615f26fa4c04929c3b11cd7b0e4304d3cf" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.server", + "sha256": "f269ad0781ece6de0f8a24bdd1f4bbd84f971026ba273fedadd454e9bef07539" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/BadPublic.olean.private", + "sha256": "79545f034e10fc850477f2feaf564e62f8f396fca76e98244ebdeb4d7d74cfce" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:51:53.029069+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/real-Good.json b/cbz/contributions/math514/kernel_replay/evidence/real-Good.json new file mode 100644 index 000000000..84453cb2e --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/real-Good.json @@ -0,0 +1,124 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:51:54.388502+00:00", + "ok": true, + "results": [ + { + "module": "Good", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:51:54.396152+00:00", + "status": "PASS", + "ok": true, + "returncode": 0, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ], + "pid": 9663, + "stdout": "CBZ_KERNEL_REPLAY_OK Good\n", + "stdout_bytes": 26, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-10-29T17:51:55.113367+00:00", + "elapsed_seconds": 0.7172288179999669 + } + ], + "completed_count": 1, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "Good" + ], + "modules": [ + { + "name": "Good", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean", + "sha256": "71850802d7719967a07397afd42a3dce1eb3fc5f6ef915556c1e6c3ce6cca27c" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.server", + "sha256": "64aad674a938d54c40e51c647380eb937e6e22075b72c32162a584f7871ba07b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/Good.olean.private", + "sha256": "92c9f15ad23e16f22580d6c41581cf0df79d84c9177e88388dac55d83323d698" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:51:55.115640+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/real-UnapprovedAxiom.json b/cbz/contributions/math514/kernel_replay/evidence/real-UnapprovedAxiom.json new file mode 100644 index 000000000..2bb187d66 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/real-UnapprovedAxiom.json @@ -0,0 +1,124 @@ +{ + "schema": "cbz-kernel-replay/v1", + "gate": "G4-scoped-adapter", + "started": "2026-10-29T17:51:53.031642+00:00", + "ok": true, + "results": [ + { + "module": "UnapprovedAxiom", + "command": [ + "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "-j1", + "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean" + ], + "started": "2026-10-29T17:51:53.034844+00:00", + "status": "PASS", + "ok": true, + "returncode": 0, + "memory_mib": 8192, + "timeout_seconds": 60, + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ], + "pid": 9645, + "stdout": "CBZ_KERNEL_REPLAY_OK UnapprovedAxiom\n", + "stdout_bytes": 37, + "stderr": "", + "stderr_bytes": 0, + "ended": "2026-10-29T17:51:53.757354+00:00", + "elapsed_seconds": 0.7225236639997092 + } + ], + "completed_count": 1, + "expected_count": 1, + "manifest": { + "schema": "cbz-kernel-replay/v1", + "lean": { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean", + "sha256": "e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550" + }, + "sysroot": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1", + "lean_path": [ + "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures" + ], + "expected_modules": [ + "UnapprovedAxiom" + ], + "modules": [ + { + "name": "UnapprovedAxiom", + "source": { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + }, + "parts": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean", + "sha256": "cf6f7c946ba00133f89ddad1ae6638b1eee298406ef3e98ab94c9148b47f5498" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.server", + "sha256": "7377e93c142feadf6d87719868c4adc2df6e7e759e8bf617b51970680444afff" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/compiled-fixtures/UnapprovedAxiom.olean.private", + "sha256": "04cafad3cdea7af357c1440cf4967b20df05b5bdbb12dc6a87c4ffeab111ad0f" + } + ] + } + ], + "context": [], + "tool": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean", + "sha256": "2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean", + "sha256": "c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean", + "sha256": "d6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean", + "sha256": "66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server", + "sha256": "46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010" + }, + { + "path": "/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private", + "sha256": "fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1" + } + ] + }, + "g2_status": "NOT_ASSESSED", + "full_cbz": false, + "ended": "2026-10-29T17:51:53.759705+00:00" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/kernel_replay.py b/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/kernel_replay.py new file mode 100644 index 000000000..c608658fb --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/kernel_replay.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python3 +"""Bounded, serial, exact-module adapter to the installed LeanChecker routine.""" +import argparse +from datetime import datetime, timezone +import hashlib +import json +import math +import os +from pathlib import Path +import re +import resource +import signal +import subprocess +import sys +import time + +ROOT = Path(__file__).resolve().parent +SCHEMA = 'cbz-kernel-replay/v1' +MODULE = re.compile(r"[A-Za-z_][A-Za-z0-9_']*(?:\.[A-Za-z_][A-Za-z0-9_']*)*\Z") + + +def now(): + return datetime.now(timezone.utc).isoformat() + + +def sha256(path): + h = hashlib.sha256() + with Path(path).open('rb') as f: + for chunk in iter(lambda: f.read(1024 * 1024), b''): + h.update(chunk) + return h.hexdigest() + + +def binding(path): + p = Path(path).resolve(strict=True) + if not p.is_file(): + raise ValueError(f'not a regular file: {p}') + return {'path': str(p), 'sha256': sha256(p)} + + +def reject_artifact_symlinks(path): + p = Path(path) + # Do not canonicalize one filename and then inventory destination siblings: + # upstream finds .server/.private siblings of the lexical selected filename. + # Conservatively reject symlinks in every artifact/search-root component. + try: + canonical = p.resolve() + except RuntimeError as e: + raise ValueError(f'symlink loop: {p}') from e + if not p.is_absolute() or p.is_symlink() or canonical != p: + raise ValueError(f'symlink or noncanonical artifact/search path forbidden: {p}') + + +def exact_keys(obj, keys, what): + if not isinstance(obj, dict) or set(obj) != set(keys): + raise ValueError(f'{what}: required exact fields {sorted(keys)}') + + +def check_binding(b): + exact_keys(b, {'path', 'sha256'}, 'binding') + p = Path(b['path']) + if not p.is_absolute() or not re.fullmatch('[0-9a-f]{64}', b['sha256']): + raise ValueError('binding requires absolute path and SHA-256') + if binding(p) != b: + raise ValueError(f'binding changed: {p}') + + +def tool_bindings(sysroot): + upstream = Path(sysroot) / 'src/lean' + library = Path(sysroot) / 'lib/lean' + paths = [ROOT / 'kernel_replay.py', ROOT / 'ExactReplay.lean', + upstream / 'LeanChecker.lean', upstream / 'Lean/Replay.lean', + library / 'LeanChecker.olean', library / 'Lean/Replay.olean'] + # Bind any available data parts of both imported checker implementations. + for stem in (library / 'LeanChecker.olean', library / 'Lean/Replay.olean'): + paths.extend(p for p in (Path(str(stem) + '.server'), Path(str(stem) + '.private')) + if p.exists()) + return [binding(p) for p in paths] + + +def resolve_olean(name, lean_path, sysroot): + if not isinstance(name, str) or not MODULE.fullmatch(name): + raise ValueError(f'invalid exact module: {name!r}') + package = name.split('.')[0] + # Mirrors SearchPath.findWithExt: package shadowing is significant, even + # when a matching later path contains the requested submodule. + for raw in [str(Path(sysroot) / 'lib/lean'), *lean_path]: + root = Path(raw) + if (root / package).is_dir() or (root / (package + '.olean')).exists(): + p = root.joinpath(*name.split('.')).with_suffix('.olean') + reject_artifact_symlinks(p) + if not p.is_file(): + raise FileNotFoundError(f'exact module missing: {p}') + return p.resolve() + raise FileNotFoundError(f'exact module not found: {name}') + + +def parts_of(olean): + parts = [Path(olean)] + server, private = Path(str(olean) + '.server'), Path(str(olean) + '.private') + for p in (Path(olean), server, private): + reject_artifact_symlinks(p) + if server.exists(): + parts.append(server) + if private.exists(): + parts.append(private) + elif private.exists(): + raise ValueError(f'orphan private part: {private}') + return [binding(p) for p in parts] + + +def prepare_manifest(lean, lean_path, selections, context): + lean = str(Path(lean).resolve(strict=True)) + sysroot = str(Path(lean).parent.parent) + if not selections: + raise ValueError('empty expected module coverage forbidden') + paths = [] + for raw in lean_path: + p = Path(raw).absolute() + reject_artifact_symlinks(p) + paths.append(str(p.resolve(strict=True))) + if any(not Path(p).is_dir() for p in paths): + raise ValueError('lean_path entries must be directories') + names, modules = [], [] + for selection in selections: + if '=' not in selection: + raise ValueError('module selection must be NAME=SOURCE') + name, source = selection.split('=', 1) + if name in names: + raise ValueError(f'duplicate module: {name}') + olean = resolve_olean(name, paths, sysroot) + names.append(name) + modules.append({'name': name, 'source': binding(source), 'parts': parts_of(olean)}) + return {'schema': SCHEMA, 'lean': binding(lean), 'sysroot': sysroot, + 'lean_path': paths, 'expected_modules': names, 'modules': modules, + 'context': [binding(p) for p in context], 'tool': tool_bindings(sysroot)} + + +def validate_manifest(m): + exact_keys(m, {'schema', 'lean', 'sysroot', 'lean_path', 'expected_modules', + 'modules', 'context', 'tool'}, 'manifest') + if m['schema'] != SCHEMA: + raise ValueError('unsupported schema') + names = m['expected_modules'] + if not isinstance(names, list) or not names or any(not isinstance(n, str) for n in names): + raise ValueError('empty or invalid expected coverage') + if len(set(names)) != len(names): + raise ValueError('duplicate expected coverage') + if (not isinstance(m['modules'], list) or any(not isinstance(x, dict) for x in m['modules']) + or [x.get('name') for x in m['modules']] != names): + raise ValueError('expected module coverage mismatch') + check_binding(m['lean']) + if not Path(m['sysroot']).is_absolute(): + raise ValueError('sysroot must be absolute') + reject_artifact_symlinks(Path(m['sysroot'])) + if not isinstance(m['lean_path'], list) or any( + not Path(p).is_absolute() or not Path(p).is_dir() for p in m['lean_path']): + raise ValueError('invalid lean_path') + for p in m['lean_path']: + reject_artifact_symlinks(Path(p)) + for entry in m['modules']: + exact_keys(entry, {'name', 'source', 'parts'}, 'module') + olean = resolve_olean(entry['name'], m['lean_path'], m['sysroot']) + check_binding(entry['source']) + if parts_of(olean) != entry['parts']: + raise ValueError(f'compiled parts changed: {entry["name"]}') + if m['tool'] != tool_bindings(m['sysroot']): + raise ValueError('tool binding changed') + if not isinstance(m['context'], list): + raise ValueError('context must be a binding list') + for b in m['context']: + check_binding(b) + + +def limits(memory_mib): + def apply(): + cap = memory_mib * 1024 * 1024 + resource.setrlimit(resource.RLIMIT_AS, (cap, cap)) + resource.setrlimit(resource.RLIMIT_CORE, (0, 0)) + return apply + + +def run_one(m, entry, memory_mib, timeout_seconds): + env = os.environ.copy() + # Pin the imported checker and Lean/Lake support to the installed sysroot. + # User artifacts cannot replace the trusted checker through LEAN_PATH. + env['LEAN_PATH'] = os.pathsep.join([str(Path(m['sysroot']) / 'lib/lean'), *m['lean_path']]) + env['LEAN_SYSROOT'] = m['sysroot'] + env['CBZ_KERNEL_REPLAY_MODULE'] = entry['name'] + env['CBZ_KERNEL_REPLAY_OLEAN'] = entry['parts'][0]['path'] + cmd = [m['lean']['path'], '-j1', str(ROOT / 'ExactReplay.lean')] + result = {'module': entry['name'], 'command': cmd, 'started': now(), + 'status': 'ERROR', 'ok': False, 'returncode': None, + 'memory_mib': memory_mib, 'timeout_seconds': timeout_seconds, + 'source': entry['source'], 'parts': entry['parts']} + started = time.monotonic() + # File-backed output prevents a noisy or corrupted module exhausting the + # orchestrator's memory. Only a bounded tail is included in JSON evidence. + import tempfile + with tempfile.TemporaryFile() as stdout, tempfile.TemporaryFile() as stderr: + try: + with subprocess.Popen(cmd, cwd=ROOT, env=env, stdout=stdout, stderr=stderr, + start_new_session=True, preexec_fn=limits(memory_mib)) as p: + result['pid'] = p.pid + try: + result['returncode'] = p.wait(timeout=timeout_seconds) + except subprocess.TimeoutExpired: + os.killpg(p.pid, signal.SIGKILL) + result['returncode'] = p.wait() + result['status'] = 'TIMEOUT' + except OSError as e: + result['error'] = str(e) + for key, stream in (('stdout', stdout), ('stderr', stderr)): + stream.seek(0, os.SEEK_END) + size = stream.tell() + stream.seek(max(0, size - 131072)) + result[key] = stream.read().decode('utf-8', errors='replace') + result[key + '_bytes'] = size + marker = 'CBZ_KERNEL_REPLAY_OK ' + entry['name'] + if result['status'] != 'TIMEOUT': + result['ok'] = result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1 + result['status'] = 'PASS' if result['ok'] else 'FAIL' + result['ended'] = now() + result['elapsed_seconds'] = time.monotonic() - started + return result + + +def run_manifest(m, memory_mib, timeout_seconds): + report = {'schema': SCHEMA, 'gate': 'G4-scoped-adapter', 'started': now(), 'ok': False, + 'results': [], 'completed_count': 0, 'expected_count': 0, 'manifest': m, + 'g2_status': 'NOT_ASSESSED', 'full_cbz': False} + try: + if not isinstance(memory_mib, int) or memory_mib < 64: + raise ValueError('memory_mib must be an integer >= 64') + if not isinstance(timeout_seconds, (int, float)) or not math.isfinite(timeout_seconds) or timeout_seconds <= 0: + raise ValueError('timeout_seconds must be finite and positive') + validate_manifest(m) + report['expected_count'] = len(m['expected_modules']) + for entry in m['modules']: + validate_manifest(m) + report['results'].append(run_one(m, entry, memory_mib, timeout_seconds)) + validate_manifest(m) + report['completed_count'] = sum(x['ok'] for x in report['results']) + report['ok'] = (report['completed_count'] == report['expected_count'] + and len(report['results']) == report['expected_count'] + and [r['module'] for r in report['results']] == m['expected_modules']) + except (ValueError, TypeError, KeyError, OSError) as e: + report['error'] = f'{type(e).__name__}: {e}' + report['ended'] = now() + return report + + +def emit(value, output): + data = json.dumps(value, indent=2, sort_keys=True) + '\n' + if output: + Path(output).write_text(data) + else: + print(data, end='') + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__, add_help=False, allow_abbrev=False) + subs = parser.add_subparsers(dest='action', required=True) + subs.add_parser('help', add_help=False, allow_abbrev=False) + prepare = subs.add_parser('prepare', add_help=False, allow_abbrev=False) + one = subs.add_parser('one', add_help=False, allow_abbrev=False) + for p in (prepare, one): + p.add_argument('--lean', required=True) + p.add_argument('--lean-path', action='append', default=[]) + p.add_argument('--context', action='append', default=[]) + p.add_argument('--output') + prepare.add_argument('--module', action='append', required=True) + one.add_argument('module') + one.add_argument('--source', required=True) + run = subs.add_parser('run', add_help=False, allow_abbrev=False) + run.add_argument('manifest') + run.add_argument('--output') + for p in (run, one): + p.add_argument('--memory-mib', type=int, required=True) + p.add_argument('--timeout-seconds', type=float, required=True) + args = parser.parse_args(argv) + if args.action == 'help': + print(parser.format_help()) + print('prepare --lean ABS --lean-path DIR --module NAME=SOURCE --output MANIFEST') + print('run MANIFEST --memory-mib MIB --timeout-seconds SECONDS --output REPORT') + print('one NAME --lean ABS --lean-path DIR --source SOURCE --memory-mib MIB --timeout-seconds SECONDS') + return 0 + try: + if args.action == 'run': + m = json.loads(Path(args.manifest).read_text()) + else: + selections = args.module if args.action == 'prepare' else [args.module + '=' + args.source] + m = prepare_manifest(args.lean, args.lean_path, selections, args.context) + if args.action == 'prepare': + emit(m, args.output) + return 0 + report = run_manifest(m, args.memory_mib, args.timeout_seconds) + emit(report, args.output) + return 0 if report['ok'] else 1 + except (ValueError, TypeError, KeyError, OSError) as e: + print(f'kernel replay ERROR: {e}', file=sys.stderr) + return 2 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/mutations.py b/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/mutations.py new file mode 100644 index 000000000..289bd50e6 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/mutations.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python3 +"""Isolated mutation checks. Errors/skips/empty tests are never mutant kills.""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile + +ROOT = Path(__file__).resolve().parent + + +def classify(value, code): + if (code not in (0, 1) or not value.get('tests_run') or value.get('errors') + or value.get('skipped') or value.get('expected_failures') + or value.get('unexpected_successes')): + return 'ERROR' + if code == 1 and value.get('assertion_failures', 0) > 0 and not value.get('successful'): + return 'KILLED' + if code == 0 and value.get('successful') and value.get('assertion_failures') == 0: + return 'SURVIVED' + return 'ERROR' + + +def digest(data): + return hashlib.sha256(data).hexdigest() + + +def definitions(): + wrapper = 'test_kernel_replay.WrapperTests' + real = 'test_real_lean.RealLeanTests.' + items = [ + ('empty-coverage', 'kernel_replay.py', 'if not selections:', 'if False:', wrapper), + ('allow-artifact-symlink', 'kernel_replay.py', + " if not p.is_absolute() or p.is_symlink() or canonical != p:", + ' if False:', 'test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink'), + ('ignore-source-binding', 'kernel_replay.py', " check_binding(entry['source'])", ' pass', wrapper), + ('ignore-compiled-parts-binding', 'kernel_replay.py', "if parts_of(olean) != entry['parts']:", 'if False:', wrapper), + ('ignore-tool-binding', 'kernel_replay.py', "if m['tool'] != tool_bindings(m['sysroot']):", 'if False:', wrapper), + ('ignore-nonzero-exit', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['stdout'].splitlines().count(marker) == 1", wrapper), + ('ignore-completion-marker', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['returncode'] == 0", wrapper), + ('ignore-timeout', 'kernel_replay.py', 'p.wait(timeout=timeout_seconds)', 'p.wait(timeout=None)', wrapper), + ('ignore-memory-limit', 'kernel_replay.py', 'preexec_fn=limits(memory_mib)', 'preexec_fn=None', wrapper), + ('truncate-module-coverage', 'kernel_replay.py', "for entry in m['modules']:\n validate_manifest(m)", "for entry in m['modules'][:1]:\n validate_manifest(m)", wrapper), + ('concurrent-module-processes', 'kernel_replay.py', + " for entry in m['modules']:\n validate_manifest(m)\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))", + " from concurrent.futures import ThreadPoolExecutor\n with ThreadPoolExecutor(max_workers=2) as pool:\n report['results'] = list(pool.map(lambda entry: run_one(m, entry, memory_mib, timeout_seconds), m['modules']))", + wrapper + '.test_one_child_at_a_time_and_exact_coverage'), + ('skip-kernel-replay', 'ExactReplay.lean', ' replayFromImports target', ' pure ()', real + 'test_public_self_reference_rejected'), + ('prefix-expansion', 'ExactReplay.lean', ' replayFromImports target', + ' let sp ← searchPathRef.get\n for path in (← SearchPath.findAllWithExt sp "olean") do\n if let some name ← searchModuleNameOfFileName path sp then\n if target.isPrefixOf name then replayFromImports name', + real + 'test_exact_module_no_prefix_glob'), + ('untrusted-checker-search-path', 'kernel_replay.py', + "env['LEAN_PATH'] = os.pathsep.join([str(Path(m['sysroot']) / 'lib/lean'), *m['lean_path']])", + "env['LEAN_PATH'] = os.pathsep.join(m['lean_path'])", real + 'test_user_lean_path_cannot_shadow_checker'), + ] + return items + + +def derived_driver_mutations(lean): + upstream = (Path(lean).resolve().parent.parent / 'src/lean/LeanChecker.lean').read_text() + start = upstream.index('unsafe def replayFromImports ') + end = upstream.index('unsafe def replayFromFresh ', start) + routine = upstream[start:end] + # These intentionally unsound adapters exist only inside isolated mutants. + # The copied fragment retains the upstream Apache-2.0 provenance in the + # driver's file header; production calls the installed implementation. + exported = routine.replace('replayFromImports', 'cbzExportedOnly', 1) + a, b = exported.index(' let mut fnames'), exported.index(' let parts') + exported = exported[:a] + ' let fnames := #[mFile]\n' + exported[b:] + preload = routine.replace('replayFromImports', 'cbzPreloaded', 1) + preload = preload.replace('importModulesCore mod.imports', 'importModulesCore #[{ module }]') + preload = preload.replace('finalizeImport s mod.imports', 'finalizeImport s #[{ module }]') + original = (ROOT / 'ExactReplay.lean').read_text() + return [ + ('exported-part-only', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + exported).replace(' replayFromImports target', ' cbzExportedOnly target'), + 'test_real_lean.RealLeanTests.test_private_self_reference_rejected'), + ('preload-target-self-reference', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + preload).replace(' replayFromImports target', ' cbzPreloaded target'), + 'test_real_lean.RealLeanTests.test_public_self_reference_rejected'), + ] + + +def run_mutations(output, only=None): + lean = os.environ.get('CBZ_TEST_LEAN', '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean') + plan = definitions() + derived_driver_mutations(lean) + if only: + if only not in [x[0] for x in plan]: + raise ValueError('unknown mutation: ' + only) + plan = [x for x in plan if x[0] == only] + evidence = ROOT / 'evidence/mutations' + evidence.mkdir(parents=True, exist_ok=True) + results = [] + for name, filename, old, new, test in plan: + with tempfile.TemporaryDirectory(dir=ROOT / 'evidence', prefix='mutant-') as d: + work = Path(d) / 'kernel_replay' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + (work / 'evidence').mkdir() + file = work / filename + original = file.read_text() + if original.count(old) != 1: + raise ValueError(f'mutation {name} did not identify exactly one source occurrence') + changed = original.replace(old, new, 1) + file.write_text(changed) + result_path = work / 'evidence/tests.json' + command = [sys.executable, str(work / 'run_tests.py'), '--output', str(result_path), '--test', test] + try: + p = subprocess.run(command, capture_output=True, text=True, timeout=90) + value = json.loads(result_path.read_text()) if result_path.exists() else {} + record = {'name': name, 'file': filename, 'test': test, + 'outcome': classify(value, p.returncode), 'returncode': p.returncode, + 'original_sha256': digest(original.encode()), + 'mutated_sha256': digest(changed.encode()), 'tests': value, + 'stdout': p.stdout, 'stderr': p.stderr} + except subprocess.TimeoutExpired as e: + record = {'name': name, 'outcome': 'ERROR', 'error': 'mutation test timed out'} + (evidence / (name + '.json')).write_text(json.dumps(record, indent=2) + '\n') + results.append(record) + print(name + ': ' + record['outcome'], flush=True) + result = {'threshold': 1.0, 'planned': len(plan), 'executed': len(results), + 'killed': sum(x['outcome'] == 'KILLED' for x in results), + 'ok': bool(results) and len(results) == len(plan) and all(x['outcome'] == 'KILLED' for x in results), + 'results': results} + Path(output).write_text(json.dumps(result, indent=2) + '\n') + return result + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--only') + args = parser.parse_args() + try: + return 0 if run_mutations(args.output, args.only)['ok'] else 1 + except (ValueError, OSError) as e: + print('mutation harness ERROR: ' + str(e), file=sys.stderr) + return 2 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/test_kernel_replay.py b/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/test_kernel_replay.py new file mode 100644 index 000000000..98698085b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-baseline/test_kernel_replay.py @@ -0,0 +1,166 @@ +"""Acceptance tests for the bounded exact-module adapter. + +Changes that suppress manifest validation, failure propagation, time limits, +sequential waiting, or binding checks must make these tests fail. +""" +import importlib.util +import json +import os +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest + +ROOT = Path(__file__).resolve().parents[1] +LEAN = Path(os.environ.get('CBZ_TEST_LEAN', '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean')) + + +class WrapperTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + spec = importlib.util.spec_from_file_location('kernel_replay', ROOT / 'kernel_replay.py') + cls.kr = importlib.util.module_from_spec(spec) + spec.loader.exec_module(cls.kr) + + def setUp(self): + self.tmp = tempfile.TemporaryDirectory(dir=ROOT / 'evidence') + self.addCleanup(self.tmp.cleanup) + self.base = Path(self.tmp.name) + self.source = self.base / 'Toy.lean' + self.source.write_text('theorem toy : True := True.intro\n') + (self.base / 'Toy.olean').write_bytes(b'opaque bytes for wrapper test') + + def manifest(self, names=('Toy',)): + for name in names: + (self.base / (name + '.lean')).write_text('theorem toy : True := True.intro\n') + (self.base / (name + '.olean')).write_bytes(b'opaque bytes for wrapper test') + return self.kr.prepare_manifest(str(LEAN), [str(self.base)], + [f'{n}={self.base / (n + ".lean")}' for n in names], []) + + def fake(self, code): + path = self.base / 'fake-lean' + path.write_text('#!/usr/bin/env python3\n' + code) + path.chmod(0o700) + return path + + def run_fake(self, code, names=('Toy',), timeout=4): + manifest = self.manifest(names) + fake = self.fake(code) + # Tests replace only executable binding, retaining the real sysroot: + manifest['lean']['path'] = str(fake) + manifest['lean']['sha256'] = self.kr.sha256(fake) + return self.kr.run_manifest(manifest, 256, timeout) + + def test_empty_coverage_rejected(self): + with self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(self.base)], [], []) + + def test_duplicate_modules_rejected(self): + with self.assertRaises(ValueError): + self.manifest(('Toy', 'Toy')) + + def test_missing_module_rejected(self): + with self.assertRaises((ValueError, FileNotFoundError)): + self.kr.prepare_manifest(str(LEAN), [str(self.base)], [f'Missing={self.source}'], []) + + def test_individual_olean_symlink_rejected(self): + linked = self.base / 'linked' + linked.mkdir() + (linked / 'Toy.olean').symlink_to(self.base / 'Toy.olean') + # Upstream selects lexical siblings. Canonicalizing a file symlink + # could bind destination private parts while replaying other parts. + with self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(linked)], [f'Toy={self.source}'], []) + + def test_search_root_and_part_symlinks_rejected(self): + linked = self.base / 'linked-root' + linked.symlink_to(self.base, target_is_directory=True) + with self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(linked)], [f'Toy={self.source}'], []) + part = self.base / 'Toy.olean.server' + part.symlink_to(self.base / 'Toy.olean') + with self.assertRaises(ValueError): + self.manifest() + + def test_expected_coverage_mismatch_rejected(self): + m = self.manifest() + m['expected_modules'].append('Missing') + self.assertFalse(self.kr.run_manifest(m, 256, 4)['ok']) + + def test_source_change_rejected(self): + m = self.manifest() + self.source.write_text('changed') + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('binding changed', r.get('error', '')) + + def test_part_change_rejected(self): + m = self.manifest() + (self.base / 'Toy.olean').write_bytes(b'changed') + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('compiled parts changed', r.get('error', '')) + + def test_new_private_part_rejected(self): + m = self.manifest() + (self.base / 'Toy.olean.server').write_bytes(b'added') + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('compiled parts changed', r.get('error', '')) + + def test_tool_binding_change_rejected(self): + m = self.manifest() + m['tool'][0]['sha256'] = '0' * 64 + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('tool binding changed', r.get('error', '')) + + def test_nonzero_exit_fatal_even_with_marker(self): + r = self.run_fake("import os\nprint('CBZ_KERNEL_REPLAY_OK ' + os.environ['CBZ_KERNEL_REPLAY_MODULE'])\nraise SystemExit(7)\n") + self.assertFalse(r['ok']) + self.assertEqual(r['results'][0]['returncode'], 7) + + def test_missing_or_wrong_marker_fatal(self): + for code in ("print('no replay')\n", "print('CBZ_KERNEL_REPLAY_OK Other')\n"): + with self.subTest(code=code): + self.assertFalse(self.run_fake(code)['ok']) + + def test_timeout_fatal(self): + r = self.run_fake('import time\ntime.sleep(5)\n', timeout=0.1) + self.assertFalse(r['ok']) + self.assertEqual(r['results'][0]['status'], 'TIMEOUT') + + def test_memory_limit_applied(self): + r = self.run_fake("import os, resource\nassert resource.getrlimit(resource.RLIMIT_AS)[0] == 256*1024*1024\nprint('CBZ_KERNEL_REPLAY_OK ' + os.environ['CBZ_KERNEL_REPLAY_MODULE'])\n") + self.assertTrue(r['ok'], r) + + def test_one_child_at_a_time_and_exact_coverage(self): + lock = self.base / 'active.lock' + code = ("import os, time\nfrom pathlib import Path\n" + + f"p = Path({str(lock)!r})\n" + + "fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\n" + + "time.sleep(0.05)\nos.close(fd)\np.unlink()\n" + + "print('CBZ_KERNEL_REPLAY_OK ' + os.environ['CBZ_KERNEL_REPLAY_MODULE'])\n") + r = self.run_fake(code, ('Toy', 'Other')) + self.assertTrue(r['ok'], r) + self.assertEqual([x['module'] for x in r['results']], ['Toy', 'Other']) + self.assertEqual(r['completed_count'], 2) + + def test_strict_cli(self): + for args in (['--unknown'], ['run', '--help', '--bogus'], ['one', 'Toy', 'Other']): + p = subprocess.run([sys.executable, str(ROOT / 'kernel_replay.py'), *args], + capture_output=True, text=True) + self.assertNotEqual(p.returncode, 0, p.stdout + p.stderr) + + def test_module_names_and_unknown_fields_rejected(self): + for name in ('', '-v', 'Toy.*', 'Toy..Other', 'Toy/Other'): + with self.subTest(name=name), self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(self.base)], [f'{name}={self.source}'], []) + m = self.manifest() + m['ignored_flag'] = True + self.assertFalse(self.kr.run_manifest(m, 256, 4)['ok']) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json new file mode 100644 index 000000000..cbfca6f5c --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/concurrent-module-processes.json @@ -0,0 +1,21 @@ +{ + "name": "concurrent-module-processes", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "d726f822ad28fd6e5eeb8e8488384d727301a09a1440e96959483736466fc48d", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:13.418366+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422372+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16604, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T19:22:13.457196+00:00', 'elapsed_seconds': 0.03482715499922051}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422799+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16603, 'stdout': 'CBZ_KERNEL_REPLAY_OK Other\\n', 'stdout_bytes': 27, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:13.538870+00:00', 'elapsed_seconds': 0.116069076999338}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', 'sha256': '48d1ba9ee3f82fa48adccf0ae77ec4bf0c07fa26844ba59584f9cdfccc7c6201'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/kernel_replay.py', 'sha256': 'd726f822ad28fd6e5eeb8e8488384d727301a09a1440e96959483736466fc48d'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:13.541349+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.131s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:13.418366+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422372+00:00', 'status': 'FAIL', 'ok': False, 'returncode': 1, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16604, 'stdout': '', 'stdout_bytes': 0, 'stderr': 'Traceback (most recent call last):\\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean\", line 5, in \\n fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\nFileExistsError: [Errno 17] File exists: \\'/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/active.lock\\'\\n', 'stderr_bytes': 440, 'ended': '2026-10-29T19:22:13.457196+00:00', 'elapsed_seconds': 0.03482715499922051}, {'module': 'Other', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:13.422799+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16603, 'stdout': 'CBZ_KERNEL_REPLAY_OK Other\\n', 'stdout_bytes': 27, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:13.538870+00:00', 'elapsed_seconds': 0.116069076999338}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/fake-lean', 'sha256': '48d1ba9ee3f82fa48adccf0ae77ec4bf0c07fa26844ba59584f9cdfccc7c6201'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/evidence/tmpv2o8lzfc/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/kernel_replay.py', 'sha256': 'd726f822ad28fd6e5eeb8e8488384d727301a09a1440e96959483736466fc48d'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_2_2uyex/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:13.541349+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.131s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/empty-coverage.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/empty-coverage.json new file mode 100644 index 000000000..4d0a298b0 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/empty-coverage.json @@ -0,0 +1,21 @@ +{ + "name": "empty-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "fab7d6f4688abfc56181700067c53e7152fa9b0fe1ca87e372867e47cd57ade5", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-8uany7kh/kernel_replay/tests/test_kernel_replay.py\", line 60, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 29 tests in 0.804s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... FAIL\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-8uany7kh/kernel_replay/tests/test_kernel_replay.py\", line 60, in test_empty_coverage_rejected\n with self.assertRaises(ValueError):\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: ValueError not raised\n\n----------------------------------------------------------------------\nRan 29 tests in 0.804s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json new file mode 100644 index 000000000..b79f84897 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-compiled-parts-binding.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-compiled-parts-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "4d0fb6586bb1a99743253c16d9f03a93267d89e0d839840788579cab6e3d656c", + "tests": { + "tests_run": 29, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 114, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 107, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.828s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... FAIL\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... FAIL\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 114, in test_new_private_part_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n======================================================================\nFAIL: test_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-_uocb0id/kernel_replay/tests/test_kernel_replay.py\", line 107, in test_part_change_rejected\n self.assertIn('compiled parts changed', r.get('error', ''))\nAssertionError: 'compiled parts changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.828s\n\nFAILED (failures=2)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json new file mode 100644 index 000000000..635be356b --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-completion-marker.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-completion-marker", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "562005c53e106abcf10f65548ae529e419de532508e44e78ad5c5403334f1797", + "tests": { + "tests_run": 29, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.810s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... \n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\") ... FAIL\n test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\") ... FAIL\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('no replay')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) (code=\"print('CBZ_KERNEL_REPLAY_OK Other')\\n\")\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-2agl0ziy/kernel_replay/tests/test_kernel_replay.py\", line 131, in test_missing_or_wrong_marker_fatal\n self.assertFalse(self.run_fake(code)['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.810s\n\nFAILED (failures=2)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json new file mode 100644 index 000000000..726c7a7bd --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-memory-limit.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-memory-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "40396c532f2e078a1065f797066b6381f6e0870cc1112f168346c996926acc5c", + "tests": { + "tests_run": 30, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_oversized_cli_arguments_emit_non_green_report (test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ypfpxmzo/kernel_replay/tests/test_kernel_replay.py\", line 141, in test_memory_limit_applied\n self.assertEqual(json.loads(r['results'][0]['stdout'].splitlines()[0]), [268435456, 268435456])\nAssertionError: Lists differ: [-1, -1] != [268435456, 268435456]\n\nFirst differing element 0:\n-1\n268435456\n\n- [-1, -1]\n+ [268435456, 268435456]\n\n----------------------------------------------------------------------\nRan 30 tests in 0.885s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... FAIL\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_oversized_cli_arguments_emit_non_green_report (test_kernel_replay.WrapperTests.test_resource_oversized_cli_arguments_emit_non_green_report) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ypfpxmzo/kernel_replay/tests/test_kernel_replay.py\", line 141, in test_memory_limit_applied\n self.assertEqual(json.loads(r['results'][0]['stdout'].splitlines()[0]), [268435456, 268435456])\nAssertionError: Lists differ: [-1, -1] != [268435456, 268435456]\n\nFirst differing element 0:\n-1\n268435456\n\n- [-1, -1]\n+ [268435456, 268435456]\n\n----------------------------------------------------------------------\nRan 30 tests in 0.885s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json new file mode 100644 index 000000000..c9b9f0954 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-nonzero-exit.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-nonzero-exit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "1587885f66c677c16db9006a59da836aee9830a01498b64d594d72f240a94e5d", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z48a7pck/kernel_replay/tests/test_kernel_replay.py\", line 125, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.798s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... FAIL\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z48a7pck/kernel_replay/tests/test_kernel_replay.py\", line 125, in test_nonzero_exit_fatal_even_with_marker\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 29 tests in 0.798s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-source-binding.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-source-binding.json new file mode 100644 index 000000000..a41de34ca --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-source-binding.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-source-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "46708ef633af87ba8b09e08d2872321c0cf92f56e89e3524d742be4c6acac863", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e90afnto/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.838s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... FAIL\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e90afnto/kernel_replay/tests/test_kernel_replay.py\", line 100, in test_source_change_rejected\n self.assertIn('binding changed', r.get('error', ''))\nAssertionError: 'binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.838s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-timeout.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-timeout.json new file mode 100644 index 000000000..3be38d255 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-timeout.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-timeout", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "73e1605365c724893d10def4a498e589c6d3660109d0ecddb7a17612f54305b5", + "tests": { + "tests_run": 29, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... FAIL\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 268, in test_resource_timeout_kills_and_reaps_real_child\n self.assertLess(time.monotonic() - started, 3)\nAssertionError: 30.030747823999263 not less than 3\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 246, in run_one\n result['returncode'] = p.wait(timeout=None)\n ^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 29 tests in 35.624s\n\nFAILED (failures=3)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... FAIL\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... FAIL\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 268, in test_resource_timeout_kills_and_reaps_real_child\n self.assertLess(time.monotonic() - started, 3)\nAssertionError: 30.030747823999263 not less than 3\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/kernel_replay.py\", line 246, in run_one\n result['returncode'] = p.wait(timeout=None)\n ^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n======================================================================\nFAIL: test_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-9wo0y1wg/kernel_replay/tests/test_kernel_replay.py\", line 136, in test_timeout_fatal\n self.assertEqual(r['results'][0]['status'], 'TIMEOUT')\nAssertionError: 'FAIL' != 'TIMEOUT'\n- FAIL\n+ TIMEOUT\n\n\n----------------------------------------------------------------------\nRan 29 tests in 35.624s\n\nFAILED (failures=3)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json new file mode 100644 index 000000000..b324de990 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/ignore-tool-binding.json @@ -0,0 +1,21 @@ +{ + "name": "ignore-tool-binding", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "61e1c6d88b89b278e2cf11050f690f07aff317f8ca0e171a7dd96c312f323c30", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e9ykv7r0/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.756s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... ok\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... FAIL\n\n======================================================================\nFAIL: test_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-e9ykv7r0/kernel_replay/tests/test_kernel_replay.py\", line 121, in test_tool_binding_change_rejected\n self.assertIn('tool binding changed', r.get('error', ''))\nAssertionError: 'tool binding changed' not found in ''\n\n----------------------------------------------------------------------\nRan 29 tests in 0.756s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json new file mode 100644 index 000000000..d633c4fa5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-accept-boolean-timeout.json @@ -0,0 +1,21 @@ +{ + "name": "resource-accept-boolean-timeout", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "02d4d36f864cc378e5232e9a720204f05a7ee01e260ee6b99d7059913d738c45", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... \n test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True) ... FAIL\n\n======================================================================\nFAIL: test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ury5k8a7/kernel_replay/tests/test_kernel_replay.py\", line 188, in test_resource_boolean_arguments_rejected\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.022s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... \n test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True) ... FAIL\n\n======================================================================\nFAIL: test_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) (memory=256, timeout=True)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ury5k8a7/kernel_replay/tests/test_kernel_replay.py\", line 188, in test_resource_boolean_arguments_rejected\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.022s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json new file mode 100644 index 000000000..adff42bdb --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-continue-after-unreaped-child.json @@ -0,0 +1,21 @@ +{ + "name": "resource-continue-after-unreaped-child", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "471565b98a54f7476c9db79944679fba89e527dfeb76ad809079036913ec6333", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z9qkpxv4/kernel_replay/tests/test_kernel_replay.py\", line 314, in test_resource_unreaped_child_stops_further_modules\n self.assertEqual(len(r['results']), 1, 'must stop serial scheduling when child cleanup failed')\nAssertionError: 2 != 1 : must stop serial scheduling when child cleanup failed\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-z9qkpxv4/kernel_replay/tests/test_kernel_replay.py\", line 314, in test_resource_unreaped_child_stops_further_modules\n self.assertEqual(len(r['results']), 1, 'must stop serial scheduling when child cleanup failed')\nAssertionError: 2 != 1 : must stop serial scheduling when child cleanup failed\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json new file mode 100644 index 000000000..2e145d532 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-drop-process-exception-normalization.json @@ -0,0 +1,21 @@ +{ + "name": "resource-drop-process-exception-normalization", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676", + "tests": { + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... \n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError') ... FAIL\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.190330+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'SubprocessError: spawn rejected', 'ended': '2026-10-29T19:22:14.194061+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.194481+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'OverflowError: spawn rejected', 'ended': '2026-10-29T19:22:14.197812+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.198095+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'ValueError: spawn rejected', 'ended': '2026-10-29T19:22:14.201405+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.025s\n\nFAILED (failures=3)\n" + }, + "stdout": "test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... \n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError') ... FAIL\n test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError') ... FAIL\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.190330+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'SubprocessError: spawn rejected', 'ended': '2026-10-29T19:22:14.194061+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.194481+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'OverflowError: spawn rejected', 'ended': '2026-10-29T19:22:14.197812+00:00'}\n\n======================================================================\nFAIL: test_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/tests/test_kernel_replay.py\", line 214, in test_resource_spawn_exceptions_are_structured_errors\n self.assertEqual(len(r['results']), 1, r)\nAssertionError: 0 != 1 : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:14.198095+00:00', 'ok': False, 'results': [], 'completed_count': 0, 'expected_count': 1, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean', 'sha256': 'e8baaa71855a616dc351028f3ad2200051b0671f423a1696a100e809302d5550'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo'], 'expected_modules': ['Toy'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/evidence/tmp53tk28uo/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/kernel_replay.py', 'sha256': 'b5d07bccbc9bc59f8cd8e9e00ce7ea1c8f3183ba2b6b3859ea72255815ff6676'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jsplgv4l/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'error': 'ValueError: spawn rejected', 'ended': '2026-10-29T19:22:14.201405+00:00'}\n\n----------------------------------------------------------------------\nRan 1 test in 0.025s\n\nFAILED (failures=3)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json new file mode 100644 index 000000000..76eaed833 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-inherited-memory-hard-limit.json @@ -0,0 +1,21 @@ +{ + "name": "resource-ignore-inherited-memory-hard-limit", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "8a5eee11955335be652e96c167c8ac26e4b225e3d85da23057538f4331e35748", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jzujgrqe/kernel_replay/tests/test_kernel_replay.py\", line 178, in test_resource_memory_hard_limit_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.014s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-jzujgrqe/kernel_replay/tests/test_kernel_replay.py\", line 178, in test_resource_memory_hard_limit_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.014s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json new file mode 100644 index 000000000..70dd48949 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-memory-upper-bound.json @@ -0,0 +1,21 @@ +{ + "name": "resource-ignore-memory-upper-bound", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "3a8223fde7a462b57c68fca074079d7af491c94621908eadfc27983cde12f970", + "tests": { + "tests_run": 1, + "assertion_failures": 2, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... \n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401) ... FAIL\n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.018s\n\nFAILED (failures=2)\n" + }, + "stdout": "test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... \n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401) ... FAIL\n test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13) ... FAIL\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=401)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) (memory_digits=13)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-ua7s5u78/kernel_replay/tests/test_kernel_replay.py\", line 169, in test_resource_memory_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.018s\n\nFAILED (failures=2)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json new file mode 100644 index 000000000..508731791 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-ignore-timeout-upper-bound.json @@ -0,0 +1,21 @@ +{ + "name": "resource-ignore-timeout-upper-bound", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "549382446fb2f7efdd12e560a6e5c535014fe3213ce9d1b84a8a987ffb63f736", + "tests": { + "tests_run": 1, + "assertion_failures": 3, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... \n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 199, in test_resource_timeout_upper_bounds_before_spawn\n self.assertIn('timeout_seconds', r.get('error', ''))\nAssertionError: 'timeout_seconds' not found in 'OverflowError: int too large to convert to float'\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=3)\n" + }, + "stdout": "test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... \n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float') ... FAIL\n test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int') ... FAIL\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 199, in test_resource_timeout_upper_bounds_before_spawn\n self.assertIn('timeout_seconds', r.get('error', ''))\nAssertionError: 'timeout_seconds' not found in 'OverflowError: int too large to convert to float'\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='float')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) (timeout_type='int')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-zv_8fgfe/kernel_replay/tests/test_kernel_replay.py\", line 197, in test_resource_timeout_upper_bounds_before_spawn\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.019s\n\nFAILED (failures=3)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json new file mode 100644 index 000000000..683457b98 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-overwrite-error-with-success.json @@ -0,0 +1,21 @@ +{ + "name": "resource-overwrite-error-with-success", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "d45a3249fd12b9d952b6a61cefdffa089230779a948d80a8dfe83339b2b766b6", + "tests": { + "tests_run": 1, + "assertion_failures": 4, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... \n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError') ... FAIL\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.030s\n\nFAILED (failures=4)\n" + }, + "stdout": "test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... \n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError') ... FAIL\n test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError') ... FAIL\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OverflowError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='ValueError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='SubprocessError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n======================================================================\nFAIL: test_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) (exception='OSError')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-1ltg7oy5/kernel_replay/tests/test_kernel_replay.py\", line 232, in test_resource_wait_errors_cannot_become_success\n self.assertFalse(r['ok'])\nAssertionError: True is not false\n\n----------------------------------------------------------------------\nRan 1 test in 0.030s\n\nFAILED (failures=4)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json new file mode 100644 index 000000000..f01574c84 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-skip-abnormal-cleanup.json @@ -0,0 +1,21 @@ +{ + "name": "resource-skip-abnormal-cleanup", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "db1b708ce6f94bfb124904a7b69a9d3feb55c5659f10be7d1d2f8b48c4aab70c", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-dx6rpbq9/kernel_replay/tests/test_kernel_replay.py\", line 297, in test_resource_unreapable_child_cleanup_is_bounded\n self.assertEqual(result['status'], 'ERROR')\nAssertionError: 'TIMEOUT' != 'ERROR'\n- TIMEOUT\n+ ERROR\n\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-dx6rpbq9/kernel_replay/tests/test_kernel_replay.py\", line 297, in test_resource_unreapable_child_cleanup_is_bounded\n self.assertEqual(result['status'], 'ERROR')\nAssertionError: 'TIMEOUT' != 'ERROR'\n- TIMEOUT\n+ ERROR\n\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json new file mode 100644 index 000000000..6ec37ca04 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/resource-unbounded-cleanup-wait.json @@ -0,0 +1,21 @@ +{ + "name": "resource-unbounded-cleanup-wait", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "5eef14c78353a2bbf8269bf8ff627c04965d5c54542e3fab29cb0dd3d5284100", + "tests": { + "tests_run": 1, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 255, in run_one\n result['returncode'], result['cleanup'] = cleanup_child(p)\n ^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 207, in cleanup_child\n returncode = p.wait()\n ^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... FAIL\n\n======================================================================\nFAIL: test_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 159, in resource_report\n return self.kr.run_manifest(m, memory, timeout)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 303, in run_manifest\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 255, in run_one\n result['returncode'], result['cleanup'] = cleanup_child(p)\n ^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/kernel_replay.py\", line 207, in cleanup_child\n returncode = p.wait()\n ^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1139, in __call__\n return self._mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1143, in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/unittest/mock.py\", line 1204, in _execute_mock_call\n result = effect(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 286, in wait\n self.fail('unbounded child cleanup wait')\nAssertionError: unbounded child cleanup wait\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 293, in test_resource_unreapable_child_cleanup_is_bounded\n r = self.resource_report(m, timeout=0.05)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-0x9kezoy/kernel_replay/tests/test_kernel_replay.py\", line 161, in resource_report\n self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}')\nAssertionError: resource boundary escaped structured report: AssertionError: unbounded child cleanup wait\n\n----------------------------------------------------------------------\nRan 1 test in 0.013s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json new file mode 100644 index 000000000..3dfa6b5ee --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/evidence/resource-mutations/truncate-module-coverage.json @@ -0,0 +1,21 @@ +{ + "name": "truncate-module-coverage", + "file": "kernel_replay.py", + "test": "test_kernel_replay.WrapperTests", + "outcome": "KILLED", + "returncode": 1, + "original_sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce", + "mutated_sha256": "f5d1bb661f8cf1f1f74843ca2311d6c8329634b9ef192cbcac4c412b3c8ccad7", + "tests": { + "tests_run": 29, + "assertion_failures": 1, + "errors": 0, + "skipped": 0, + "expected_failures": 0, + "unexpected_successes": 0, + "successful": false, + "log": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:12.720398+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:12.725178+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16591, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:12.841048+00:00', 'elapsed_seconds': 0.11587254999903962}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', 'sha256': 'd0bcb30fdab06b8f9e9bdd2851d756fc425325aecf62b02507e26f4488e437fa'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/kernel_replay.py', 'sha256': 'f5d1bb661f8cf1f1f74843ca2311d6c8329634b9ef192cbcac4c412b3c8ccad7'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:12.843538+00:00'}\n\n----------------------------------------------------------------------\nRan 29 tests in 0.696s\n\nFAILED (failures=1)\n" + }, + "stdout": "test_duplicate_modules_rejected (test_kernel_replay.WrapperTests.test_duplicate_modules_rejected) ... ok\ntest_empty_coverage_rejected (test_kernel_replay.WrapperTests.test_empty_coverage_rejected) ... ok\ntest_expected_coverage_mismatch_rejected (test_kernel_replay.WrapperTests.test_expected_coverage_mismatch_rejected) ... ok\ntest_individual_olean_symlink_rejected (test_kernel_replay.WrapperTests.test_individual_olean_symlink_rejected) ... ok\ntest_memory_limit_applied (test_kernel_replay.WrapperTests.test_memory_limit_applied) ... ok\ntest_missing_module_rejected (test_kernel_replay.WrapperTests.test_missing_module_rejected) ... ok\ntest_missing_or_wrong_marker_fatal (test_kernel_replay.WrapperTests.test_missing_or_wrong_marker_fatal) ... ok\ntest_module_names_and_unknown_fields_rejected (test_kernel_replay.WrapperTests.test_module_names_and_unknown_fields_rejected) ... ok\ntest_new_private_part_rejected (test_kernel_replay.WrapperTests.test_new_private_part_rejected) ... ok\ntest_nonzero_exit_fatal_even_with_marker (test_kernel_replay.WrapperTests.test_nonzero_exit_fatal_even_with_marker) ... ok\ntest_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage) ... FAIL\ntest_part_change_rejected (test_kernel_replay.WrapperTests.test_part_change_rejected) ... ok\ntest_resource_boolean_arguments_rejected (test_kernel_replay.WrapperTests.test_resource_boolean_arguments_rejected) ... ok\ntest_resource_cleanup_exceptions_remain_structured (test_kernel_replay.WrapperTests.test_resource_cleanup_exceptions_remain_structured) ... ok\ntest_resource_memory_hard_limit_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_hard_limit_before_spawn) ... ok\ntest_resource_memory_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_memory_upper_bounds_before_spawn) ... ok\ntest_resource_spawn_exceptions_are_structured_errors (test_kernel_replay.WrapperTests.test_resource_spawn_exceptions_are_structured_errors) ... ok\ntest_resource_timeout_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_timeout_kills_and_reaps_real_child) ... ok\ntest_resource_timeout_upper_bounds_before_spawn (test_kernel_replay.WrapperTests.test_resource_timeout_upper_bounds_before_spawn) ... ok\ntest_resource_unreapable_child_cleanup_is_bounded (test_kernel_replay.WrapperTests.test_resource_unreapable_child_cleanup_is_bounded) ... ok\ntest_resource_unreaped_child_stops_further_modules (test_kernel_replay.WrapperTests.test_resource_unreaped_child_stops_further_modules) ... ok\ntest_resource_valid_integer_and_float_timeouts (test_kernel_replay.WrapperTests.test_resource_valid_integer_and_float_timeouts) ... ok\ntest_resource_wait_error_kills_and_reaps_real_child (test_kernel_replay.WrapperTests.test_resource_wait_error_kills_and_reaps_real_child) ... ok\ntest_resource_wait_errors_cannot_become_success (test_kernel_replay.WrapperTests.test_resource_wait_errors_cannot_become_success) ... ok\ntest_search_root_and_part_symlinks_rejected (test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected) ... ok\ntest_source_change_rejected (test_kernel_replay.WrapperTests.test_source_change_rejected) ... ok\ntest_strict_cli (test_kernel_replay.WrapperTests.test_strict_cli) ... ok\ntest_timeout_fatal (test_kernel_replay.WrapperTests.test_timeout_fatal) ... ok\ntest_tool_binding_change_rejected (test_kernel_replay.WrapperTests.test_tool_binding_change_rejected) ... ok\n\n======================================================================\nFAIL: test_one_child_at_a_time_and_exact_coverage (test_kernel_replay.WrapperTests.test_one_child_at_a_time_and_exact_coverage)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/tests/test_kernel_replay.py\", line 150, in test_one_child_at_a_time_and_exact_coverage\n self.assertTrue(r['ok'], r)\nAssertionError: False is not true : {'schema': 'cbz-kernel-replay/v1', 'gate': 'G4-scoped-adapter', 'started': '2026-10-29T19:22:12.720398+00:00', 'ok': False, 'results': [{'module': 'Toy', 'command': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', '-j1', '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean'], 'started': '2026-10-29T19:22:12.725178+00:00', 'status': 'PASS', 'ok': True, 'returncode': 0, 'memory_mib': 256, 'timeout_seconds': 4, 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}], 'pid': 16591, 'stdout': 'CBZ_KERNEL_REPLAY_OK Toy\\n', 'stdout_bytes': 25, 'stderr': '', 'stderr_bytes': 0, 'ended': '2026-10-29T19:22:12.841048+00:00', 'elapsed_seconds': 0.11587254999903962}], 'completed_count': 1, 'expected_count': 2, 'manifest': {'schema': 'cbz-kernel-replay/v1', 'lean': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/fake-lean', 'sha256': 'd0bcb30fdab06b8f9e9bdd2851d756fc425325aecf62b02507e26f4488e437fa'}, 'sysroot': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1', 'lean_path': ['/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83'], 'expected_modules': ['Toy', 'Other'], 'modules': [{'name': 'Toy', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Toy.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}, {'name': 'Other', 'source': {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.lean', 'sha256': 'd5075df34f510961203f0ec3203cec5f6db6a2a0266fa286d039063c25400380'}, 'parts': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/evidence/tmp0jq5wt83/Other.olean', 'sha256': '65dacd1e2ef788fe6cb089ef56507fea3651e3f69a7c92a686b6cb19c44e5120'}]}], 'context': [], 'tool': [{'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/kernel_replay.py', 'sha256': 'f5d1bb661f8cf1f1f74843ca2311d6c8329634b9ef192cbcac4c412b3c8ccad7'}, {'path': '/workspace/cbz-0/tools/kernel_replay/evidence/mutant-djezx8gd/kernel_replay/ExactReplay.lean', 'sha256': '24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/LeanChecker.lean', 'sha256': '2d18ec111d73c536b0bdee2533556bb9548c349f386797d3d3837b1f84d55dae'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/src/lean/Lean/Replay.lean', 'sha256': 'c434b5b2bc5047ca58d4a095fcf1d9935d413c788ae98a4f21948e6a95ca3fb0'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/LeanChecker.olean', 'sha256': 'd6829015630328e3c70909a4cba004a7933f6d52cad3721488a2efaa14c1bbbe'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean', 'sha256': '66cb6f6d0bd6f9faee0205ddf0e289d1936e40f7808dfe9ad6eba412a5d8b427'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.server', 'sha256': '46026af21aa760fb2343c15336f6e1476d37e4829e4e0ec529ab499fd0a2b010'}, {'path': '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/lib/lean/Lean/Replay.olean.private', 'sha256': 'fadad15c5bb080fee117b7fd049b6f54e3077b5b258902fe47cad8dbf76649a1'}]}, 'g2_status': 'NOT_ASSESSED', 'full_cbz': False, 'resource_limits': {'memory_mib_max': 8796093022207, 'timeout_seconds_max': 2147483, 'cleanup_timeout_seconds': 1.0}, 'ended': '2026-10-29T19:22:12.843538+00:00'}\n\n----------------------------------------------------------------------\nRan 29 tests in 0.696s\n\nFAILED (failures=1)\n", + "stderr": "" +} diff --git a/cbz/contributions/math514/kernel_replay/independent-review.md b/cbz/contributions/math514/kernel_replay/independent-review.md new file mode 100644 index 000000000..b691fcc7d --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/independent-review.md @@ -0,0 +1,120 @@ +# Exact-module replay wrapper: independent review + +Reviewer: `/root/cbz_kernel_wrapper_review`, 29 October 2026. Scope: the new +`tools/kernel_replay/` adapter, tests, mutation harness, and retained evidence. +This is a tooling review, not a fresh mathematical verification or a full-CBZ +certificate. No mathematical source, Git state, canonical payload, or remote +service was changed by the reviewer. + +## Finding P1: resolved object filename could hide private proof data — fixed + +The original `resolve_olean` canonicalized the selected `.olean` before +`parts_of` enumerated its siblings. The Lean driver checked the real path, but +the unchanged official `replayFromImports` subsequently searched the lexical +filename again and selected its `.server`/`.private` siblings. An individual +`.olean` symlink could therefore bind three destination parts while replaying +only the exported presentation at the link location. A malformed private proof +could receive a green result. + +Locations: `tools/kernel_replay/kernel_replay.py:41`, `:81`, `:98`, `:112`, +`:139`; `tools/kernel_replay/ExactReplay.lean:23`; installed +`src/lean/LeanChecker.lean:11`. + +The author confirmed the static finding with a focused real-Lean reproduction. +`tools/kernel_replay/evidence/initial-real-symlink-replay.json` preserves that +false-green observation; it is historical defect evidence, not an acceptance +receipt. The fix rejects symlinked or noncanonical artifact/search paths before +canonicalization, including the main object, sibling parts, declared roots, +and manifest sysroot. Both manifest preparation and run-time validation reach +the guard. Static inspection confirms that the reported path mismatch is +closed. The new wrapper and real-private-body regressions exercise rejection; +the `allow-artifact-symlink` mutant removes the guard to expose the old defect. + +## Reviewed behavior + +- The production Lean driver imports the installed `LeanChecker` and invokes + its exported `replayFromImports target` exactly once. It does not preimport + the target. The official routine imports only the target's declared imports + into its replay environment, reads exported/server/private parts, and replays + constants from the most private available part. Production copies no kernel + replay implementation. +- The wrapper uses one fresh `lean -j1` process per explicit module and waits + before starting the next. Names, nonempty coverage, duplicates, exact module + ordering/count, and exact manifest fields are checked. Prefix expansion and + the official concurrent prefix CLI are not invoked. +- Sysroot libraries precede caller search roots for both driver import and + replay search. The Python package-shadowing selection matches upstream + `SearchPath.findWithExt`; the driver additionally checks the selected real + `.olean` path. The existing checker-shadow regression covers the previously + discovered search-order defect. +- Manifest source, compiled parts, tools, and explicit context bindings are + revalidated before, between, and after module runs. Nonzero exit, wall + timeout, missing/wrong completion marker, or coverage failure prevents green. + Address-space/core limits are applied in the child; timeout kills its process + group. Output is file-backed and only a bounded tail enters the report. +- G4 replay and G2 axiom policy remain separate. The unapproved fixture axiom + can pass the kernel while the fixture-only G2 check rejects it; the report + explicitly states `g2_status: NOT_ASSESSED` and `full_cbz: false`. + +## Evidence reuse and mutation review + +The handoff's completed 23 scoped tests were accepted as applicable evidence +for unchanged behavior. No Lean invocation, project build, kernel replay, or +test suite was rerun by this reviewer. New checks for the concrete symlink +defect and changed fixtures/tests were performed by the author, avoiding races. + +The initial mutation report is retained as +`tools/kernel_replay/evidence/g0-initial-mutations.json`: 15 planned/executed, +11 killed, four survived. Three binding tests had asserted only non-green and +were masked by deliberately invalid dummy objects; they now require the +specific binding error. The initial private fixture did not truly confine its +bad proof to private data; the replacement uses the normal declaration API +under an explicitly quarantined fixture-only kernel-check bypass. These were +real test-coverage defects and the initial score must not be presented as +acceptance. + +A separate static mutation-harness review found no further blocking defect. +The harness isolates mutations, requires exactly one replacement site, and +classifies runner errors, skips, empty test sets, abnormal exits, and outer +timeouts as `ERROR`, not `KILLED`. A kill means an assertion failed; retained +assertion traces must establish the intended failure rather than relying on +the scalar mutation count alone. + +Final author acceptance evidence has been inspected and reused: + +- `tools/kernel_replay/evidence/g0-tests.json`: 25 tests passed, zero assertion + failures/errors/skips/expected failures/unexpected successes after the path + guard and corrected fixtures/tests. +- `tools/kernel_replay/evidence/g0-additional-tests.json`: two additional tests + passed for search-root/part symlinks and CLI prepare/run/source drift. The + production adapter was unchanged, so the earlier 25 tests remain applicable: + 27 distinct passing tests in total, not a claim of a repeated 27-test run. +- `tools/kernel_replay/evidence/g0-mutations.json`: 16 planned, 16 executed, + 16 killed; no survivor, runner error, or skip. The retained assertion traces + match the mutated obligations. The symlink, exported-only, skipped-replay, + and preloaded-target mutants visibly receive improper green results that + their negative tests reject. The concurrency trace shows the shared lock + collision; the memory-limit trace shows the deliberately removed limit. + +The author's final production identity is +`kernel_replay.py` SHA-256 +`416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293`; +`ExactReplay.lean` SHA-256 +`24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66`. +These identities and the executed evidence came from the author; this review +did not regenerate checksums or rerun verification merely for handoff. + +Disposition: the one P1 finding is fixed and covered; no open blocking finding +remains in the reviewed adapter, tests, or mutation harness. + +## Limits + +Source and object hashes are independent bindings; G3 evidence must establish +that the source produced the object. The caller's independent owned-module +inventory must establish complete expected coverage. Only declared targets +and explicit context are bound, not an undeclared dependency closure. Upstream +unsafe/partial exclusions and axiom acceptance are unchanged. The observed +low-address-space failures remain retained; an 8 GiB fixture limit establishes +fixture operation only, not the memory requirement of a heavy project replay. +Provider-distinct review and other process gates remain separate from this +tooling review and from completed mathematical evidence. diff --git a/cbz/contributions/math514/kernel_replay/kernel_replay.py b/cbz/contributions/math514/kernel_replay/kernel_replay.py new file mode 100644 index 000000000..6a96d2c22 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/kernel_replay.py @@ -0,0 +1,370 @@ +#!/usr/bin/env python3 +"""Bounded, serial, exact-module adapter to the installed LeanChecker routine.""" +import argparse +from datetime import datetime, timezone +import hashlib +import json +import math +import os +from pathlib import Path +import re +import resource +import signal +import subprocess +import sys +import time +import threading + +ROOT = Path(__file__).resolve().parent +SCHEMA = 'cbz-kernel-replay/v1' +# Linux poll uses signed-int milliseconds. Floor before passing seconds to any +# platform wait, and also respect CPython's documented blocking-time ceiling. +MAX_TIMEOUT_SECONDS = min(int(threading.TIMEOUT_MAX), ((1 << 31) - 1) // 1000) +CLEANUP_TIMEOUT_SECONDS = 1.0 +PROCESS_ERRORS = (OSError, subprocess.SubprocessError, OverflowError, ValueError) +MODULE = re.compile(r"[A-Za-z_][A-Za-z0-9_']*(?:\.[A-Za-z_][A-Za-z0-9_']*)*\Z") + + +def now(): + return datetime.now(timezone.utc).isoformat() + + +def sha256(path): + h = hashlib.sha256() + with Path(path).open('rb') as f: + for chunk in iter(lambda: f.read(1024 * 1024), b''): + h.update(chunk) + return h.hexdigest() + + +def binding(path): + p = Path(path).resolve(strict=True) + if not p.is_file(): + raise ValueError(f'not a regular file: {p}') + return {'path': str(p), 'sha256': sha256(p)} + + +def reject_artifact_symlinks(path): + p = Path(path) + # Do not canonicalize one filename and then inventory destination siblings: + # upstream finds .server/.private siblings of the lexical selected filename. + # Conservatively reject symlinks in every artifact/search-root component. + try: + canonical = p.resolve() + except RuntimeError as e: + raise ValueError(f'symlink loop: {p}') from e + if not p.is_absolute() or p.is_symlink() or canonical != p: + raise ValueError(f'symlink or noncanonical artifact/search path forbidden: {p}') + + +def exact_keys(obj, keys, what): + if not isinstance(obj, dict) or set(obj) != set(keys): + raise ValueError(f'{what}: required exact fields {sorted(keys)}') + + +def check_binding(b): + exact_keys(b, {'path', 'sha256'}, 'binding') + p = Path(b['path']) + if not p.is_absolute() or not re.fullmatch('[0-9a-f]{64}', b['sha256']): + raise ValueError('binding requires absolute path and SHA-256') + if binding(p) != b: + raise ValueError(f'binding changed: {p}') + + +def tool_bindings(sysroot): + upstream = Path(sysroot) / 'src/lean' + library = Path(sysroot) / 'lib/lean' + paths = [ROOT / 'kernel_replay.py', ROOT / 'ExactReplay.lean', + upstream / 'LeanChecker.lean', upstream / 'Lean/Replay.lean', + library / 'LeanChecker.olean', library / 'Lean/Replay.olean'] + # Bind any available data parts of both imported checker implementations. + for stem in (library / 'LeanChecker.olean', library / 'Lean/Replay.olean'): + paths.extend(p for p in (Path(str(stem) + '.server'), Path(str(stem) + '.private')) + if p.exists()) + return [binding(p) for p in paths] + + +def resolve_olean(name, lean_path, sysroot): + if not isinstance(name, str) or not MODULE.fullmatch(name): + raise ValueError(f'invalid exact module: {name!r}') + package = name.split('.')[0] + # Mirrors SearchPath.findWithExt: package shadowing is significant, even + # when a matching later path contains the requested submodule. + for raw in [str(Path(sysroot) / 'lib/lean'), *lean_path]: + root = Path(raw) + if (root / package).is_dir() or (root / (package + '.olean')).exists(): + p = root.joinpath(*name.split('.')).with_suffix('.olean') + reject_artifact_symlinks(p) + if not p.is_file(): + raise FileNotFoundError(f'exact module missing: {p}') + return p.resolve() + raise FileNotFoundError(f'exact module not found: {name}') + + +def parts_of(olean): + parts = [Path(olean)] + server, private = Path(str(olean) + '.server'), Path(str(olean) + '.private') + for p in (Path(olean), server, private): + reject_artifact_symlinks(p) + if server.exists(): + parts.append(server) + if private.exists(): + parts.append(private) + elif private.exists(): + raise ValueError(f'orphan private part: {private}') + return [binding(p) for p in parts] + + +def prepare_manifest(lean, lean_path, selections, context): + lean = str(Path(lean).resolve(strict=True)) + sysroot = str(Path(lean).parent.parent) + if not selections: + raise ValueError('empty expected module coverage forbidden') + paths = [] + for raw in lean_path: + p = Path(raw).absolute() + reject_artifact_symlinks(p) + paths.append(str(p.resolve(strict=True))) + if any(not Path(p).is_dir() for p in paths): + raise ValueError('lean_path entries must be directories') + names, modules = [], [] + for selection in selections: + if '=' not in selection: + raise ValueError('module selection must be NAME=SOURCE') + name, source = selection.split('=', 1) + if name in names: + raise ValueError(f'duplicate module: {name}') + olean = resolve_olean(name, paths, sysroot) + names.append(name) + modules.append({'name': name, 'source': binding(source), 'parts': parts_of(olean)}) + return {'schema': SCHEMA, 'lean': binding(lean), 'sysroot': sysroot, + 'lean_path': paths, 'expected_modules': names, 'modules': modules, + 'context': [binding(p) for p in context], 'tool': tool_bindings(sysroot)} + + +def validate_manifest(m): + exact_keys(m, {'schema', 'lean', 'sysroot', 'lean_path', 'expected_modules', + 'modules', 'context', 'tool'}, 'manifest') + if m['schema'] != SCHEMA: + raise ValueError('unsupported schema') + names = m['expected_modules'] + if not isinstance(names, list) or not names or any(not isinstance(n, str) for n in names): + raise ValueError('empty or invalid expected coverage') + if len(set(names)) != len(names): + raise ValueError('duplicate expected coverage') + if (not isinstance(m['modules'], list) or any(not isinstance(x, dict) for x in m['modules']) + or [x.get('name') for x in m['modules']] != names): + raise ValueError('expected module coverage mismatch') + check_binding(m['lean']) + if not Path(m['sysroot']).is_absolute(): + raise ValueError('sysroot must be absolute') + reject_artifact_symlinks(Path(m['sysroot'])) + if not isinstance(m['lean_path'], list) or any( + not Path(p).is_absolute() or not Path(p).is_dir() for p in m['lean_path']): + raise ValueError('invalid lean_path') + for p in m['lean_path']: + reject_artifact_symlinks(Path(p)) + for entry in m['modules']: + exact_keys(entry, {'name', 'source', 'parts'}, 'module') + olean = resolve_olean(entry['name'], m['lean_path'], m['sysroot']) + check_binding(entry['source']) + if parts_of(olean) != entry['parts']: + raise ValueError(f'compiled parts changed: {entry["name"]}') + if m['tool'] != tool_bindings(m['sysroot']): + raise ValueError('tool binding changed') + if not isinstance(m['context'], list): + raise ValueError('context must be a binding list') + for b in m['context']: + check_binding(b) + + +def limits(memory_mib): + def apply(): + cap = memory_mib * 1024 * 1024 + resource.setrlimit(resource.RLIMIT_AS, (cap, cap)) + resource.setrlimit(resource.RLIMIT_CORE, (0, 0)) + return apply + + +def cleanup_child(p): + """Kill the process group and reap without an implicit/unbounded wait.""" + cleanup = {'pid': p.pid, 'reaped': False, 'timeout_seconds': CLEANUP_TIMEOUT_SECONDS, + 'errors': []} + try: + os.killpg(p.pid, signal.SIGKILL) + except ProcessLookupError: + pass # Child/group may have exited immediately before the signal. + except PROCESS_ERRORS as e: + cleanup['errors'].append(f'group kill {type(e).__name__}: {e}') + try: + p.kill() + except ProcessLookupError: + pass + except PROCESS_ERRORS as e: + cleanup['errors'].append(f'child kill {type(e).__name__}: {e}') + returncode = None + try: + returncode = p.wait(timeout=CLEANUP_TIMEOUT_SECONDS) + except PROCESS_ERRORS as e: + cleanup['errors'].append(f'reap {type(e).__name__}: {e}') + # poll is nonblocking and can still reap an already-exited child if a + # platform wait rejected its timeout argument. + try: + returncode = p.poll() + except PROCESS_ERRORS as e: + cleanup['errors'].append(f'poll {type(e).__name__}: {e}') + cleanup['reaped'] = returncode is not None + return returncode, cleanup + + +def run_one(m, entry, memory_mib, timeout_seconds): + env = os.environ.copy() + # Pin the imported checker and Lean/Lake support to the installed sysroot. + # User artifacts cannot replace the trusted checker through LEAN_PATH. + env['LEAN_PATH'] = os.pathsep.join([str(Path(m['sysroot']) / 'lib/lean'), *m['lean_path']]) + env['LEAN_SYSROOT'] = m['sysroot'] + env['CBZ_KERNEL_REPLAY_MODULE'] = entry['name'] + env['CBZ_KERNEL_REPLAY_OLEAN'] = entry['parts'][0]['path'] + cmd = [m['lean']['path'], '-j1', str(ROOT / 'ExactReplay.lean')] + result = {'module': entry['name'], 'command': cmd, 'started': now(), + 'status': 'ERROR', 'ok': False, 'returncode': None, + 'memory_mib': memory_mib, 'timeout_seconds': timeout_seconds, + 'source': entry['source'], 'parts': entry['parts']} + started = time.monotonic() + # File-backed output prevents a noisy or corrupted module exhausting the + # orchestrator's memory. Only a bounded tail is included in JSON evidence. + import tempfile + with tempfile.TemporaryFile() as stdout, tempfile.TemporaryFile() as stderr: + p = None + try: + # A Popen context manager calls wait() without a timeout on exit. + # Keep ownership explicit so every abnormal wait has bounded cleanup. + p = subprocess.Popen(cmd, cwd=ROOT, env=env, stdout=stdout, stderr=stderr, + start_new_session=True, preexec_fn=limits(memory_mib)) + result['pid'] = p.pid + try: + result['returncode'] = p.wait(timeout=timeout_seconds) + result['status'] = 'FINISHED' + except subprocess.TimeoutExpired: + result['status'] = 'TIMEOUT' + except PROCESS_ERRORS as e: + result['error'] = f'wait {type(e).__name__}: {e}' + except PROCESS_ERRORS as e: + result['error'] = f'spawn {type(e).__name__}: {e}' + if p is not None and result['status'] != 'FINISHED': + result['returncode'], result['cleanup'] = cleanup_child(p) + if not result['cleanup']['reaped']: + result['status'] = 'ERROR' + detail = f'child PID {p.pid} not reaped within {CLEANUP_TIMEOUT_SECONDS} seconds' + result['error'] = (result.get('error', '') + '; ' + detail).lstrip('; ') + for key, stream in (('stdout', stdout), ('stderr', stderr)): + stream.seek(0, os.SEEK_END) + size = stream.tell() + stream.seek(max(0, size - 131072)) + result[key] = stream.read().decode('utf-8', errors='replace') + result[key + '_bytes'] = size + marker = 'CBZ_KERNEL_REPLAY_OK ' + entry['name'] + if result['status'] == 'FINISHED': + result['ok'] = result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1 + result['status'] = 'PASS' if result['ok'] else 'FAIL' + result['ended'] = now() + result['elapsed_seconds'] = time.monotonic() - started + return result + + +def run_manifest(m, memory_mib, timeout_seconds): + report = {'schema': SCHEMA, 'gate': 'G4-scoped-adapter', 'started': now(), 'ok': False, + 'results': [], 'completed_count': 0, 'expected_count': 0, 'manifest': m, + 'g2_status': 'NOT_ASSESSED', 'full_cbz': False} + try: + # RLIMIT_AS is inherited; a child cannot raise a finite hard limit. + # sys.maxsize is a conservative signed platform-integer byte ceiling, + # below Linux rlim_t's unsigned sentinel/range. Never silently clamp. + hard_memory = resource.getrlimit(resource.RLIMIT_AS)[1] + memory_bytes_max = sys.maxsize + if hard_memory != resource.RLIM_INFINITY: + memory_bytes_max = min(memory_bytes_max, hard_memory) + memory_mib_max = memory_bytes_max // (1024 * 1024) + report['resource_limits'] = {'memory_mib_max': memory_mib_max, + 'timeout_seconds_max': MAX_TIMEOUT_SECONDS, + 'cleanup_timeout_seconds': CLEANUP_TIMEOUT_SECONDS} + if type(memory_mib) is not int or not 64 <= memory_mib <= memory_mib_max: + raise ValueError(f'memory_mib must be an integer in [64, {memory_mib_max}]') + # Compare the upper bound before float conversion: math.isfinite(10**400) + # itself overflows. Bool is not a resource quantity despite being an int. + if (type(timeout_seconds) not in (int, float) + or not 0 < timeout_seconds <= MAX_TIMEOUT_SECONDS + or not math.isfinite(timeout_seconds)): + raise ValueError(f'timeout_seconds must be finite and in (0, {MAX_TIMEOUT_SECONDS}]') + validate_manifest(m) + report['expected_count'] = len(m['expected_modules']) + for entry in m['modules']: + validate_manifest(m) + report['results'].append(run_one(m, entry, memory_mib, timeout_seconds)) + if report['results'][-1].get('cleanup', {}).get('reaped') is False: + break # Do not start another process while an earlier PID remains unreaped. + validate_manifest(m) + report['completed_count'] = sum(x['ok'] for x in report['results']) + report['ok'] = (report['completed_count'] == report['expected_count'] + and len(report['results']) == report['expected_count'] + and [r['module'] for r in report['results']] == m['expected_modules']) + except (ValueError, TypeError, KeyError, OSError, subprocess.SubprocessError, OverflowError) as e: + report['error'] = f'{type(e).__name__}: {e}' + report['ended'] = now() + return report + + +def emit(value, output): + data = json.dumps(value, indent=2, sort_keys=True) + '\n' + if output: + Path(output).write_text(data) + else: + print(data, end='') + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__, add_help=False, allow_abbrev=False) + subs = parser.add_subparsers(dest='action', required=True) + subs.add_parser('help', add_help=False, allow_abbrev=False) + prepare = subs.add_parser('prepare', add_help=False, allow_abbrev=False) + one = subs.add_parser('one', add_help=False, allow_abbrev=False) + for p in (prepare, one): + p.add_argument('--lean', required=True) + p.add_argument('--lean-path', action='append', default=[]) + p.add_argument('--context', action='append', default=[]) + p.add_argument('--output') + prepare.add_argument('--module', action='append', required=True) + one.add_argument('module') + one.add_argument('--source', required=True) + run = subs.add_parser('run', add_help=False, allow_abbrev=False) + run.add_argument('manifest') + run.add_argument('--output') + for p in (run, one): + p.add_argument('--memory-mib', type=int, required=True) + p.add_argument('--timeout-seconds', type=float, required=True) + args = parser.parse_args(argv) + if args.action == 'help': + print(parser.format_help()) + print('prepare --lean ABS --lean-path DIR --module NAME=SOURCE --output MANIFEST') + print('run MANIFEST --memory-mib MIB --timeout-seconds SECONDS --output REPORT') + print('one NAME --lean ABS --lean-path DIR --source SOURCE --memory-mib MIB --timeout-seconds SECONDS') + return 0 + try: + if args.action == 'run': + m = json.loads(Path(args.manifest).read_text()) + else: + selections = args.module if args.action == 'prepare' else [args.module + '=' + args.source] + m = prepare_manifest(args.lean, args.lean_path, selections, args.context) + if args.action == 'prepare': + emit(m, args.output) + return 0 + report = run_manifest(m, args.memory_mib, args.timeout_seconds) + emit(report, args.output) + return 0 if report['ok'] else 1 + except (ValueError, TypeError, KeyError, OSError, subprocess.SubprocessError, OverflowError) as e: + print(f'kernel replay ERROR: {e}', file=sys.stderr) + return 2 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/mutations.py b/cbz/contributions/math514/kernel_replay/mutations.py new file mode 100644 index 000000000..cb277a39a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/mutations.py @@ -0,0 +1,257 @@ +#!/usr/bin/env python3 +"""Isolated mutation checks. Errors/skips/empty tests are never mutant kills.""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import re +import shutil +import subprocess +import sys +import tempfile + +ROOT = Path(__file__).resolve().parent + + +def classify(value, code, expected_selection=None, expected_ids=None): + """Grade only trusted runner receipts; legacy/log-only summaries fail closed. + + This validates accounting, not an adversarial author's fabricated JSON. The + receipt must come from the runner subprocess whose source is custody-bound. + """ + if (not isinstance(value, dict) or type(code) is not int or code not in (0, 1) + or value.get('receipt_schema') != 'cbz-unittest-lifecycle-v1' + or type(value.get('successful')) is not bool): + return 'ERROR' + counts = ('tests_run', 'assertion_failures', 'errors', 'skipped', + 'expected_failures', 'unexpected_successes', 'lifecycle_failures', 'subtests') + if any(type(value.get(key)) is not int or value[key] < 0 for key in counts): + return 'ERROR' + if any(value[key] for key in ('errors', 'skipped', 'expected_failures', + 'unexpected_successes', 'lifecycle_failures')): + return 'ERROR' + if value.get('invalid_population') != []: + return 'ERROR' + selection = value.get('selection') + if (not isinstance(selection, list) or not selection + or any(not isinstance(item, str) or not item for item in selection) + or expected_selection is not None and selection != expected_selection): + return 'ERROR' + keys = ('selected_ids', 'started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids') + for key in keys: + ids = value.get(key) + if (not isinstance(ids, list) or any(not isinstance(item, str) or not re.fullmatch(r'(?:[A-Za-z_]\w*\.){2,}[A-Za-z_]\w*', item) + or item.startswith('unittest.loader.') for item in ids) + or key != 'body_assertion_ids' and len(ids) != len(set(ids))): + return 'ERROR' + selected = value['selected_ids'] + if (expected_ids is not None and selected != expected_ids + or any(not any(selector == 'discover:test_*.py' or identity == selector + or identity.startswith(selector + '.') for selector in selection) + for identity in selected)): + return 'ERROR' + if (not selected or value['tests_run'] != len(selected) + or any(value[key] != selected for key in keys[1:5]) + or any(item not in selected for item in value['body_assertion_ids']) + or value['assertion_failures'] != len(value['body_assertion_ids'])): + return 'ERROR' + events = value.get('subtest_events') + assertions = value.get('assertion_events') + if not isinstance(events, list) or not isinstance(assertions, list) or value['subtests'] != len(events): + return 'ERROR' + for event in events: + if (not isinstance(event, dict) or set(event) != {'parent_id', 'phase', 'outcome'} + or event['parent_id'] not in selected or event['phase'] != 'body' + or event['outcome'] not in ('success', 'assertion')): + return 'ERROR' + for event in assertions: + if (not isinstance(event, dict) or set(event) != {'parent_id', 'origin'} + or event['parent_id'] not in selected or event['origin'] not in ('body', 'subtest')): + return 'ERROR' + direct = [event['parent_id'] for event in assertions if event['origin'] == 'body'] + if (len(set(direct)) != len(direct) + or value['body_assertion_ids'] != [event['parent_id'] for event in assertions] + or [event['parent_id'] for event in assertions if event['origin'] == 'subtest'] != + [event['parent_id'] for event in events if event['outcome'] == 'assertion']): + return 'ERROR' + if code == 1 and value['assertion_failures'] > 0 and value['successful'] is False: + return 'KILLED' + if code == 0 and value['successful'] is True and value['assertion_failures'] == 0: + return 'SURVIVED' + return 'ERROR' + + +def digest(data): + return hashlib.sha256(data).hexdigest() + + +def definitions(): + wrapper = 'test_kernel_replay.WrapperTests' + real = 'test_real_lean.RealLeanTests.' + items = [ + ('empty-coverage', 'kernel_replay.py', 'if not selections:', 'if False:', wrapper), + ('allow-artifact-symlink', 'kernel_replay.py', + " if not p.is_absolute() or p.is_symlink() or canonical != p:", + ' if False:', 'test_real_lean.RealLeanTests.test_real_private_body_cannot_hide_behind_olean_symlink'), + ('ignore-source-binding', 'kernel_replay.py', " check_binding(entry['source'])", ' pass', wrapper), + ('ignore-compiled-parts-binding', 'kernel_replay.py', "if parts_of(olean) != entry['parts']:", 'if False:', wrapper), + ('ignore-tool-binding', 'kernel_replay.py', "if m['tool'] != tool_bindings(m['sysroot']):", 'if False:', wrapper), + ('ignore-nonzero-exit', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['stdout'].splitlines().count(marker) == 1", wrapper), + ('ignore-completion-marker', 'kernel_replay.py', "result['returncode'] == 0 and result['stdout'].splitlines().count(marker) == 1", "result['returncode'] == 0", wrapper), + ('ignore-timeout', 'kernel_replay.py', 'p.wait(timeout=timeout_seconds)', 'p.wait(timeout=None)', wrapper), + ('ignore-memory-limit', 'kernel_replay.py', 'preexec_fn=limits(memory_mib)', 'preexec_fn=None', wrapper), + ('truncate-module-coverage', 'kernel_replay.py', "for entry in m['modules']:\n validate_manifest(m)", "for entry in m['modules'][:1]:\n validate_manifest(m)", wrapper), + ('concurrent-module-processes', 'kernel_replay.py', + " for entry in m['modules']:\n validate_manifest(m)\n report['results'].append(run_one(m, entry, memory_mib, timeout_seconds))\n if report['results'][-1].get('cleanup', {}).get('reaped') is False:\n break # Do not start another process while an earlier PID remains unreaped.", + " from concurrent.futures import ThreadPoolExecutor\n with ThreadPoolExecutor(max_workers=2) as pool:\n report['results'] = list(pool.map(lambda entry: run_one(m, entry, memory_mib, timeout_seconds), m['modules']))", + wrapper + '.test_one_child_at_a_time_and_exact_coverage'), + ('skip-kernel-replay', 'ExactReplay.lean', ' replayFromImports target', ' pure ()', real + 'test_public_self_reference_rejected'), + ('prefix-expansion', 'ExactReplay.lean', ' replayFromImports target', + ' let sp ← searchPathRef.get\n for path in (← SearchPath.findAllWithExt sp "olean") do\n if let some name ← searchModuleNameOfFileName path sp then\n if target.isPrefixOf name then replayFromImports name', + real + 'test_exact_module_no_prefix_glob'), + ('untrusted-checker-search-path', 'kernel_replay.py', + "env['LEAN_PATH'] = os.pathsep.join([str(Path(m['sysroot']) / 'lib/lean'), *m['lean_path']])", + "env['LEAN_PATH'] = os.pathsep.join(m['lean_path'])", real + 'test_user_lean_path_cannot_shadow_checker'), + ] + return items + + +def resource_definitions(): + wrapper = 'test_kernel_replay.WrapperTests.' + return [ + ('resource-ignore-memory-upper-bound', 'kernel_replay.py', + 'not 64 <= memory_mib <= memory_mib_max', 'memory_mib < 64', + wrapper + 'test_resource_memory_upper_bounds_before_spawn'), + ('resource-ignore-inherited-memory-hard-limit', 'kernel_replay.py', + 'if hard_memory != resource.RLIM_INFINITY:', 'if False:', + wrapper + 'test_resource_memory_hard_limit_before_spawn'), + ('resource-ignore-timeout-upper-bound', 'kernel_replay.py', + 'not 0 < timeout_seconds <= MAX_TIMEOUT_SECONDS', 'not 0 < timeout_seconds', + wrapper + 'test_resource_timeout_upper_bounds_before_spawn'), + ('resource-accept-boolean-timeout', 'kernel_replay.py', + 'type(timeout_seconds) not in (int, float)', 'type(timeout_seconds) not in (int, float, bool)', + wrapper + 'test_resource_boolean_arguments_rejected'), + ('resource-drop-process-exception-normalization', 'kernel_replay.py', + 'PROCESS_ERRORS = (OSError, subprocess.SubprocessError, OverflowError, ValueError)', + 'PROCESS_ERRORS = (OSError,)', + wrapper + 'test_resource_spawn_exceptions_are_structured_errors'), + ('resource-unbounded-cleanup-wait', 'kernel_replay.py', + 'p.wait(timeout=CLEANUP_TIMEOUT_SECONDS)', 'p.wait()', + wrapper + 'test_resource_unreapable_child_cleanup_is_bounded'), + ('resource-skip-abnormal-cleanup', 'kernel_replay.py', + "if p is not None and result['status'] != 'FINISHED':", 'if False:', + wrapper + 'test_resource_unreapable_child_cleanup_is_bounded'), + ('resource-overwrite-error-with-success', 'kernel_replay.py', + " if result['status'] == 'FINISHED':", " if result['status'] != 'TIMEOUT':", + wrapper + 'test_resource_wait_errors_cannot_become_success'), + ('resource-continue-after-unreaped-child', 'kernel_replay.py', + "if report['results'][-1].get('cleanup', {}).get('reaped') is False:", 'if False:', + wrapper + 'test_resource_unreaped_child_stops_further_modules'), + ] + + +def derived_driver_mutations(lean): + upstream = (Path(lean).resolve().parent.parent / 'src/lean/LeanChecker.lean').read_text() + start = upstream.index('unsafe def replayFromImports ') + end = upstream.index('unsafe def replayFromFresh ', start) + routine = upstream[start:end] + # These intentionally unsound adapters exist only inside isolated mutants. + # The copied fragment retains the upstream Apache-2.0 provenance in the + # driver's file header; production calls the installed implementation. + exported = routine.replace('replayFromImports', 'cbzExportedOnly', 1) + a, b = exported.index(' let mut fnames'), exported.index(' let parts') + exported = exported[:a] + ' let fnames := #[mFile]\n' + exported[b:] + preload = routine.replace('replayFromImports', 'cbzPreloaded', 1) + preload = preload.replace('importModulesCore mod.imports', 'importModulesCore #[{ module }]') + preload = preload.replace('finalizeImport s mod.imports', 'finalizeImport s #[{ module }]') + original = (ROOT / 'ExactReplay.lean').read_text() + return [ + ('exported-part-only', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + exported).replace(' replayFromImports target', ' cbzExportedOnly target'), + 'test_real_lean.RealLeanTests.test_private_self_reference_rejected'), + ('preload-target-self-reference', 'ExactReplay.lean', original, + original.replace('open Lean\n', 'open Lean\n\n' + preload).replace(' replayFromImports target', ' cbzPreloaded target'), + 'test_real_lean.RealLeanTests.test_public_self_reference_rejected'), + ] + + +def run_mutations(output, only=None, group='all'): + lean = os.environ.get('CBZ_TEST_LEAN', '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean') + plan = definitions() + resource_definitions() + if group == 'resource': + plan = resource_definitions() + elif group == 'wrapper': + plan = [x for x in plan if x[4].startswith('test_kernel_replay.')] + else: + plan += derived_driver_mutations(lean) + if only: + if only not in [x[0] for x in plan]: + raise ValueError('unknown mutation: ' + only) + plan = [x for x in plan if x[0] == only] + # Keep old-generation mutation receipts immutable when selecting this repair. + evidence = ROOT / ('evidence/mutations' if group == 'all' else 'evidence/resource-mutations') + evidence.mkdir(parents=True, exist_ok=True) + results = [] + populations = {} + for name, filename, old, new, test in plan: + if test not in populations: + population_path = evidence / ('population-' + str(len(populations)) + '.json') + listed = subprocess.run([sys.executable, '-B', '-S', str(ROOT / 'run_tests.py'), + '--output', str(population_path), '--test', test, '--list'], + capture_output=True, text=True, timeout=15) + population = json.loads(population_path.read_text()) if population_path.exists() else {} + if (listed.returncode != 0 or population.get('invalid_population') != [] + or not population.get('selected_ids') or population.get('selection') != [test]): + raise ValueError('cannot bind unchanged selected test population: ' + test) + populations[test] = population['selected_ids'] + with tempfile.TemporaryDirectory(dir=ROOT / 'evidence', prefix='mutant-') as d: + work = Path(d) / 'kernel_replay' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('evidence', '__pycache__', '*.pyc')) + (work / 'evidence').mkdir() + file = work / filename + original = file.read_text() + if original.count(old) != 1: + raise ValueError(f'mutation {name} did not identify exactly one source occurrence') + changed = original.replace(old, new, 1) + file.write_text(changed) + result_path = work / 'evidence/tests.json' + command = [sys.executable, str(work / 'run_tests.py'), '--output', str(result_path), '--test', test] + try: + p = subprocess.run(command, capture_output=True, text=True, timeout=90) + value = json.loads(result_path.read_text()) if result_path.exists() else {} + record = {'name': name, 'file': filename, 'test': test, + 'outcome': classify(value, p.returncode, [test], populations[test]), 'returncode': p.returncode, + 'expected_selected_ids': populations[test], + 'original_sha256': digest(original.encode()), + 'mutated_sha256': digest(changed.encode()), 'tests': value, + 'stdout': p.stdout, 'stderr': p.stderr} + except subprocess.TimeoutExpired as e: + record = {'name': name, 'outcome': 'ERROR', 'error': 'mutation test timed out'} + (evidence / (name + '.json')).write_text(json.dumps(record, indent=2) + '\n') + results.append(record) + print(name + ': ' + record['outcome'], flush=True) + result = {'group': group, 'threshold': 1.0, 'planned': len(plan), 'executed': len(results), + 'killed': sum(x['outcome'] == 'KILLED' for x in results), + 'ok': bool(results) and len(results) == len(plan) and all(x['outcome'] == 'KILLED' for x in results), + 'results': results} + Path(output).write_text(json.dumps(result, indent=2) + '\n') + return result + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--only') + parser.add_argument('--group', choices=('all', 'wrapper', 'resource'), default='all') + args = parser.parse_args() + try: + return 0 if run_mutations(args.output, args.only, args.group)['ok'] else 1 + except (ValueError, OSError) as e: + print('mutation harness ERROR: ' + str(e), file=sys.stderr) + return 2 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/resource-fix-report.json b/cbz/contributions/math514/kernel_replay/resource-fix-report.json new file mode 100644 index 000000000..13fea5f93 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/resource-fix-report.json @@ -0,0 +1,113 @@ +{ + "generation": "resource-boundary-v2", + "status": "COMPLETE_SCOPED_RESOURCE_REPAIR_G0_ENGINEERING_REVIEW_PASS", + "created_at": "2026-10-29T19:26:45.835512+00:00", + "scope": "P2 resource argument validation, subprocess exception normalization, bounded abnormal child cleanup, terminal ERROR propagation; isolated wrapper tests/mutants only.", + "peer_finding": { + "url": "https://github.com/d6g8k5htny-coder/main/pull/696#discussion_r4416529549", + "review_id": 5703218243, + "applies_to_published_head": "cd3a0021a16437567ceda8c9a0f0525677042de2", + "native_record": "/workspace/cbz-0/discovery/kernel-resource-review-native.json" + }, + "source_bindings": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/mutations.py", + "sha256": "5fd6fbbfd2aab463f1c2c017af942762ae798a67f3d1fc47001bc317b8fee0a0" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/run_tests.py", + "sha256": "b0a7f1c508462c21688de8d5ec70384d40f780c342814d97589f0b45f2d7620b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py", + "sha256": "2ccdd956379bf3ddbc479a10604a10db7c26acee96c54c869c7a6bafc0f2dfeb" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_real_lean.py", + "sha256": "51ab210da908b4e3d74fe179c41a414abf4c53e88458db33f7934ae0010337d7" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_mutation_harness.py", + "sha256": "ca90d5c5c8e48d163d35b2170f2e7f08352863c23bd73f1b383a73a2dcc16ff3" + } + ], + "platform": { + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "sys_maxsize": 9223372036854775807, + "RLIMIT_AS": [ + -1, + -1 + ], + "threading_TIMEOUT_MAX": 9223372036.0, + "effective_memory_mib_max": 8796093022207, + "effective_timeout_seconds_max": 2147483, + "cleanup_wait_seconds": 1.0 + }, + "behavior": [ + "Reject bool/nonfinite/oversized resource values before spawn; compare huge timeout integers before float conversion.", + "Memory limit is min(platform signed byte ceiling, finite inherited hard RLIMIT_AS); no clamp.", + "Normalize spawn/wait OSError, SubprocessError, OverflowError and ValueError to structured ERROR.", + "Explicit Popen ownership removes implicit context-manager wait. Timeout/error group SIGKILL and child fallback use bounded reap plus nonblocking poll.", + "Unreaped PID produces ERROR/diagnostics, halts subsequent modules, and leaves expected coverage incomplete. OS-uninterruptible child cannot be forced to exit by a finite caller wait.", + "Only FINISHED normal wait can become PASS; ERROR cannot become PASS from cleanup exit-zero/valid marker." + ], + "verification": { + "index": { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-resource-applicable.json", + "sha256": "0b853bc0eb0ff2ac374a9a4782cfb8d3a7207e253180b7bd6aa911aefa171058" + }, + "fresh_distinct_tests": 32, + "fresh_invocations": 33, + "new_resource_tests": 14, + "fresh_mutants": 19, + "fresh_mutant_kills": 19, + "old_wrapper_mutants_in_fresh_run": 10, + "new_resource_mutants": 9, + "reused_real_lean_tests": 9, + "reused_real_mutants": 6, + "single_fresh_full_suite": false, + "memory_oracle_mutant_refresh": true + }, + "source_history": { + "baseline_source_sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293", + "baseline_tests": 27, + "baseline_mutants": 16, + "baseline_preserved": "evidence/resource-baseline/ and existing g0-* receipts", + "prior_report_unchanged": "/workspace/cbz-0/discovery/kernel-replay-tool-report.json" + }, + "canonical_math_core_resolution": { + "observed_by_this_window_utc": "2026-10-29T18:50:42.767390+00:00", + "source_commit": "8151f592918a845bf19eb8eafaf8444540a32734", + "canonical_handoff_cut": "94747663830ca6645ea27c8820058168c08cf170", + "status_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/STATUS.md", + "receipt_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json", + "reported_resource_configuration": "LEAN_NUM_THREADS=2", + "component_scope": "Math core:116 owned constants,63 public theorem targets,26853 dependency closure; onlypropext/Classical.choice/Quot.sound; fullcomponentgate/adversecontrols recorded", + "project_proof_replayed_for_this_correction": false, + "adapter_production_code_or_tests_changed": false, + "adapter_27_tests_16_mutants_reused": true, + "federation_CBZ_claim": false, + "record_context": "Historical documentation-only correction at cd3a0021; adapter-unchanged/reused-27-16 fields describe that cut. The later resource-boundary source change has separate self_verification evidence above." + }, + "mathematical_or_actual_lean_replay_performed": false, + "full_cbz": false, + "g2": "NOT_ASSESSED_BY_REPLAY", + "external_writes": false, + "git_or_remote_mutation": false, + "process_review": { + "status": "PASS_SAME_PROVIDER_ENGINEERING_REVIEW", + "report": "/workspace/cbz-0/discovery/kernel-resource-postfix-review.md", + "sha256": "660d37c8e5c3374d8fee867182042c12d2fc863f2a0f63198e4b01b0c8ced8b2", + "provider_distinct_scientific_review": "NOT_ASSESSED_BY_THIS_ENGINEERING_REVIEW", + "math_verification_reuse_is_separate": true + }, + "delivery": "/workspace/cbz-0/delivery/kernel-resource-fix" +} diff --git a/cbz/contributions/math514/kernel_replay/resource-fix-report.md b/cbz/contributions/math514/kernel_replay/resource-fix-report.md new file mode 100644 index 000000000..23decfef5 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/resource-fix-report.md @@ -0,0 +1,19 @@ +# Resource-boundary repair + +The P2 finding on [PR 696](https://github.com/d6g8k5htny-coder/main/pull/696#discussion_r4416529549) applied to the published cd3a0021 wrapper: arbitrary memory integers could fail in preexec, large finite waits could overflow, and implicit process cleanup could wait without a bound. This repair validates quantities before spawn, normalizes subprocess resource errors, and owns cleanup explicitly. + +Memory is an integer from 64 MiB to the smaller of the signed platform byte ceiling and a finite inherited hard RLIMIT_AS, converted down to MiB. Timeout is an int/float greater than zero and at most min(floor(threading.TIMEOUT_MAX), 2147483) seconds; the second limit is the signed 32-bit poll-millisecond range rounded down. Bool, huge integers and nonfinite values fail before a child starts. No value is silently clamped. + +Timeout or abnormal wait kills the process group, attempts direct child signaling when group signaling fails, then waits at most one second to reap and may poll without blocking. A normal killable child is reaped before continuing. An unreaped PID produces ERROR and stops later modules. The report retains PID and diagnostics because finite cleanup cannot force an OS-uninterruptible child to exit. ERROR stays non-green even if cleanup observes exit zero plus a valid marker. + +Fresh evidence is split across `evidence/g0-resource-wrapper-tests.json` (30 tests), `g0-resource-additional-tests.json` (2 tests, including one strengthened existing memory test), and `g0-resource-preexec-test.json` (1 actual preexec failure): **32 distinct fresh tests, 33 invocations, 14 new resource tests**. The additional CLI test verifies oversized bounds yield exit 1 and an emitted non-green report. The memory oracle checks actual soft/hard RLIMIT_AS in the parent; it does not depend on a child Python assertion. + +`evidence/g0-resource-mutations.json` records **19/19 current-source assertion kills**: ten original wrapper cases plus nine new resource cases. Only the memory-limit mutant was refreshed after its test oracle changed, in `g0-resource-memory-mutant-refresh.json`. Errors, skips and timeouts do not count as kills. The original sixteen cases remain defined. + +The original 27-test/16-mutation generation remains in its existing receipts, with its exact changed source bytes preserved under `evidence/resource-baseline/`. Those receipts are not relabeled as new runs. Nine unchanged real-Lean tests and six unchanged real-driver/import-trust mutant receipts are reused: driver, fixture code, normal command/cwd/env, path/part checks and checker precedence are unchanged. `evidence/g0-resource-applicable.json` records the exact IDs and source hashes. The composition yields 41 distinct applicable tests and 25 distinct mutation cases, not a single fresh run of either total. + +Clean RED probes first demonstrated 18 assertion failures in ten tests and five in two further tests against the original wrapper. An earlier probe with two test-indexing errors is retained as failed development evidence. No real Lean fixture was compiled/replayed and no project math gate was repeated. Mathematical completion and provider-distinct process review remain separate obligations. + +The canonical Math-core gate already passed on source8151 with two threads at canonical947; see [STATUS_CORRECTION.md](STATUS_CORRECTION.md). The initial OOM is historical failed-run evidence. G2, full-project coverage and full CBZ remain separate. + +Current wrapper SHA-256: `27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce`. Prior wrapper SHA-256: `416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293`. [Focused engineering review](resource-postfix-review.md) passed with no blocking findings. It is a separate same-provider review; provider-distinct scientific review and hosted checks remain separate process obligations. diff --git a/cbz/contributions/math514/kernel_replay/resource-postfix-review.md b/cbz/contributions/math514/kernel_replay/resource-postfix-review.md new file mode 100644 index 000000000..ba4299217 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/resource-postfix-review.md @@ -0,0 +1,37 @@ +# Focused review of the kernel-replay resource repair + +Verdict: **PASS for the scoped P2 repair; no blocking findings.** This is a separate same-provider engineering review of the resource wrapper and its evidence, not provider-distinct scientific review or a new mathematical certification. + +## Assessed generation and scope + +Reviewed `resource-boundary-v2` in `/workspace/cbz-0/tools/kernel_replay`, including `kernel_replay.py`, the changed wrapper tests and mutation definitions, `README.md`, `RESOURCE_FIX.md`, and `evidence/g0-resource-applicable.json`. The assessed wrapper SHA-256 is `27da13a9455a62c2b192ff62f6222266cb483d323cf680f3d81d3b19b260b8ce`; driver SHA-256 is `24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66`; wrapper-test SHA-256 is `2ccdd956379bf3ddbc479a10604a10db7c26acee96c54c869c7a6bafc0f2dfeb`. The applicability manifest binds the remaining assessed sources and receipts. + +The comparison baseline was the published `cd3a0021a16437567ceda8c9a0f0525677042de2` contribution, obtained with read-only `git show`. The original external P2 is preserved in `discovery/kernel-resource-review-native.json` and corresponds to [discussion 4416529549](https://github.com/d6g8k5htny-coder/main/pull/696#discussion_r4416529549). + +No production or test source was changed during this review. No Git mutation, remote action, test execution, Lean compilation, real-fixture replay, or project mathematical gate was performed. Review activity consisted of source/evidence inspection, baseline comparisons, and metadata/count/hash checks on the newly supplied applicability manifest. + +## Source assessment + +- Memory is rejected before spawning unless it is an exact integer within the documented minimum and the smaller of the platform signed-byte ceiling and inherited finite hard `RLIMIT_AS`, converted down to MiB. Requested caps are not silently clamped. The timeout type, positive upper bound, and finite-value checks reject booleans, nonfinite floats, huge finite floats, and huge integers; the integer upper-bound comparison precedes `math.isfinite`, avoiding its huge-integer conversion overflow. +- Spawn and wait `OSError`, `SubprocessError`, `OverflowError`, and `ValueError` remain structured, non-green results. An actual preexec failure is represented by a retained passing regression receipt, in addition to injected exception coverage. +- Explicit `Popen` ownership removes the wrapper's implicit context-manager wait. Timeout and abnormal-wait paths signal the process group, attempt a child kill on other signaling failures, and use `wait(timeout=1.0)` followed only by nonblocking `poll` if needed. `ProcessLookupError` is handled as an exit race and still leads to bounded reaping. There is no wrapper cleanup `wait()` without a timeout. +- An unreaped PID is retained with cleanup diagnostics, forces `ERROR`, and stops subsequent module scheduling. Expected coverage stays non-green. The documented limitation is accurate: finite cleanup cannot force an OS-uninterruptible child to terminate. +- Only a normal completed wait sets `FINISHED`, and only `FINISHED` can become `PASS`. A spawn error, wait error, or timeout cannot become green even if cleanup returns zero and the output contains the success marker. Normal completion still requires exit zero and exactly one matching marker; nonzero exit with a marker remains fatal. + +The normal child command, `cwd`, environment construction, checker precedence, resource installation, output-tail handling, marker predicate, module/part resolution and binding validation are unchanged. `ExactReplay.lean`, `run_tests.py`, real-Lean tests, and mutation-accounting tests are byte-identical to the published baseline. The production change therefore composes with the earlier normal-path and replay-engine evidence; this review does not claim that the new wrapper bytes ran those real-Lean tests again. + +## Evidence assessment and reuse + +Read the fresh receipts rather than repeating them: + +- `g0-resource-wrapper-tests.json`: 30 passing tests, zero assertion failures, errors or skips; 17 original wrapper methods, 12 new resource methods, and one mutation-accounting method. +- `g0-resource-additional-tests.json`: two passing methods, covering oversized CLI exit/report behavior and the strengthened existing memory oracle. The latter prints actual soft/hard child `RLIMIT_AS` and checks both in the parent. +- `g0-resource-preexec-test.json`: one additional passing actual-preexec-failure method. + +The distinct-ID union is 32 tests across 33 invocations, including 14 new resource methods. The repeated memory method is not counted twice. All 20 path/hash bindings in the new applicability manifest matched their files, and its fresh IDs/counts agree with the receipt logs. + +`g0-resource-mutations.json` contains 19/19 current-wrapper mutant kills: ten original wrapper cases and nine resource cases. Each has actual assertion failures, zero test errors, zero skips and a failing test exit. Inspected traces address the intended defects, including oversized caps, inherited hard limits, boolean timeout, process-error result loss, unbounded cleanup, missing cleanup, erroneous success promotion and continuing after failed reaping. The retained `g0-resource-memory-mutant-refresh.json` establishes the memory kill with the strengthened parent oracle (`[-1, -1]` versus the requested finite soft/hard limits). The classifier continues to refuse errors, empty runs, skips and timeouts as kills. + +The original 25-plus-2 test receipts, their 27-test applicability receipt, and the original 16-mutant receipt remain separate. The three `evidence/resource-baseline/` files match their historical hashes and are byte-equal to the published baseline. All original mutation cases remain defined. The nine real-Lean methods and six driver/import-trust mutants retain their completed applicable evidence because their relevant sources, invocation semantics and dependencies are unchanged. Thus 41 distinct applicable tests and 25 applicable mutation cases are a composition, not claims of fresh 41-test or 25-mutant runs. The clean red receipts are separately identified; the initial red probe's two harness errors are preserved as failed development evidence rather than passing verification. + +This follows `/workspace/AGENTS.md`: completed applicable verification is reusable; a handoff alone is not a reason to repeat it. The existing successful source8151 Math-core gate with two threads remains established evidence. This repair neither downgrades that result nor repeats it. G2, source/build alignment, complete owned-module coverage, full CBZ acceptance, hosted checks and any provider-distinct process obligation remain separate from this engineering verdict. diff --git a/cbz/contributions/math514/kernel_replay/run_tests.py b/cbz/contributions/math514/kernel_replay/run_tests.py new file mode 100644 index 000000000..655cb006f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/run_tests.py @@ -0,0 +1,477 @@ +#!/usr/bin/env python3 +"""Structured unittest execution; only complete selected test bodies grade mutants.""" +import argparse +import functools +import inspect +import importlib +import io +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parent +RECEIPT_SCHEMA = 'cbz-unittest-lifecycle-v1' + + + +class IdentityMismatch(RuntimeError): + """A selected declaration no longer denotes its frozen body.""" + + +def function_chain(method): + """Bind actual ordinary function and code objects, including wraps links.""" + chain=[];seen=set() + while True: + function=method.__func__ if inspect.ismethod(method) else method + if not inspect.isfunction(function) or id(function) in seen: + return None + seen.add(id(function));chain.append((function,function.__code__)) + if not hasattr(function,'__wrapped__'): + return tuple(chain) + method=function.__wrapped__ + + +def same_function_chain(left,right): + return (left is not None and right is not None and len(left)==len(right) + and all(a is c and b is d for (a,b),(c,d) in zip(left,right))) + + +def capture_identity(test): + if not isinstance(test,unittest.TestCase): + return None + cls=type(test);name=getattr(test,'_testMethodName',None) + if type(name) is not str: + return None + instance=function_chain(getattr(test,name,None)) + declared=function_chain(getattr(cls,name,None)) + if instance is None or declared is None: + return None + return {'class':cls,'name':name, + 'id':cls.__module__+'.'+cls.__qualname__+'.'+name, + 'instance':instance,'declared':declared,'wrapper':None} + + +def identity_matches(test,binding): + if (binding is None or type(test) is not binding['class'] + or getattr(test,'_testMethodName',None)!=binding['name'] + or type(test).__module__+'.'+type(test).__qualname__+'.'+binding['name']!=binding['id']): + return False + if not same_function_chain(function_chain(getattr(type(test),binding['name'],None)),binding['declared']): + return False + live=getattr(test,binding['name'],None) + if binding['wrapper'] is not None and live is not binding['wrapper']: + return False + original=(binding['instance'][0][0] if binding['wrapper'] is not None else live) + return same_function_chain(function_chain(original),binding['instance']) + + +def suite_leaves(suite): + for child in suite: + if type(child) is unittest.TestSuite: + yield from suite_leaves(child) + else: + yield child + + +class IdentityLoader(unittest.TestLoader): + """Standard declarations only; never invoke module population factories.""" + def __init__(self): + super().__init__();self.bindings={};self.invalid=[] + + def remember(self,suite): + for test in suite_leaves(suite): + binding=capture_identity(test) + if binding is None: + self.invalid.append('unsupported selected declaration') + else: + self.bindings[id(test)]=binding + return suite + + def ordinary_test_class(self,testCaseClass): + # Construction and attribute dispatch must not rewrite the population. + if type(testCaseClass) is not type: + return False + for name in ('__init__','__new__','__getattribute__','__setattr__','__delattr__'): + if inspect.getattr_static(testCaseClass,name,None) is not inspect.getattr_static(unittest.TestCase,name,None): + return False + for base in testCaseClass.__mro__: + if '__getattr__' in base.__dict__: + return False + for name,value in base.__dict__.items(): + if name.startswith(self.testMethodPrefix) or name=='runTest': + function=value.__func__ if type(value) in (staticmethod,classmethod) else value + if not inspect.isfunction(function): + return False + return True + + def frozen_cases(self,testCaseClass,names): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + # Capture declaration identities before even standard construction. + declared={name:function_chain(getattr(testCaseClass,name,None)) for name in names} + suite=unittest.TestSuite(testCaseClass(name) for name in names) + self.remember(suite) + for test in suite_leaves(suite): + binding=self.bindings.get(id(test)) + original=declared.get(getattr(test,'_testMethodName',None)) + if binding is None or not same_function_chain(binding['declared'],original): + self.invalid.append('selected declaration changed during construction') + elif not same_function_chain(binding['instance'],original): + self.invalid.append('selected instance body changed during construction') + else: + binding['declared']=original + return suite + + def loadTestsFromTestCase(self,testCaseClass): + if not self.ordinary_test_class(testCaseClass): + self.invalid.append('unsupported TestCase constructor/metaclass/attribute dispatch') + return unittest.TestSuite() + names=self.getTestCaseNames(testCaseClass) + if not names and hasattr(testCaseClass,'runTest'): + names=['runTest'] + return self.frozen_cases(testCaseClass,names) + + def loadTestsFromModule(self,module,*,pattern=None): + # Derive the complete standard population before looking at load_tests. + if type(module) is not type(sys): + self.invalid.append('unsupported module attribute dispatch') + return unittest.TestSuite() + suites=[] + for name in sorted(module.__dict__): + value=module.__dict__[name] + if (isinstance(value,type) and issubclass(value,unittest.TestCase) + and value not in (unittest.TestCase,unittest.FunctionTestCase)): + suites.append(self.loadTestsFromTestCase(value)) + suite=unittest.TestSuite(suites) + if module.__dict__.get('load_tests') is not None: + self.invalid.append('unsupported module load_tests hook: '+module.__name__) + return suite + + def loadTestsFromName(self,name,module=None): + # The standard loader also accepts arbitrary callable suite factories. + # This profile supports modules, TestCase classes and exact methods only. + try: + parts=name.split('.') + if module is None: + for end in range(len(parts),0,-1): + try: + current=importlib.import_module('.'.join(parts[:end]));parts=parts[end:] + break + except ModuleNotFoundError as exc: + prefix='.'.join(parts[:end]) + if exc.name!=prefix and not prefix.startswith(str(exc.name)+'.'): + raise + else: + raise ValueError('selector module not found') + else: + current=module + parent=None + for part in parts: + parent=current + if inspect.ismodule(current): + if type(current) is not type(sys): + raise ValueError('unsupported module attribute dispatch') + current=current.__dict__[part] + elif isinstance(current,type): + if type(current) is not type: + raise ValueError('unsupported selector metaclass') + if issubclass(current,unittest.TestCase) and not self.ordinary_test_class(current): + raise ValueError('unsupported TestCase declaration traversal') + declared=inspect.getattr_static(current,part) + if not (inspect.isfunction(declared) or type(declared) in (type,staticmethod,classmethod)): + raise ValueError('unsupported selector descriptor') + current=getattr(current,part) + else: + raise ValueError('unsupported selector object traversal') + if inspect.ismodule(current): + return self.loadTestsFromModule(current) + if isinstance(current,type) and issubclass(current,unittest.TestCase): + return self.loadTestsFromTestCase(current) + if (isinstance(parent,type) and issubclass(parent,unittest.TestCase) + and (inspect.isfunction(current) or inspect.ismethod(current))): + return self.frozen_cases(parent,[parts[-1]]) + raise ValueError('unsupported callable or selector kind') + except (ImportError,AttributeError,KeyError,TypeError,ValueError) as exc: + self.invalid.append('unsupported test selector: '+name+' ('+type(exc).__name__+')') + return unittest.TestSuite() + + +def bound_population(suite,bindings=None,invalid=()): + cases=list(suite_leaves(suite));problems=list(invalid) + if bindings is None: + bindings={id(test):capture_identity(test) for test in cases} + for test in cases: + if not identity_matches(test,bindings.get(id(test))): + problems.append('selected class/function/code identity changed before execution') + return cases,bindings,problems + + +def require_identities(cases,bindings,invalid): + if any(not identity_matches(test,bindings.get(id(test))) for test in cases): + invalid.append('selected class/function/code identity changed during execution') + raise IdentityMismatch('selected body identity changed') + +def method_id(test): + """Use the actual selected method, rather than an overridable display id.""" + cls = type(test) + name = getattr(test, '_testMethodName', None) + if (not isinstance(test, unittest.TestCase) or cls.__module__ == 'unittest.loader' + or not isinstance(name, str) or not callable(getattr(test, name, None))): + return None + return cls.__module__ + '.' + cls.__qualname__ + '.' + name + + +def supported_method_shape(method): + """Only synchronous ordinary functions/methods are supported test bodies. + + Inspect every advertised decorator link. Returning suspended work is checked + separately, since decorators may intentionally omit __wrapped__ metadata. + """ + try: + inspect.unwrap(method) # Reject cyclic decorator metadata. + except ValueError: + return False + current = method + while True: + if (not (inspect.isfunction(current) or inspect.ismethod(current)) + or inspect.isgeneratorfunction(current) + or inspect.iscoroutinefunction(current) + or inspect.isasyncgenfunction(current)): + return False + if not hasattr(current, '__wrapped__'): + return True + current = current.__wrapped__ + + +def oracle_assertion(test, err): + """Credit an AssertionError only when the selected test's own module raised it. + + The innermost traceback frame outside unittest and its mock assertion helpers + must lie in that module's file; an AssertionError raised inside the code under + test is a crash, not an oracle. + """ + if not isinstance(err[1], AssertionError): + return False + frame = None + tb = err[2] + while tb is not None: + scope = tb.tb_frame.f_globals + if '__unittest' not in scope and scope.get('__name__') != 'unittest.mock': + frame = tb.tb_frame + tb = tb.tb_next + path = getattr(sys.modules.get(type(test).__module__), '__file__', None) + return (frame is not None and path is not None + and Path(frame.f_code.co_filename).resolve() == Path(path).resolve()) + + +def selected_cases(suite): + for test in suite: + if isinstance(test, unittest.TestSuite): + yield from selected_cases(test) + else: + yield test + + +class LifecycleResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.started_ids = [] + self.finished_ids = [] + self.body_entered_ids = [] + self.body_finished_ids = [] + self.body_assertion_ids = [] + self.lifecycle_failures = 0 + self.subtests = 0 + self.subtest_events = [] + self.assertion_events = [] + self.phase = {} + self.body_exception = {} + self.body_active = set() + self.dispatch_active = set() + self.lifecycle_depth = {} + self.invalid_execution = [] + + def startTest(self, test): + require_identities(self.identity_cases,self.identity_bindings,self.invalid_execution) + self.started_ids.append(method_id(test)) + self.phase[id(test)] = 'setup' + super().startTest(test) + + def stopTest(self, test): + self.finished_ids.append(method_id(test)) + super().stopTest(test) + + def addFailure(self, test, err): + if (self.phase.get(id(test)) == 'body' + and self.body_exception.get(id(test)) is err[1] + and oracle_assertion(test, err)): + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'body'}) + else: + self.lifecycle_failures += 1 + super().addFailure(test, err) + + def addSubTest(self, test, subtest, err): + self.subtests += 1 + phase = self.phase.get(id(test)) + if phase == 'body' and id(test) not in self.body_active: + phase = 'outside-body' + if getattr(subtest, 'test_case', None) is not test: + phase = 'foreign-parent' + outcome = 'success' if err is None else 'assertion' if oracle_assertion(test, err) else 'error' + self.subtest_events.append({'parent_id': method_id(test), 'phase': phase, 'outcome': outcome}) + if err is not None and outcome == 'assertion': + if phase == 'body': + self.body_assertion_ids.append(method_id(test)) + self.assertion_events.append({'parent_id': method_id(test), 'origin': 'subtest'}) + else: + self.lifecycle_failures += 1 + super().addSubTest(test, subtest, err) + + +def instrument(test, result, binding): + """Keep body exception identity until unittest reports it after this call exits.""" + for name, phase in (('_callSetUp', 'setup'), ('_callTearDown', 'teardown'), + ('doCleanups', 'cleanup')): + original = getattr(test, name) + + def lifecycle(*args, _original=original, _phase=phase, **kwargs): + result.phase[id(test)] = _phase + result.lifecycle_depth[id(test)] = result.lifecycle_depth.get(id(test), 0) + 1 + try: + return _original(*args, **kwargs) + finally: + result.lifecycle_depth[id(test)] -= 1 + setattr(test, name, lifecycle) + original_dispatch = test._callTestMethod + + def dispatch(*args, **kwargs): + if result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('test dispatch invoked inside a lifecycle hook') + return original_dispatch(*args, **kwargs) + result.dispatch_active.add(id(test)) + try: + return original_dispatch(*args, **kwargs) + finally: + result.dispatch_active.discard(id(test)) + test._callTestMethod = dispatch + original_body = getattr(test, test._testMethodName) + + @functools.wraps(original_body) + def body(*args, **kwargs): + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + if id(test) not in result.dispatch_active or result.lifecycle_depth.get(id(test), 0): + result.invalid_execution.append('selected method invoked outside body dispatch') + return original_body(*args, **kwargs) + result.phase[id(test)] = 'body' + result.body_entered_ids.append(method_id(test)) + result.body_active.add(id(test)) + try: + value = original_body(*args, **kwargs) + if value is not None: + result.invalid_execution.append('selected synchronous method must return None') + if inspect.iscoroutine(value) and inspect.getcoroutinestate(value) == inspect.CORO_CREATED: + value.close() # Closing a native unstarted coroutine executes no body. + return None + return value + except BaseException as exc: + result.body_exception[id(test)] = exc + raise + finally: + result.body_active.discard(id(test)) + result.body_finished_ids.append(method_id(test)) + require_identities(result.identity_cases,result.identity_bindings,result.invalid_execution) + # _Outcome calls addFailure *after* this wrapper unwinds. + setattr(test, test._testMethodName, body) + binding['wrapper']=body + + +def describe_suite(suite, selection): + cases = list(selected_cases(suite)) + selected = [method_id(test) for test in cases] + invalid = [] + if not selected: + invalid.append('empty selected population') + if any(item is None for item in selected): + invalid.append('synthetic or unsupported selected test') + if len(set(selected)) != len(selected): + invalid.append('duplicate selected method identity') + for test, identity in zip(cases, selected): + if getattr(test.run,'__func__',None) is not unittest.TestCase.run: + invalid.append('unsupported TestCase.run override') + if identity is not None and test.id() != identity: + invalid.append('display identity does not match selected method') + if identity is not None and not supported_method_shape(getattr(test, test._testMethodName)): + invalid.append('unsupported selected method shape: ' + identity) + return cases, {'selection': selection, 'selected_ids': selected, 'invalid_population': invalid} + + +def run_suite(suite, selection, bindings=None, invalid=()): + cases, bindings, identity_errors = bound_population(suite,bindings,invalid) + _, population = describe_suite(suite, selection) + population['invalid_population'].extend(identity_errors) + stream = io.StringIO() + result = LifecycleResult(stream=unittest.runner._WritelnDecorator(stream), + descriptions=True, verbosity=2) + result.identity_cases=cases;result.identity_bindings=bindings + if not population['invalid_population']: + for test in cases: + instrument(test, result,bindings[id(test)]) + try: + suite.run(result) + except IdentityMismatch: + result.stop() + population['invalid_population'].extend(result.invalid_execution) + # Render the ordinary summary for humans; grading uses the structured fields. + result.printErrors() + stream.write(f'Ran {result.testsRun} tests\n') + value = {'receipt_schema': RECEIPT_SCHEMA, 'selection': selection, + **population, + 'tests_run': result.testsRun, 'assertion_failures': len(result.failures), + 'errors': len(result.errors), 'skipped': len(result.skipped), + 'expected_failures': len(result.expectedFailures), + 'unexpected_successes': len(result.unexpectedSuccesses), + 'successful': result.wasSuccessful(), 'log': stream.getvalue()} + for name in ('started_ids', 'finished_ids', 'body_entered_ids', + 'body_finished_ids', 'body_assertion_ids', 'lifecycle_failures', 'subtests', + 'subtest_events', 'assertion_events'): + value[name] = getattr(result, name) + return value + + +def main(): + parser = argparse.ArgumentParser(allow_abbrev=False) + parser.add_argument('--output', required=True) + parser.add_argument('--test', action='append', default=[]) + parser.add_argument('--list', action='store_true', help='discover identities without running fixtures or test bodies') + args = parser.parse_args() + sys.path.insert(0, str(ROOT / 'tests')) + loader=IdentityLoader() + if args.test: + suite = loader.loadTestsFromNames(args.test) + else: + suite = loader.discover(str(ROOT / 'tests'), pattern='test_*.py') + selection = args.test or ['discover:test_*.py'] + if args.list: + _, population = describe_suite(suite, selection) + _,_,errors=bound_population(suite,loader.bindings,loader.invalid) + population['invalid_population'].extend(errors) + Path(args.output).write_text(json.dumps(population, indent=2) + '\n') + return 0 if population['selected_ids'] and not population['invalid_population'] else 1 + value = run_suite(suite, selection,loader.bindings,loader.invalid) + Path(args.output).write_text(json.dumps(value, indent=2) + '\n') + print(value['log'], end='') + complete = (not value['invalid_population'] and value['selected_ids'] + and all(value[key] == value['selected_ids'] for key in + ('started_ids', 'finished_ids', 'body_entered_ids', 'body_finished_ids'))) + return 0 if (complete and value['successful'] and not value['skipped'] + and not value['expected_failures'] and not value['unexpected_successes'] + and all(event['phase'] == 'body' and event['outcome'] == 'success' + for event in value['subtest_events']) + and not value['lifecycle_failures']) else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean b/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean new file mode 100644 index 000000000..e95ddfc5f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPrivate.lean @@ -0,0 +1,13 @@ +/- QUARANTINED NEGATIVE FIXTURE: deliberately environment-hacked private body. + Never imported by production mathematical code or certified as closed. -/ +module +import Lean +open Lean Elab Command + +run_cmd do + let name := mkPrivateName (← getEnv) `malformedPrivate + let decl := Declaration.thmDecl { + name, levelParams := [], type := mkConst `False, value := mkConst name } + -- Proper private visibility is essential: exported-only replay must miss + -- this defect, and therefore be killed by this negative fixture's test. + liftCoreM <| withOptions (fun opts => debug.skipKernelTC.set opts true) <| Lean.addDecl decl diff --git a/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean b/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean new file mode 100644 index 000000000..8d9ecce86 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tests/fixtures/BadPublic.lean @@ -0,0 +1,13 @@ +/- QUARANTINED NEGATIVE FIXTURE: deliberately environment-hacked theorem. + Never imported by production mathematical code or certified as closed. -/ +module +import Lean +open Lean Elab Command + +run_cmd do + let decl := Declaration.thmDecl { + name := `malformedPublic, levelParams := [], type := mkConst `False, + value := mkConst `malformedPublic } + -- Use the public declaration API so the exported module contains only its + -- axiom presentation and the malformed theorem body lives in private data. + liftCoreM <| withOptions (fun opts => debug.skipKernelTC.set opts true) <| Lean.addDecl decl diff --git a/cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean b/cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean new file mode 100644 index 000000000..86ce2955a --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tests/fixtures/Good.lean @@ -0,0 +1,12 @@ +module +public import Init + +public inductive ReplayToy where + | zero : ReplayToy + | next : ReplayToy → ReplayToy + +private theorem privateWitness : True := True.intro +public theorem publicWitness : True := privateWitness +public def publicData : ReplayToy := .next .zero +private def privateData : Nat := 7 +public theorem publicDataLaw : (7 : Nat) = 7 := rfl diff --git a/cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean b/cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean new file mode 100644 index 000000000..f802bd6af --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tests/fixtures/UnapprovedAxiom.lean @@ -0,0 +1,5 @@ +/- QUARANTINED NEGATIVE AXIOM-POLICY FIXTURE. Kernel validity does not approve + this declaration. G2 must reject its unapproved axiom independently. -/ +module +public import Init +public axiom unapprovedKernelReplayFixture : False diff --git a/cbz/contributions/math514/kernel_replay/tests/test_kernel_replay.py b/cbz/contributions/math514/kernel_replay/tests/test_kernel_replay.py new file mode 100644 index 000000000..13a23bfe7 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tests/test_kernel_replay.py @@ -0,0 +1,381 @@ +"""Acceptance tests for the bounded exact-module adapter. + +Changes that suppress manifest validation, failure propagation, time limits, +sequential waiting, or binding checks must make these tests fail. +""" +import importlib.util +import json +import os +import resource +import signal +import time +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest +from unittest import mock + +ROOT = Path(__file__).resolve().parents[1] +LEAN = Path(os.environ.get('CBZ_TEST_LEAN', '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean')) + + +class WrapperTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + spec = importlib.util.spec_from_file_location('kernel_replay', ROOT / 'kernel_replay.py') + cls.kr = importlib.util.module_from_spec(spec) + spec.loader.exec_module(cls.kr) + + def setUp(self): + self.tmp = tempfile.TemporaryDirectory(dir=ROOT / 'evidence') + self.addCleanup(self.tmp.cleanup) + self.base = Path(self.tmp.name) + self.source = self.base / 'Toy.lean' + self.source.write_text('theorem toy : True := True.intro\n') + (self.base / 'Toy.olean').write_bytes(b'opaque bytes for wrapper test') + + def manifest(self, names=('Toy',)): + for name in names: + (self.base / (name + '.lean')).write_text('theorem toy : True := True.intro\n') + (self.base / (name + '.olean')).write_bytes(b'opaque bytes for wrapper test') + return self.kr.prepare_manifest(str(LEAN), [str(self.base)], + [f'{n}={self.base / (n + ".lean")}' for n in names], []) + + def fake(self, code): + path = self.base / 'fake-lean' + path.write_text('#!/usr/bin/env python3\n' + code) + path.chmod(0o700) + return path + + def run_fake(self, code, names=('Toy',), timeout=4): + manifest = self.manifest(names) + fake = self.fake(code) + # Tests replace only executable binding, retaining the real sysroot: + manifest['lean']['path'] = str(fake) + manifest['lean']['sha256'] = self.kr.sha256(fake) + return self.kr.run_manifest(manifest, 256, timeout) + + def test_empty_coverage_rejected(self): + with self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(self.base)], [], []) + + def test_duplicate_modules_rejected(self): + with self.assertRaises(ValueError): + self.manifest(('Toy', 'Toy')) + + def test_missing_module_rejected(self): + with self.assertRaises((ValueError, FileNotFoundError)): + self.kr.prepare_manifest(str(LEAN), [str(self.base)], [f'Missing={self.source}'], []) + + def test_individual_olean_symlink_rejected(self): + linked = self.base / 'linked' + linked.mkdir() + (linked / 'Toy.olean').symlink_to(self.base / 'Toy.olean') + # Upstream selects lexical siblings. Canonicalizing a file symlink + # could bind destination private parts while replaying other parts. + with self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(linked)], [f'Toy={self.source}'], []) + + def test_search_root_and_part_symlinks_rejected(self): + linked = self.base / 'linked-root' + linked.symlink_to(self.base, target_is_directory=True) + with self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(linked)], [f'Toy={self.source}'], []) + part = self.base / 'Toy.olean.server' + part.symlink_to(self.base / 'Toy.olean') + with self.assertRaises(ValueError): + self.manifest() + + def test_expected_coverage_mismatch_rejected(self): + m = self.manifest() + m['expected_modules'].append('Missing') + self.assertFalse(self.kr.run_manifest(m, 256, 4)['ok']) + + def test_source_change_rejected(self): + m = self.manifest() + self.source.write_text('changed') + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('binding changed', r.get('error', '')) + + def test_part_change_rejected(self): + m = self.manifest() + (self.base / 'Toy.olean').write_bytes(b'changed') + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('compiled parts changed', r.get('error', '')) + + def test_new_private_part_rejected(self): + m = self.manifest() + (self.base / 'Toy.olean.server').write_bytes(b'added') + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('compiled parts changed', r.get('error', '')) + + def test_tool_binding_change_rejected(self): + m = self.manifest() + m['tool'][0]['sha256'] = '0' * 64 + r = self.kr.run_manifest(m, 256, 4) + self.assertFalse(r['ok']) + self.assertIn('tool binding changed', r.get('error', '')) + + def test_nonzero_exit_fatal_even_with_marker(self): + r = self.run_fake("import os\nprint('CBZ_KERNEL_REPLAY_OK ' + os.environ['CBZ_KERNEL_REPLAY_MODULE'])\nraise SystemExit(7)\n") + self.assertFalse(r['ok']) + self.assertEqual(r['results'][0]['returncode'], 7) + + def test_missing_or_wrong_marker_fatal(self): + for code in ("print('no replay')\n", "print('CBZ_KERNEL_REPLAY_OK Other')\n"): + with self.subTest(code=code): + self.assertFalse(self.run_fake(code)['ok']) + + def test_timeout_fatal(self): + r = self.run_fake('import time\ntime.sleep(5)\n', timeout=0.1) + self.assertFalse(r['ok']) + self.assertEqual(r['results'][0]['status'], 'TIMEOUT') + + def test_memory_limit_applied(self): + r = self.run_fake("import json, os, resource\nprint(json.dumps(resource.getrlimit(resource.RLIMIT_AS)))\nprint('CBZ_KERNEL_REPLAY_OK ' + os.environ['CBZ_KERNEL_REPLAY_MODULE'])\n") + self.assertTrue(r['ok'], r) + self.assertEqual(json.loads(r['results'][0]['stdout'].splitlines()[0]), [268435456, 268435456]) + + def test_one_child_at_a_time_and_exact_coverage(self): + lock = self.base / 'active.lock' + code = ("import os, time\nfrom pathlib import Path\n" + + f"p = Path({str(lock)!r})\n" + + "fd = os.open(p, os.O_CREAT | os.O_EXCL | os.O_WRONLY)\n" + + "time.sleep(0.05)\nos.close(fd)\np.unlink()\n" + + "print('CBZ_KERNEL_REPLAY_OK ' + os.environ['CBZ_KERNEL_REPLAY_MODULE'])\n") + r = self.run_fake(code, ('Toy', 'Other')) + self.assertTrue(r['ok'], r) + self.assertEqual([x['module'] for x in r['results']], ['Toy', 'Other']) + self.assertEqual(r['completed_count'], 2) + + + def resource_report(self, m, memory=256, timeout=4): + # Turn escaped production exceptions into assertion failures, so mutation + # accounting never confuses a harness error with a regression kill. + try: + return self.kr.run_manifest(m, memory, timeout) + except Exception as exc: + self.fail(f'resource boundary escaped structured report: {type(exc).__name__}: {exc}') + + def test_resource_memory_upper_bounds_before_spawn(self): + m = self.manifest() + for memory in (10**400, sys.maxsize // (1024*1024) + 1): + with self.subTest(memory_digits=len(str(memory))): + with mock.patch.object(self.kr, 'run_one', return_value={'ok': True, 'module': 'Toy'}): + r = self.resource_report(m, memory=memory) + self.assertFalse(r['ok']) + self.assertEqual(r['results'], []) + self.assertIn('memory_mib', r.get('error', '')) + + def test_resource_memory_hard_limit_before_spawn(self): + m = self.manifest() + with mock.patch.object(self.kr.resource, 'getrlimit', return_value=(128*1024*1024, 128*1024*1024)): + with mock.patch.object(self.kr, 'run_one', return_value={'ok': True, 'module': 'Toy'}): + r = self.resource_report(m, memory=256) + self.assertFalse(r['ok']) + self.assertEqual(r['results'], []) + self.assertIn('memory_mib', r.get('error', '')) + + def test_resource_boolean_arguments_rejected(self): + m = self.manifest() + for memory, timeout in ((True, 4), (256, True)): + with self.subTest(memory=memory, timeout=timeout): + with mock.patch.object(self.kr, 'run_one', return_value={'ok': True, 'module': 'Toy'}): + r = self.resource_report(m, memory, timeout) + self.assertFalse(r['ok']) + self.assertEqual(r['results'], []) + + def test_resource_timeout_upper_bounds_before_spawn(self): + m = self.manifest() + for timeout in (10**400, 1e100, 2147484, float('inf'), float('nan')): + with self.subTest(timeout_type=type(timeout).__name__): + with mock.patch.object(self.kr, 'run_one', return_value={'ok': True, 'module': 'Toy'}): + r = self.resource_report(m, timeout=timeout) + self.assertFalse(r['ok']) + self.assertEqual(r['results'], []) + self.assertIn('timeout_seconds', r.get('error', '')) + + def test_resource_valid_integer_and_float_timeouts(self): + code = "import os\nprint('CBZ_KERNEL_REPLAY_OK ' + os.environ['CBZ_KERNEL_REPLAY_MODULE'])\n" + for timeout in (4, 4.5): + with self.subTest(timeout=timeout): + self.assertTrue(self.run_fake(code, timeout=timeout)['ok']) + + def test_resource_spawn_exceptions_are_structured_errors(self): + m = self.manifest() + for exception in (subprocess.SubprocessError, OverflowError, ValueError, OSError): + with self.subTest(exception=exception.__name__): + with mock.patch.object(self.kr.subprocess, 'Popen', side_effect=exception('spawn rejected')): + r = self.resource_report(m) + self.assertFalse(r['ok']) + self.assertEqual(len(r['results']), 1, r) + self.assertEqual(r['results'][0]['status'], 'ERROR') + self.assertIn(exception.__name__, r['results'][0].get('error', '')) + + def test_resource_real_preexec_failure_is_structured(self): + m = self.manifest() + fake = self.fake("print('must not execute')\n") + m['lean'] = self.kr.binding(fake) + def reject_limit(): + raise ValueError('injected setrlimit failure') + with mock.patch.object(self.kr, 'limits', return_value=reject_limit): + r = self.resource_report(m) + self.assertFalse(r['ok']) + self.assertEqual(len(r['results']), 1, r) + self.assertEqual(r['results'][0]['status'], 'ERROR') + self.assertIn('SubprocessError', r['results'][0].get('error', '')) + self.assertNotIn('must not execute', r['results'][0]['stdout']) + + def test_resource_wait_errors_cannot_become_success(self): + m = self.manifest() + for exception in (OverflowError, ValueError, subprocess.SubprocessError, OSError): + with self.subTest(exception=exception.__name__): + child = mock.Mock(pid=12345, returncode=0) + child.__enter__ = mock.Mock(return_value=child) + child.__exit__ = mock.Mock(return_value=False) + child.wait.side_effect = [exception('wait rejected'), 0] + child.poll.return_value = 0 + def spawn(*args, **kwargs): + kwargs['stdout'].write(b'CBZ_KERNEL_REPLAY_OK Toy\n') + return child + with mock.patch.object(self.kr.subprocess, 'Popen', side_effect=spawn), mock.patch.object(self.kr.os, 'killpg'): + r = self.resource_report(m) + self.assertFalse(r['ok']) + self.assertEqual(len(r['results']), 1, r) + self.assertEqual(r['results'][0]['status'], 'ERROR') + self.assertIn(exception.__name__, r['results'][0].get('error', '')) + self.assertEqual(r['results'][0]['returncode'], 0) + self.assertFalse(child.__exit__.called, 'implicit Popen cleanup must not run') + + def test_resource_wait_error_kills_and_reaps_real_child(self): + m = self.manifest() + fake = self.fake('import time\ntime.sleep(0.2)\n') + m['lean'] = self.kr.binding(fake) + actual_popen = subprocess.Popen + children = [] + def spawn(*args, **kwargs): + child = actual_popen(*args, **kwargs) + children.append(child) + actual_wait = child.wait + first = True + def wait(timeout=None): + nonlocal first + if first: + first = False + raise OverflowError('injected platform wait overflow') + return actual_wait(timeout=timeout) + child.wait = wait + return child + with mock.patch.object(self.kr.subprocess, 'Popen', side_effect=spawn): + r = self.resource_report(m) + self.assertFalse(r['ok']) + self.assertEqual(r['results'][0]['status'], 'ERROR') + self.assertEqual(children[0].poll(), -signal.SIGKILL) + self.assertTrue(r['results'][0]['cleanup']['reaped']) + + def test_resource_timeout_kills_and_reaps_real_child(self): + started = time.monotonic() + r = self.run_fake('import time\ntime.sleep(30)\n', timeout=0.05) + self.assertLess(time.monotonic() - started, 3) + self.assertFalse(r['ok']) + result = r['results'][0] + self.assertEqual(result['status'], 'TIMEOUT') + self.assertEqual(result['returncode'], -signal.SIGKILL) + self.assertTrue(result.get('cleanup', {}).get('reaped')) + with self.assertRaises(ProcessLookupError): + os.kill(result['pid'], 0) + + def test_resource_unreapable_child_cleanup_is_bounded(self): + m = self.manifest() + child = mock.Mock(pid=12345, returncode=None) + child.__enter__ = mock.Mock(return_value=child) + child.__exit__ = mock.Mock(return_value=False) + waits = [] + def wait(timeout=None): + waits.append(timeout) + if timeout is None: + self.fail('unbounded child cleanup wait') + raise subprocess.TimeoutExpired('fake-child', timeout) + child.wait.side_effect = wait + child.poll.return_value = None + child.kill.side_effect = PermissionError('kill denied') + started = time.monotonic() + with mock.patch.object(self.kr.subprocess, 'Popen', return_value=child), mock.patch.object(self.kr.os, 'killpg', side_effect=PermissionError('group kill denied')): + r = self.resource_report(m, timeout=0.05) + self.assertLess(time.monotonic() - started, 1) + self.assertFalse(r['ok']) + result = r['results'][0] + self.assertEqual(result['status'], 'ERROR') + self.assertEqual(result['pid'], 12345) + self.assertFalse(result['cleanup']['reaped']) + self.assertIn('not reaped', result.get('error', '')) + self.assertTrue(all(t is not None and 0 < t <= 1 for t in waits)) + self.assertFalse(child.__exit__.called, 'implicit Popen cleanup must not run') + + def test_resource_unreaped_child_stops_further_modules(self): + m = self.manifest(('Toy', 'Other')) + child = mock.Mock(pid=12345, returncode=None) + child.__enter__ = mock.Mock(return_value=child) + child.__exit__ = mock.Mock(return_value=False) + child.wait.side_effect = subprocess.TimeoutExpired('fake-child', 0.05) + child.poll.return_value = None + with mock.patch.object(self.kr.subprocess, 'Popen', return_value=child), mock.patch.object(self.kr.os, 'killpg'): + r = self.resource_report(m, timeout=0.05) + self.assertFalse(r['ok']) + self.assertEqual(len(r['results']), 1, 'must stop serial scheduling when child cleanup failed') + self.assertEqual(r['expected_count'], 2) + self.assertEqual(r['results'][0]['status'], 'ERROR') + + def test_resource_cleanup_exceptions_remain_structured(self): + m = self.manifest() + for exception in (OverflowError, ValueError, subprocess.SubprocessError, OSError): + with self.subTest(exception=exception.__name__): + child = mock.Mock(pid=12345, returncode=None) + child.__enter__ = mock.Mock(return_value=child) + child.__exit__ = mock.Mock(return_value=False) + child.wait.side_effect = [subprocess.TimeoutExpired('fake-child', 0.05), exception('cleanup rejected')] + child.poll.return_value = None + with mock.patch.object(self.kr.subprocess, 'Popen', return_value=child), mock.patch.object(self.kr.os, 'killpg'): + r = self.resource_report(m, timeout=0.05) + self.assertFalse(r['ok']) + self.assertEqual(len(r['results']), 1, r) + self.assertEqual(r['results'][0]['status'], 'ERROR') + self.assertIn(exception.__name__, str(r['results'][0].get('cleanup', {}))) + + def test_resource_oversized_cli_arguments_emit_non_green_report(self): + manifest = self.base / 'manifest.json' + manifest.write_text(json.dumps(self.manifest())) + output = self.base / 'report.json' + for memory, timeout in (('1208925819614629174706176', '4'), ('256', '1e100')): + with self.subTest(memory=memory, timeout=timeout): + proc = subprocess.run([sys.executable, str(ROOT / 'kernel_replay.py'), 'run', + str(manifest), '--memory-mib', memory, '--timeout-seconds', timeout, + '--output', str(output)], capture_output=True, text=True, timeout=5) + self.assertEqual(proc.returncode, 1, proc.stderr) + value = json.loads(output.read_text()) + self.assertFalse(value['ok']) + self.assertEqual(value['results'], []) + self.assertIn('error', value) + self.assertEqual(value['g2_status'], 'NOT_ASSESSED') + + def test_strict_cli(self): + for args in (['--unknown'], ['run', '--help', '--bogus'], ['one', 'Toy', 'Other']): + p = subprocess.run([sys.executable, str(ROOT / 'kernel_replay.py'), *args], + capture_output=True, text=True) + self.assertNotEqual(p.returncode, 0, p.stdout + p.stderr) + + def test_module_names_and_unknown_fields_rejected(self): + for name in ('', '-v', 'Toy.*', 'Toy..Other', 'Toy/Other'): + with self.subTest(name=name), self.assertRaises(ValueError): + self.kr.prepare_manifest(str(LEAN), [str(self.base)], [f'{name}={self.source}'], []) + m = self.manifest() + m['ignored_flag'] = True + self.assertFalse(self.kr.run_manifest(m, 256, 4)['ok']) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/tests/test_mutation_harness.py b/cbz/contributions/math514/kernel_replay/tests/test_mutation_harness.py new file mode 100644 index 000000000..7b44710b8 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tests/test_mutation_harness.py @@ -0,0 +1,479 @@ +"""Real runner controls for body-only mutation kills and complete selected populations.""" +import copy +import importlib.util +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import textwrap +import unittest + +ROOT = Path(__file__).resolve().parents[1] +_spec = importlib.util.spec_from_file_location('mutations_under_test', ROOT / 'mutations.py') +mutations = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(mutations) + + +class MutationHarnessTests(unittest.TestCase): + def run_fixture(self, methods, selection='fixture.Case', module_tail=''): + source = 'import unittest\nclass Case(unittest.TestCase):\n' + textwrap.indent(textwrap.dedent(methods), ' ') + '\n' + module_tail + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', selection], + capture_output=True, text=True, timeout=10) + self.assertTrue(output.exists(), p.stderr) + value = json.loads(output.read_text()) + return mutations.classify(value, p.returncode), value, p.returncode + + def test_setup_assertion_is_not_a_kill(self): + outcome, value, _ = self.run_fixture(''' + def setUp(self): self.fail('setup only') + def test_one(self): pass + ''') + self.assertEqual(outcome, 'ERROR', value) + + def test_body_assertion_kills_after_all_selected_bodies_finish(self): + outcome, value, _ = self.run_fixture(''' + def test_one(self): self.fail('body assertion') + def test_two(self): pass + ''') + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['body_entered_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_finished_ids'], ['fixture.Case.test_one', 'fixture.Case.test_two']) + self.assertEqual(value['body_assertion_ids'], ['fixture.Case.test_one']) + + def test_checker_origin_assertion_is_not_a_kill(self): + # Code under test compiled from another file: its AssertionError is a crash, not an oracle. + tail = ("CHECKER = {}\n" + "exec(compile('def check(value):\\n raise AssertionError(\"checker runtime crash\")\\n'," + " 'checker.py', 'exec'), CHECKER)\n") + for methods in ("def test_one(self): CHECKER['check'](1)", + "def test_one(self):\n with self.subTest(i=1): CHECKER['check'](1)"): + with self.subTest(methods=methods): + outcome, value, _ = self.run_fixture(methods, module_tail=tail) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(value['body_assertion_ids'], []) + outcome, value, _ = self.run_fixture( + "def test_one(self):\n try: CHECKER['check'](1)\n except AssertionError: pass\n self.fail('oracle')", + module_tail=tail) + self.assertEqual(outcome, 'KILLED', value) + outcome, value, _ = self.run_fixture( + "def test_one(self):\n from unittest import mock\n m = mock.Mock(); m(1); m.assert_called_once_with(2)") + self.assertEqual(outcome, 'KILLED', value) + + def test_dispatch_hook_assertion_without_selected_method_is_error(self): + outcome, value, _ = self.run_fixture("def _callTestMethod(self, method): self.fail('dispatch hook only')\ndef test_one(self): raise RuntimeError('selected body was entered')") + self.assertEqual(outcome, 'ERROR', value) + + def test_selected_method_invoked_from_lifecycle_is_error(self): + for source in ("def setUp(self): self.test_one()\ndef test_one(self): self.fail('called from setup')", + "def setUp(self): self._callTestMethod(self.test_one)\ndef test_one(self): self.fail('dispatch called from setup')", + "def tearDown(self): self.test_one()\ndef test_one(self): pass", + "def test_one(self):\n if not hasattr(self, 'scheduled'):\n self.scheduled = True\n self.addCleanup(self.test_one)"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_clean_identity_survives(self): + outcome, value, _ = self.run_fixture('def test_one(self): pass') + self.assertEqual(outcome, 'SURVIVED', value) + + def test_lifecycle_failures_never_kill_even_with_body_assertion(self): + cases = [ + "def tearDown(self): self.fail('teardown')\ndef test_one(self): pass", + "def test_one(self): self.addCleanup(self.fail, 'cleanup')", + "def tearDown(self): self.fail('teardown')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n self.addCleanup(self.fail, 'cleanup')\n self.fail('body')", + "@classmethod\ndef setUpClass(cls): raise AssertionError('class setup')\ndef test_one(self): pass", + "@classmethod\ndef tearDownClass(cls): raise AssertionError('class teardown')\ndef test_one(self): self.fail('body')", + "@classmethod\ndef setUpClass(cls): cls.addClassCleanup(lambda: (_ for _ in ()).throw(AssertionError('class cleanup')))\ndef test_one(self): self.fail('body')", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_errors_skips_and_expected_failures_are_errors(self): + cases = [ + "def test_one(self): raise RuntimeError('body runtime')", + "def setUp(self): raise RuntimeError('setup runtime')\ndef test_one(self): self.fail('body')", + "@unittest.skip('skip')\ndef test_one(self): pass", + "@unittest.expectedFailure\ndef test_one(self): self.fail('expected')", + "@unittest.expectedFailure\ndef test_one(self): pass", + ] + for source in cases: + with self.subTest(source=source): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_body_scoped_subtest_assertions_kill_without_changing_parent_population(self): + for source, failures in (("def test_one(self):\n with self.subTest(i=1): self.fail('first')\n with self.subTest(i=2): self.fail('second')", 2), + ("def test_one(self):\n with self.subTest(i=1): pass\n self.fail('body')", 1)): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'KILLED', value) + self.assertEqual(value['selected_ids'], ['fixture.Case.test_one']) + self.assertEqual(value['assertion_failures'], failures) + outcome, value, _ = self.run_fixture("def test_one(self):\n with self.subTest(i=1): pass") + self.assertEqual(outcome, 'SURVIVED', value) + + def test_foreign_subtest_parent_cannot_claim_selected_body_assertion(self): + outcome, value, _ = self.run_fixture("def test_one(self):\n import sys\n foreign = unittest.case._SubTest(unittest.FunctionTestCase(lambda: None), 'foreign', {})\n try: raise AssertionError('foreign parent assertion')\n except AssertionError: self._outcome.result.addSubTest(self, foreign, sys.exc_info())") + self.assertEqual(outcome, 'ERROR', value) + + def test_lifecycle_subtests_and_subtest_errors_are_errors(self): + for source in ("def setUp(self):\n with self.subTest(i=1): self.fail('setup subtest')\ndef test_one(self): pass", + "def tearDown(self):\n with self.subTest(i=1): self.fail('teardown subtest')\ndef test_one(self): self.fail('body')", + "def test_one(self):\n with self.subTest(i=1): raise RuntimeError('subtest runtime')"): + outcome, value, _ = self.run_fixture(source) + self.assertEqual(outcome, 'ERROR', value) + + def test_empty_duplicate_synthetic_and_spoofed_population_is_error(self): + cases = [ + ('def test_one(self): pass', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite()'), + ('def test_one(self): self.fail("body")', 'fixture', 'def load_tests(loader, tests, pattern): return unittest.TestSuite([Case("test_one"), Case("test_one")])'), + ('def test_one(self): pass', 'fixture.Missing', ''), + ('def id(self): return "fixture.Case.test_forged"\ndef test_one(self): self.fail("body")', 'fixture.Case', ''), + ] + for source, selection, tail in cases: + with self.subTest(selection=selection, tail=tail): + outcome, value, _ = self.run_fixture(source, selection, tail) + self.assertEqual(outcome, 'ERROR', value) + + def test_population_listing_does_not_execute_fixtures_or_bodies(self): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + (root / 'tests/fixture.py').write_text("import unittest\nclass Case(unittest.TestCase):\n @classmethod\n def setUpClass(cls): raise AssertionError('fixture must not run')\n def test_one(self): raise RuntimeError('body must not run')\n") + output = root / 'population.json' + p = subprocess.run([sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case', '--list'], + capture_output=True, text=True, timeout=10) + self.assertEqual(p.returncode, 0, p.stderr) + self.assertEqual(json.loads(output.read_text()), + {'selection': ['fixture.Case'], 'selected_ids': ['fixture.Case.test_one'], + 'invalid_population': []}) + + def test_summary_without_lifecycle_receipt_fails_closed(self): + old = dict(tests_run=1, assertion_failures=1, errors=0, skipped=0, + expected_failures=0, unexpected_successes=0, successful=False) + self.assertEqual(mutations.classify(old, 1), 'ERROR') + self.assertEqual(mutations.classify({}, 1), 'ERROR') + self.assertEqual(mutations.classify(None, 1), 'ERROR') + + def test_forged_or_missing_accounting_is_error(self): + _, receipt, code = self.run_fixture('def test_one(self): self.fail("body")') + for key in ('receipt_schema', 'selected_ids', 'started_ids', 'finished_ids', + 'body_entered_ids', 'body_finished_ids', 'body_assertion_ids', + 'lifecycle_failures', 'subtests', 'invalid_population', 'subtest_events', 'assertion_events'): + with self.subTest(missing=key): + value = copy.deepcopy(receipt) + value.pop(key, None) + self.assertEqual(mutations.classify(value, code), 'ERROR') + for changes in ({'tests_run': True}, {'tests_run': 1.0}, {'assertion_failures': '1'}, + {'successful': 0}, {'lifecycle_failures': -1}, {'subtests': True}, + {'body_entered_ids': []}, {'body_finished_ids': []}, + {'finished_ids': []}, {'body_assertion_ids': []}, + {'body_assertion_ids': ['fixture.Case.test_forged']}, + {'selected_ids': ['synthetic']}, + {'selected_ids': ['unittest.loader._FailedTest.test_one']}, + {'selected_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'started_ids': ['fixture.Case.test_one', 'fixture.Case.test_one']}, + {'errors': 1}, {'skipped': 1}, {'expected_failures': 1}, + {'unexpected_successes': 1}, {'assertion_failures': 2}, + {'subtests': 1}, {'assertion_events': []}, + {'subtest_events': [{'parent_id': 'fixture.Case.test_one', 'phase': 'body', 'outcome': 'assertion'}]}): + with self.subTest(changes=changes): + self.assertEqual(mutations.classify({**receipt, **changes}, code), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify({**receipt, 'selection': ['fixture.Other']}, code, ['fixture.Other']), 'ERROR') + self.assertEqual(mutations.classify(receipt, code, ['fixture.Case'], ['fixture.Case.test_other']), 'ERROR') + for exit_code in (2, -9, True): + self.assertEqual(mutations.classify(receipt, exit_code), 'ERROR') + + +class LazyBodyHarnessTests(unittest.TestCase): + """A call returning suspended work must never establish complete test execution.""" + + def run_lazy_fixture(self, methods, definitions='', listing=False): + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / 'tests').mkdir() + shutil.copy2(ROOT / 'run_tests.py', root / 'run_tests.py') + events = root / 'events' + source = ('import unittest, functools\nfrom pathlib import Path\n' + 'def record(label):\n with Path(' + repr(str(events)) + ').open("a") as out: out.write(label + "\\n")\n' + + textwrap.dedent(definitions) + '\nclass Case(unittest.TestCase):\n' + + textwrap.indent(textwrap.dedent(methods), ' ')) + (root / 'tests/fixture.py').write_text(source) + output = root / 'result.json' + command = [sys.executable, '-B', '-S', str(root / 'run_tests.py'), + '--output', str(output), '--test', 'fixture.Case'] + if listing: + command.append('--list') + p = subprocess.run(command, capture_output=True, text=True, timeout=10) + self.assertTrue(output.is_file(), p.stderr) + value = json.loads(output.read_text()) + observed = events.read_text().splitlines() if events.exists() else [] + return mutations.classify(value, p.returncode), value, observed, p.stderr + + def test_ordinary_synchronous_body_positives_remain_supported(self): + survived, value, events, _ = self.run_lazy_fixture("def test_one(self): record('ordinary')") + self.assertEqual(survived, 'SURVIVED', value) + self.assertEqual(events, ['ordinary']) + killed, value, events, _ = self.run_lazy_fixture("def test_one(self):\n record('assertion')\n self.fail('real body assertion')") + self.assertEqual(killed, 'KILLED', value) + self.assertEqual(events, ['assertion']) + + def test_declared_lazy_method_shapes_refuse_mixed_population_before_execution(self): + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + methods = lazy + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body assertion')" + outcome, value, events, _ = self.run_lazy_fixture(methods) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + self.assertTrue(value['invalid_population'], value) + _, population, events, _ = self.run_lazy_fixture(methods, listing=True) + self.assertTrue(population['invalid_population'], population) + self.assertEqual(events, []) + + def test_wrapped_lazy_method_shapes_refuse_before_execution(self): + definitions = ''' + def wrap(method): + @functools.wraps(method) + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + for lazy in ("def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self):\n record('lazy advanced')\n yield None", + "async def test_a_lazy(self): record('lazy advanced')"): + with self.subTest(shape=lazy): + outcome, value, events, _ = self.run_lazy_fixture('@wrap\n' + lazy + "\ndef test_b_assertion(self): self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, [], value) + + def test_sync_lazy_returns_refuse_without_advancing_suspended_work(self): + definitions = ''' + def generator(): + record('generator advanced') + yield None + async def coroutine(): record('coroutine advanced') + async def async_generator(): + record('async generator advanced') + yield None + class Awaitable: + def __await__(self): + record('custom awaitable advanced') + yield None + ''' + for expression in ('generator()', 'coroutine()', 'async_generator()', 'Awaitable()'): + with self.subTest(expression=expression): + methods = "def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')" + outcome, value, events, stderr = self.run_lazy_fixture(methods, definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + self.assertTrue(value['invalid_population'], value) + self.assertNotIn('was never awaited', stderr) + + def test_decorator_without_wrapped_metadata_cannot_hide_lazy_return(self): + definitions = ''' + def hide(method): + def wrapper(*args, **kwargs): + record('decorator executed') + return method(*args, **kwargs) + return wrapper + ''' + outcome, value, events, _ = self.run_lazy_fixture("@hide\ndef test_a_lazy(self):\n record('lazy advanced')\n yield None\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['decorator executed', 'ordinary assertion'], value) + + def test_all_non_none_returns_refuse_without_iterating_custom_objects(self): + definitions = "class DeferredIterable:\n def __iter__(self):\n record('unknown iterable advanced')\n yield None" + for expression in ('False', '0', '[]', 'DeferredIterable()'): + with self.subTest(expression=expression): + outcome, value, events, _ = self.run_lazy_fixture("def test_a_return(self):\n record('outer method')\n return " + expression + "\ndef test_b_assertion(self):\n record('ordinary assertion')\n self.fail('body')", definitions) + self.assertEqual(outcome, 'ERROR', value) + self.assertEqual(events, ['outer method', 'ordinary assertion'], value) + + +import os +import shutil +import subprocess + +class IdentityHarnessTests(unittest.TestCase): + """Real ordinary-body controls for loader and in-process identity binding.""" + + def run_identity_fixture(self, label, source, selectors=()): + import hashlib + with tempfile.TemporaryDirectory() as temporary: + root=Path(temporary);(root/'tests').mkdir() + runner=root/'run_tests.py' + shutil.copy2(ROOT/'run_tests.py',runner) + events=root/'events' + header=('import unittest\nfrom pathlib import Path\n' + +'def record(label):\n with Path('+repr(str(events))+').open("a") as out: out.write(label+"\\n")\n') + fixture=root/'tests'/'test_identity.py' + fixture.write_text(header+source) + output=root/'receipt.json' + command=[sys.executable,'-B','-S',str(runner),*[],'--output',str(output)] + for selector in selectors:command.extend(['--test',selector]) + p=subprocess.run(command,capture_output=True,text=True,timeout=15) + self.assertTrue(output.exists(),p.stderr) + value=json.loads(output.read_text()) + outcome=mutations.classify(value,p.returncode) + observed=events.read_text().splitlines() if events.exists() else [] + record={'label':label,'optimize':sys.flags.optimize,'fixture_source':header+source, + 'fixture_sha256':hashlib.sha256(fixture.read_bytes()).hexdigest(), + 'command':command,'exit_code':p.returncode,'outcome':outcome, + 'events':observed,'receipt':value,'stdout':p.stdout,'stderr':p.stderr} + destination=os.environ.get('CBZ_IDENTITY_CONTROL_EVIDENCE') + if destination: + out=Path(destination);out.mkdir(parents=True,exist_ok=True) + (out/(label+'.json')).write_text(json.dumps(record,sort_keys=True,indent=2)+'\n') + return outcome,value,observed + + def test_module_alias_subclass_and_population_hooks_refused_before_execution(self): + base=('class C(unittest.TestCase):\n' + +' def test_first(self): record("first")\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + hooks=[('alias','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('alias-assertion','def load_tests(loader, tests, pattern):\n record("hook")\n C.test_second=C.test_first\n return tests\n'), + ('subclass','def load_tests(loader, tests, pattern):\n record("hook")\n def replacement(self): record("replacement")\n R=type("C",(C,),{"test_first":replacement,"test_second":replacement,"__module__":__name__,"__qualname__":"C"})\n globals()["C"]=R\n return loader.loadTestsFromTestCase(R)\n'), + ('omission','def load_tests(loader, tests, pattern):\n record("hook")\n return unittest.TestSuite([C("test_first")])\n')] + for label,hook in hooks: + with self.subTest(shape=label): + source=base+hook + if label=='alias-assertion':source=source.replace('def test_first(self): record("first")','def test_first(self):\n record("first")\n self.fail("first body assertion")') + outcome,value,events=self.run_identity_fixture('hook-'+label,source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + source=('class Hidden(unittest.TestCase):\n def test_hidden(self):\n record("hidden")\n self.fail("hidden body retained")\n' + +'class Visible(unittest.TestCase):\n def test_visible(self): record("visible")\n' + +'def __dir__():\n record("module-dir")\n return ["Visible"]\n') + outcome,value,events=self.run_identity_fixture('module-dir-cannot-hide',source) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['hidden','visible'],value) + self.assertEqual(len(value['selected_ids']),2,value) + + def test_named_class_and_method_selection_preserve_exact_population(self): + source='class C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self): record("second")\n' + for label,selectors,wanted in [('class',('test_identity.C',),['first','second']), + ('method',('test_identity.C.test_second',),['second'])]: + with self.subTest(selector=label): + outcome,value,events=self.run_identity_fixture('named-'+label,source,selectors) + self.assertEqual(outcome,'SURVIVED',value) + self.assertEqual(events,wanted,value) + outcome,value,events=self.run_identity_fixture('named-assertion',source.replace('record("first")','record("first"); self.fail("body")'),('test_identity.C',)) + self.assertEqual(outcome,'KILLED',value) + self.assertEqual(events,['first','second'],value) + + def test_callable_factory_selector_is_refused_before_factory_or_body(self): + source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'def factory():\n record("factory")\n return unittest.TestSuite([C("test_one")])\n') + outcome,value,events=self.run_identity_fixture('callable-factory',source,('test_identity.factory',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + proxy_source=('class C(unittest.TestCase):\n def test_one(self): record("body")\n' + +'class Proxy:\n def __getattr__(self,name):\n record("proxy")\n return C\nproxy=Proxy()\n') + outcome,value,events=self.run_identity_fixture('selector-proxy',proxy_source,('test_identity.proxy.C.test_one',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + constructor_fixtures=[ + ('init','class C(unittest.TestCase):\n def __init__(self,*a,**k):\n record("constructor")\n super().__init__(*a,**k)\n type(self).test_second=type(self).test_first\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n'), + ('new','class C(unittest.TestCase):\n def __new__(cls,*a,**k):\n record("constructor")\n return super().__new__(cls)\n def test_one(self): record("body")\n'), + ('metaclass','class Meta(type):\n def __call__(cls,*a,**k):\n record("metaclass")\n return super().__call__(*a,**k)\nclass C(unittest.TestCase,metaclass=Meta):\n def test_one(self): record("body")\n'), + ('getattribute','class C(unittest.TestCase):\n def __getattribute__(self,name):\n record("attribute")\n return super().__getattribute__(name)\n def test_one(self): record("body")\n'), + ('setattr','class C(unittest.TestCase):\n def __setattr__(self,name,value):\n record("attribute")\n return super().__setattr__(name,value)\n def test_one(self): record("body")\n'), + ] + constructor_fixtures.append(('descriptor','class Descriptor:\n def __init__(self,original): self.original=original\n def __get__(self,instance,owner):\n record("descriptor")\n owner.test_second=owner.test_first\n return owner.test_first\nclass C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n test_second=Descriptor(test_second)\n')) + for kind in ('staticmethod','classmethod'): + constructor_fixtures.append(('descriptor-'+kind,'class Alias('+kind+'):\n def __get__(self,instance,owner):\n record("descriptor-subclass")\n owner.test_second=owner.test_first\n return owner.test_first.__get__(instance,owner)\nclass C(unittest.TestCase):\n def test_first(self): record("first")\n def test_second(self):\n record("second")\n self.fail("retained second body")\n test_second=Alias(test_second)\n')) + constructor_fixtures.append(('special-descriptor','class InitDescriptor:\n def __get__(self,instance,owner):\n record("special-descriptor")\n owner.__init__=unittest.TestCase.__init__\n return owner.__init__.__get__(instance,owner)\nclass C(unittest.TestCase):\n __init__=InitDescriptor()\n def test_one(self): record("body")\n')) + for label,source in constructor_fixtures: + for selection in [(),('test_identity.C',),('test_identity.C.'+('test_first' if label=='init' else 'test_second' if label.startswith('descriptor') else 'test_one'),)]: + with self.subTest(constructor=label,selector=selection): + outcome,value,events=self.run_identity_fixture('construction-'+label+'-'+str(len(selection))+'-'+('method' if selection and selection[0].count('.')==2 else 'class'),source,selection) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + helper_source=('class Alias(staticmethod):\n def __get__(self,instance,owner):\n record("helper-descriptor")\n return owner.test_one.__get__(instance,owner)\n' + +'class C(unittest.TestCase):\n def test_one(self): record("test")\n def helper(self):\n record("retained-helper")\n self.fail("original helper body")\n helper=Alias(helper)\n') + outcome,value,events=self.run_identity_fixture('selector-helper-descriptor',helper_source,('test_identity.C.helper',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_class_fixture_function_and_code_substitutions_are_refused(self): + base=('def replacement(self): record("replacement")\n' + +'class C(unittest.TestCase):\n' + +' @classmethod\n def setUpClass(cls):\n record("class-setup")\n CHANGE\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + for label,change in [('function','cls.test_one=replacement'),('code','cls.test_one.__code__=replacement.__code__'), + ('same-code-function','cls.test_one=__import__("types").FunctionType(cls.test_one.__code__,cls.test_one.__globals__)')]: + with self.subTest(change=label): + outcome,value,events=self.run_identity_fixture('class-fixture-'+label,base.replace('CHANGE',change)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['class-setup'],value) + self.assertTrue(value['invalid_population'],value) + + source=('class C(unittest.TestCase):\n' + +' def setUp(self):\n record("setup")\n self.__class__=type("C",(type(self),),{"__module__":__name__,"__qualname__":"C"})\n' + +' def test_one(self):\n record("original")\n self.fail("original body retained")\n') + outcome,value,events=self.run_identity_fixture('instance-class-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['setup'],value) + self.assertTrue(value['invalid_population'],value) + + def test_postload_substitution_refused_before_any_fixture(self): + spec=importlib.util.spec_from_file_location('identity_runtime_probe',ROOT/'run_tests.py') + runtime=importlib.util.module_from_spec(spec);spec.loader.exec_module(runtime) + events=[] + class Case(unittest.TestCase): + @classmethod + def setUpClass(cls):events.append('class-setup') + def setUp(self):events.append('setup') + def test_one(self):events.append('original') + loader=runtime.IdentityLoader();suite=loader.loadTestsFromTestCase(Case) + def replacement(self):events.append('replacement') + Case.test_one=replacement + value=runtime.run_suite(suite,['probe.Case'],loader.bindings,loader.invalid) + self.assertTrue(value['invalid_population'],value) + self.assertEqual(events,[],value) + self.assertEqual(value['tests_run'],0,value) + + def test_custom_testcase_run_is_refused_before_execution(self): + source=('class C(unittest.TestCase):\n' + +' def run(self,result=None):\n record("custom-run")\n return super().run(result)\n' + +' def test_one(self): record("body")\n') + outcome,value,events=self.run_identity_fixture('custom-run',source,('test_identity.C',)) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,[],value) + self.assertTrue(value['invalid_population'],value) + + def test_identity_change_during_body_is_not_a_clean_kill(self): + source=('class C(unittest.TestCase):\n' + +' def test_first(self):\n record("first")\n type(self).test_second=type(self).test_first\n' + +' def test_second(self):\n record("second")\n self.fail("retained second body")\n') + outcome,value,events=self.run_identity_fixture('during-body-change',source) + self.assertEqual(outcome,'ERROR',value) + self.assertEqual(events,['first'],value) + self.assertTrue(value['invalid_population'],value) + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/tests/test_real_lean.py b/cbz/contributions/math514/kernel_replay/tests/test_real_lean.py new file mode 100644 index 000000000..ac48816ce --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tests/test_real_lean.py @@ -0,0 +1,148 @@ +"""Actual installed Lean 4.34.1 tests; no project proof replay.""" +import importlib.util +import json +import os +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest + +ROOT = Path(__file__).resolve().parents[1] +LEAN = Path(os.environ.get('CBZ_TEST_LEAN', '/home/agent/.elan/toolchains/leanprover--lean4---v4.34.1/bin/lean')) + + +class RealLeanTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + spec = importlib.util.spec_from_file_location('kernel_replay', ROOT / 'kernel_replay.py') + cls.kr = importlib.util.module_from_spec(spec) + spec.loader.exec_module(cls.kr) + cls.base = ROOT / 'evidence/compiled-fixtures' + cls.base.mkdir(exist_ok=True) + cls.fixtures = ROOT / 'tests/fixtures' + for name in ('Good', 'BadPublic', 'BadPrivate', 'UnapprovedAxiom'): + p = subprocess.run([str(LEAN), '-o', str(cls.base / (name + '.olean')), + str(cls.fixtures / (name + '.lean'))], cwd=cls.fixtures, + capture_output=True, text=True, timeout=60) + if p.returncode: + raise AssertionError(name + ': ' + p.stdout + p.stderr) + + def replay(self, name): + m = self.kr.prepare_manifest(str(LEAN), [str(self.base)], + [f'{name}={self.fixtures / (name + ".lean")}'], []) + r = self.kr.run_manifest(m, 8192, 60) + (ROOT / 'evidence' / ('real-' + name + '.json')).write_text(json.dumps(r, indent=2) + '\n') + return r + + def test_good_public_private_inductive_all_parts(self): + r = self.replay('Good') + self.assertEqual(len(r['manifest']['modules'][0]['parts']), 3) + self.assertTrue(r['ok'], r) + self.assertEqual(r['completed_count'], 1) + + def test_public_self_reference_rejected(self): + r = self.replay('BadPublic') + self.assertFalse(r['ok'], r) + self.assertEqual(r['results'][0]['status'], 'FAIL') + self.assertIn('malformedPublic', r['results'][0]['stdout']) + + def test_private_self_reference_rejected(self): + r = self.replay('BadPrivate') + self.assertFalse(r['ok'], r) + self.assertIn('malformedPrivate', r['results'][0]['stdout']) + + def test_unapproved_axiom_kernel_valid_but_independent_policy_rejects(self): + r = self.replay('UnapprovedAxiom') + self.assertTrue(r['ok'], r) + self.assertEqual(r['g2_status'], 'NOT_ASSESSED') + check = self.base / 'FixtureAxiomPolicy.lean' + check.write_text('import Lean\nimport UnapprovedAxiom\nopen Lean Elab Command\n' + 'run_cmd do\n' + ' let some (.axiomInfo _) := (← getEnv).find? `unapprovedKernelReplayFixture\n' + ' | throwError "fixture missing its axiom"\n' + ' throwError "G2 fixture policy: unapproved axiom unapprovedKernelReplayFixture"\n') + env = os.environ.copy() + env['LEAN_PATH'] = str(self.base) + p = subprocess.run([str(LEAN), str(check)], cwd=self.base, env=env, + capture_output=True, text=True, timeout=60) + self.assertNotEqual(p.returncode, 0) + self.assertIn('G2 fixture policy: unapproved axiom', p.stdout) + (ROOT / 'evidence' / 'fixture-g2-rejection.json').write_text(json.dumps({ + 'returncode': p.returncode, 'stdout': p.stdout, 'stderr': p.stderr, + 'scope': 'one explicit unapproved fixture axiom; not a production all-declaration G2 auditor' + }, indent=2) + '\n') + + def test_exact_module_no_prefix_glob(self): + # A bad submodule must not be replayed when checking the exact Good module. + nested = self.base / 'Good' + nested.mkdir(exist_ok=True) + (nested / 'Broken.olean').write_bytes(b'invalid olean') + self.assertTrue(self.replay('Good')['ok']) + + def test_user_lean_path_cannot_shadow_checker(self): + shadow = self.base / 'LeanChecker.olean' + shadow.write_bytes(b'untrusted shadow of installed checker') + try: + self.assertTrue(self.replay('Good')['ok']) + finally: + shadow.unlink() + + def test_real_private_body_cannot_hide_behind_olean_symlink(self): + linked = self.base / 'symlink-negative' + linked.mkdir(exist_ok=True) + alias = linked / 'BadPrivate.olean' + if not alias.exists(): + alias.symlink_to(self.base / 'BadPrivate.olean') + try: + m = self.kr.prepare_manifest(str(LEAN), [str(linked)], + [f'BadPrivate={self.fixtures / "BadPrivate.lean"}'], []) + except ValueError as e: + self.assertIn('symlink', str(e)) + return + # Before the fix this bound destination private bytes but upstream + # selected lexical siblings, accepted the exported-only presentation. + r = self.kr.run_manifest(m, 8192, 60) + (ROOT / 'evidence/initial-real-symlink-replay.json').write_text(json.dumps(r, indent=2) + '\n') + self.assertFalse(r['ok'], r) + + def test_driver_missing_request_and_binding_rejected(self): + env = os.environ.copy() + env['LEAN_PATH'] = str(self.base) + env.pop('CBZ_KERNEL_REPLAY_MODULE', None) + p = subprocess.run([str(LEAN), str(ROOT / 'ExactReplay.lean')], cwd=ROOT, env=env, + capture_output=True, text=True, timeout=60) + self.assertNotEqual(p.returncode, 0) + self.assertIn('missing exact-module request', p.stdout) + env['CBZ_KERNEL_REPLAY_MODULE'] = 'Good' + env['CBZ_KERNEL_REPLAY_OLEAN'] = '/wrong/path.olean' + p = subprocess.run([str(LEAN), str(ROOT / 'ExactReplay.lean')], cwd=ROOT, env=env, + capture_output=True, text=True, timeout=60) + self.assertNotEqual(p.returncode, 0) + self.assertIn('resolved olean mismatch', p.stdout) + + def test_cli_prepare_and_run(self): + manifest = self.base / 'cli-manifest.json' + report = self.base / 'cli-report.json' + cli = [sys.executable, str(ROOT / 'kernel_replay.py')] + p = subprocess.run([*cli, 'prepare', '--lean', str(LEAN), '--lean-path', str(self.base), + '--module', f'Good={self.fixtures / "Good.lean"}', '--output', str(manifest)], + capture_output=True, text=True, timeout=60) + self.assertEqual(p.returncode, 0, p.stdout + p.stderr) + p = subprocess.run([*cli, 'run', str(manifest), '--memory-mib', '8192', + '--timeout-seconds', '60', '--output', str(report)], + capture_output=True, text=True, timeout=65) + self.assertEqual(p.returncode, 0, p.stdout + p.stderr) + self.assertTrue(json.loads(report.read_text())['ok']) + m = json.loads(manifest.read_text()) + m['modules'][0]['source']['sha256'] = '0' * 64 + manifest.write_text(json.dumps(m)) + p = subprocess.run([*cli, 'run', str(manifest), '--memory-mib', '8192', + '--timeout-seconds', '60', '--output', str(report)], + capture_output=True, text=True, timeout=65) + self.assertEqual(p.returncode, 1) + self.assertIn('binding changed', json.loads(report.read_text()).get('error', '')) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/cbz/contributions/math514/kernel_replay/tool-report.json b/cbz/contributions/math514/kernel_replay/tool-report.json new file mode 100644 index 000000000..d4a4f838f --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tool-report.json @@ -0,0 +1,198 @@ +{ + "status": "COMPLETE_SCOPED_TOOL_G0_PASS", + "observed_at": "2026-10-29T17:55:51.646569+00:00", + "scope": "New exact-module adapter and isolated adversarial fixtures only; no Math core/heavy project replay.", + "tool_root": "/workspace/cbz-0/tools/kernel_replay", + "lean_version": "Lean (version 4.34.1, x86_64-unknown-linux-gnu, commit 5045d0056413266e57c625dcd7c365b10e377c52, Release)", + "production_source_bindings": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + } + ], + "verification_source_bindings": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/mutations.py", + "sha256": "9826fe1eebd2406367e6db297e6e744b00fd3e3181a7e17d35fad0bf9f353d7f" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/run_tests.py", + "sha256": "b0a7f1c508462c21688de8d5ec70384d40f780c342814d97589f0b45f2d7620b" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_kernel_replay.py", + "sha256": "8e0cb7916804dc5bc0e07b0f4a70bbb271e1a14c00b900519ac61e503ced97a6" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_real_lean.py", + "sha256": "51ab210da908b4e3d74fe179c41a414abf4c53e88458db33f7934ae0010337d7" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/test_mutation_harness.py", + "sha256": "ca90d5c5c8e48d163d35b2170f2e7f08352863c23bd73f1b383a73a2dcc16ff3" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/Good.lean", + "sha256": "399a84340143a41948b838d33fdb7a60491c7d6827f40970115d24c0bc7bc728" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPublic.lean", + "sha256": "9b636915c4c868091d72b6c72337b6c255cab8ede30b8b394b43389e1fdd95d5" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/BadPrivate.lean", + "sha256": "fa95b63ae8037158cdc643a6542ed28dc1adde86a529a535cfc0c713033ec429" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/tests/fixtures/UnapprovedAxiom.lean", + "sha256": "24a4ed0e582c2cfc1a5113da5cf0215bf1adcfcd0e885db6448ee31428f34547" + } + ], + "g0": { + "status": "PASS", + "applicable_tests": 27, + "single_full_suite_claim": false, + "evidence_reuse_rule": "/workspace/AGENTS.md owner clarification 25 October 2026: completed applicable verification reused on unchanged material; new tests only were executed after the 25-test run", + "runs": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-tests.json", + "sha256": "0b3e0becb53748658be33635a7747a4e412bfdc56110161e8065f5329f97bfe7", + "tests_run": 25, + "successful": true + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-additional-tests.json", + "sha256": "d59244deb8d1b5d254c8196524fef7ae8f194b3719679e1f6ec2b96cfffba5aa", + "tests_run": 2, + "successful": true + } + ], + "production_bindings": [ + { + "path": "/workspace/cbz-0/tools/kernel_replay/kernel_replay.py", + "sha256": "416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293" + }, + { + "path": "/workspace/cbz-0/tools/kernel_replay/ExactReplay.lean", + "sha256": "24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66" + } + ] + }, + "mutations": { + "status": "PASS", + "planned": 16, + "executed": 16, + "killed": 16, + "survived": 0, + "errors": 0, + "threshold": 1.0, + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-mutations.json", + "sha256": "8deed12fc5a02ea8e61d4b3ac9d9fdd849ff0620d19b565f54f6919aa0819fd8" + }, + "actual_fixture_results": [ + { + "module": "Good", + "kernel_replay_ok": true, + "returncode": 0, + "parts_count": 3, + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/real-Good.json" + }, + { + "module": "BadPublic", + "kernel_replay_ok": false, + "returncode": 1, + "parts_count": 3, + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/real-BadPublic.json" + }, + { + "module": "BadPrivate", + "kernel_replay_ok": false, + "returncode": 1, + "parts_count": 3, + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/real-BadPrivate.json" + }, + { + "module": "UnapprovedAxiom", + "kernel_replay_ok": true, + "returncode": 0, + "parts_count": 3, + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/real-UnapprovedAxiom.json" + } + ], + "g2": { + "status": "NOT_ASSESSED_FOR_PROJECT", + "fixture_policy_rejection": "/workspace/cbz-0/tools/kernel_replay/evidence/fixture-g2-rejection.json", + "boundary": "Explicit fixture axiom rejection is not a complete production all-declaration approved-set auditor. Axiom kernel pass is expected." + }, + "g4_project": { + "status": "NOT_RUN_BY_THIS_TOOL_TASK", + "observation_provenance": "Parent task instructions; not independently rerun.", + "historical_failed_observation": "Root initially observed leanchecker ResearchFormalCoreR1 exit137 at16GiB; that failed run remains preserved. A later complete same-source component gate passed with two threads in canonical947." + }, + "historical_failures_preserved": [ + { + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-low-address-limit-failures.json", + "status": "NON_GREEN_RUNTIME_LIMIT_FAILURE", + "meaning": "2GiB virtual-address cap aborts before replay; not kernel failure or success." + }, + { + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-import-shadow-failure.json", + "status": "NON_GREEN_TEST_FAILURE_FIXED", + "meaning": "Project checker shadowing regression, fixed by sysroot precedence." + }, + { + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/g0-initial-mutations.json", + "status": "NON_GREEN_INITIAL_MUTATION_RUN", + "meaning": "15 executed;11 killed4survived. Three binding tests were masked by unrelated checker failure; private fixture visibility was wrong. Tests/fixture corrected, all original mutants retained." + }, + { + "evidence": "/workspace/cbz-0/tools/kernel_replay/evidence/initial-real-symlink-replay.json", + "status": "INVALIDATED_FALSE_GREEN_ADAPTER_BUG_RECEIPT", + "meaning": "Pre-fix symlinked main olean bound destination private parts while upstream read lexical exported-only part. Real malformed private body falsely passed; not valid G4 evidence. Fixed with full artifact-path symlink rejection." + } + ], + "inherited_upstream_cli_observation": { + "status": "NON_GREEN_DIAGNOSTIC_NOT_G4", + "provenance": "Parent source inspection and own earlier diagnostic communicated in task", + "facts": [ + "All dash-prefixed flags partitioned; --help unsupported and ignored as flag. Empty targets use current module/default anonymous prefix.", + "Normal mode enumerates prefix matches and starts IO.asTask(replayFromImports module) concurrently; no jobs flag.", + "Parent diagnostic --help allocated about3GiB and was stopped SIGTERM only on its own PID; not a valid G4 pass." + ] + }, + "resource_observations": { + "fixture_address_limit_mib": 8192, + "failed_initial_address_limit_mib": 2048, + "diagnostic_virtual_kib": 6222420, + "diagnostic_rss_kib": 613748, + "meaning": "Address-space reservation differs from physical RSS; original cgroup16GiB OOM remains separate." + }, + "commands": { + "g0_25": "python3 /workspace/cbz-0/tools/kernel_replay/run_tests.py --output /workspace/cbz-0/tools/kernel_replay/evidence/g0-tests.json", + "g0_new2": "python3 /workspace/cbz-0/tools/kernel_replay/run_tests.py --output /workspace/cbz-0/tools/kernel_replay/evidence/g0-additional-tests.json --test test_kernel_replay.WrapperTests.test_search_root_and_part_symlinks_rejected --test test_real_lean.RealLeanTests.test_cli_prepare_and_run", + "mutations": "python3 /workspace/cbz-0/tools/kernel_replay/mutations.py --output /workspace/cbz-0/tools/kernel_replay/evidence/g0-mutations.json" + }, + "registry_payload": "/workspace/cbz-0/tools/kernel_replay/REGISTRY.json", + "publication_mapping": "/workspace/cbz-0/tools/kernel_replay/PUBLICATION.json", + "independent_review": "/workspace/cbz-0/discovery/kernel-replay-independent-review.md", + "unchanged_mathematical_evidence_reused": "Historical M67 strict/ALL5std3/own-kernel pass and3827-job target build communicated by parent remain applicable; not rerun for this toy self-test.", + "external_writes": false, + "full_cbz": false, + "status_correction": { + "observed_by_this_window_utc": "2026-10-29T18:50:42.767390+00:00", + "source_commit": "8151f592918a845bf19eb8eafaf8444540a32734", + "canonical_handoff_cut": "94747663830ca6645ea27c8820058168c08cf170", + "status_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/STATUS.md", + "receipt_source": "https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json", + "reported_resource_configuration": "LEAN_NUM_THREADS=2", + "component_scope": "Math core:116 owned constants,63 public theorem targets,26853 dependency closure; onlypropext/Classical.choice/Quot.sound; fullcomponentgate/adversecontrols recorded", + "project_proof_replayed_for_this_correction": false, + "adapter_production_code_or_tests_changed": false, + "adapter_27_tests_16_mutants_reused": true, + "federation_CBZ_claim": false + } +} diff --git a/cbz/contributions/math514/kernel_replay/tool-report.md b/cbz/contributions/math514/kernel_replay/tool-report.md new file mode 100644 index 000000000..9ed26c136 --- /dev/null +++ b/cbz/contributions/math514/kernel_replay/tool-report.md @@ -0,0 +1,22 @@ +# Exact-module kernel replay tooling report + +Complete scoped tool at `/workspace/cbz-0/tools/kernel_replay/`. It imports the installed Lean 4.34.1 `LeanChecker.replayFromImports` and runs one exact module per fresh direct `lean -j1` process, with explicit virtual-memory and wall-time bounds. No target pre-import, prefix expansion, ignored flags or concurrent module scheduling exists. All available exported/server/private data are handled by the official routine. + +G0: **27 applicable tests pass**: 25 after the last production change plus 2 newly added tests; unchanged completed verification is reused under `/workspace/AGENTS.md`. `evidence/g0-applicable-tests.json` records that composition. **16/16 mutations killed**, threshold100%, zero survivors/errors/skips in the final matrix. The initial11/15 run with4survivors is preserved, including the exact test/fixture repairs it motivated. + +Real fixtures: public/private/data/inductive Good PASS with3oleanparts; public and genuinely private self-referential malformed theorem bodies REJECTED with unknown-constant kernel errors. The exported-only and target-preloading mutants are killed. An unapproved axiom correctly replays, while a separate explicit fixture axiom-policy check rejects it. **Project G2 remains independent and unassessed.** + +Independent review identified a main-olean symlink mismatch. Before the fix, a real malformed private-body fixture falsely passed because bound destination siblings differed from lexical siblings selected upstream. The original receipt is retained as `evidence/initial-real-symlink-replay.json` and explicitly INVALIDATED as G4 evidence. The fixed wrapper rejects symlink/noncanonical components in roots, selected modules and sibling parts; focused wrapper/real regressions and a killed mutant cover the fix. A project-local checker shadow regression is also fixed by installed-sysroot precedence. + +Resource facts: initial2GiB virtual-address cap failed before replay (retained). Tiny direct Lean diagnostic reserved6222420KiB virtual with613748KiB RSS; actual fixtures passed with explicit8192MiB virtual cap. This does not show every project module fits. The original Root685 exit137 remains historical failed-run evidence. Canonical947 already records a later successful complete same-source Math-core gate at8151 with LEAN_NUM_THREADS=2; this window confirmed the immutable receipt on2026-10-29T18:50:42.767390+00:00. The earlier global-unclosed implication is corrected; no new project replay is needed. Parent's unsupported upstream `--help` diagnostic (~3GiB then own-PID SIGTERM) remains a diagnostic failure, not G4 evidence. No project Math core replay was performed here. + +Usage and exact commands: `README.md`; full specification: `SPEC.md`; registry/ledger/quarantine payload: `REGISTRY.json`; absolute source-to-`cbz/contributions/math514/kernel_replay/*` mapping: `PUBLICATION.json`. Mapping excludes temporary directories, caches and generated fixture binaries. The tool does not prove G3 source-to-bytecode provenance, undeclared dependency closure, caller inventory completeness, G2 compliance or full CBZ. + +Production bindings: + +- `kernel_replay.py`: `416b688929daff9f473ce3e0abd399d8be2cde46c12956d3e5d5d9937d914293` +- `ExactReplay.lean`: `24e55f5e99c83a46f9f908bbc90f22292a94305294e287d9b2eccbf24e8e6b66` + +No mathematical source, Git, remote or canonical surface was edited by this task. Existing applicable M67 and target-build evidence was reused without a new proof replay. The canonical writer can now publish the mapped contribution and integrate its registry payload before separately diagnosing actual project G4. + +Status correction source: https://github.com/d6g8k5htny-coder/main/blob/94747663830ca6645ea27c8820058168c08cf170/cbz/evidence/kernel/math-core/receipt.json . Original text remains in parent commit0c6f9e3 and the private pre-correction snapshot. Production code/tests and27/16 evidence are unchanged. diff --git a/cbz/evidence/cold-start-node/.gitattributes b/cbz/evidence/cold-start-node/.gitattributes new file mode 100644 index 000000000..ad78b688a --- /dev/null +++ b/cbz/evidence/cold-start-node/.gitattributes @@ -0,0 +1,2 @@ +# Preserve captured execution transcripts byte-for-byte. +*.log whitespace=-blank-at-eol,-blank-at-eof diff --git a/cbz/evidence/cold-start-node/DECISION.log b/cbz/evidence/cold-start-node/DECISION.log new file mode 100644 index 000000000..4dd14da85 --- /dev/null +++ b/cbz/evidence/cold-start-node/DECISION.log @@ -0,0 +1,11 @@ +[2026-10-29 20:39:17 UTC] [phase3] [layerC] Qualify the prepared Node reproduction tool's reason-bound source/harness mutations and full pinned-fixture replay at tested source 2db895e866dcd37ae7343eedbdfc2272aeb82e6c. Preserve original job log and TAP; record the artifact-download boundary. Reversible:yes. Evidence: OBSERVATIONS.json and green/2db-hosted-job.log. Root must integrate this entry into the canonical decision ledger and register the tool in GOVERNANCE.md and TOOLING.md. +[2026-10-29 20:42:49 UTC] [phase3] [layerA] Record actual mixed-foreign-failure RED on e775's tested merge 802cb0294db93665f52b31f2d3b837c53ff28021, preserve the original hosted job log, and repair outcome admission while retaining every existing and new control. Successor execution pending. Reversible:yes. Evidence: red/mixed-foreign-hosted.log. +[2026-10-29 20:57:12 UTC] [phase3] [layerA] Preserve actual mixed-outcome, fixture-exit and poisoned-museum-bytecode RED logs, plus the tested db7 matcher GREEN; require a zero child exit for fixture receipts and compile imported museum/test-loader source bytes directly. Retain all controls and add bytecode source/harness mutations. The test-loader RED and combined successor execution remain pending; no final gate claim. Reversible:yes. Evidence: OBSERVATIONS.json and green/db7-hosted-job.log. +[2026-10-29 21:00:46 UTC] [phase3] [layerA] Record actual normal/optimized poisoned test-loader RED, four assertion failures per mode at tested merge 590c601766d112f15b61a3e9e6990f0945db3812; preserve decoded job log. The combined fixture and source-only candidate remains unqualified pending execution. Reversible:yes. Evidence:red/both-poisoned-bytecode-hosted.log. +[2026-10-29 21:06:36 UTC] [phase3] [layerA] Record actual source-only and reason-bound controls at tested merge e01ab09f9a198009de74a0fb1f017c96f5e85b7d: 51 tests per Python mode, 22 source mutants, 11 harness mutants and 764 prepared Node passes. Preserve decoded hosted log and exact transcript, and distinguish uploaded ZIP digest from independently downloaded verification. Reversible:yes. Evidence: green/8aa-hosted-job.log and OBSERVATIONS.json. +[2026-10-29 21:27:57 UTC] [phase3] [layerA] Record independent source review of remaining Node admission weaknesses and add test-first controls for exact test count, unambiguous complete fixture TAP and exact loaded-source child failure. Actual execution and repair pending; prior green runs remain exact-head historical observations. Reversible:yes. Evidence: tests/test_cbz_node_regression.py and REGISTRY_ADDENDUM.md. +[2026-10-29 21:29:16 UTC] [phase3] [layerA] Add genuine poisoned child-test-module cache adverse control; correct existing exit-only fixture to use a complete valid one-test TAP summary. The outer workflow test-module import has the same cache exposure. Execution and source repairs pending. Reversible:yes. Evidence: tests/test_cbz_node_regression.py. +[2026-10-29 21:29:57 UTC] [phase3] [layerA] Specify an outer unittest launcher and real poisoned-cache controls covering default and inherited cache prefixes. Implementation and executions pending; the tool is not admitted. Reversible:yes. Evidence: tests/test_cbz_node_regression.py. +[2026-10-29 21:31:29 UTC] [phase3] [layerA] Specify empty and wholly skipped suite rejection for the pending outer control launcher. Neither new controls nor implementation have run. Reversible:yes. Evidence: tests/test_cbz_node_regression.py. +[2026-10-29 21:33:18 UTC] [phase3] [layerA] Implement bounded source-only outer/child unittest imports and tighten selected count, fixture TAP, and loaded-source reason observations; retain historical results and add adverse/source mutation controls. Test-first and candidate executions are queued, not observed; no tool admission or passing gate claimed. Reversible:yes. Evidence: tests/test_cbz_node_regression.py, tools/cbz_node_controls.py, REGISTRY_ADDENDUM.md. +[2026-10-29 21:34:19 UTC] [phase3] [layerA] Correct two retained poisoned-cache fixtures to use the interpreter-selected cache path after independent review identified incompatibility with the private-prefix launcher. No test has yet executed. Reversible:yes. Evidence: tests/test_cbz_node_regression.py. diff --git a/cbz/evidence/cold-start-node/OBSERVATIONS.json b/cbz/evidence/cold-start-node/OBSERVATIONS.json new file mode 100644 index 000000000..84ecee200 --- /dev/null +++ b/cbz/evidence/cold-start-node/OBSERVATIONS.json @@ -0,0 +1,577 @@ +{ + "schema": "cbz.cold-start-node.observations.v1", + "observed_utc": "2026-10-29T19:51:34Z", + "certifies_mathematics": false, + "certifies_cbz_zero": false, + "source_commit": "b3eacf768fc402ad65c9bf41e3b6b8d3c670342c", + "run_id": 40943173611, + "controls": { + "normal": { + "job_id": 123691557774, + "tests": 33, + "result": "PASS" + }, + "optimized": { + "job_id": 123691557243, + "tests": 33, + "result": "PASS" + }, + "source_mutants": 14, + "harness_mutants": 3, + "required_detection": "named assertion failures; no errors/foreign failures/launch failures/zero tests" + }, + "prepared_node": { + "command": [ + "node", + "--test", + "--test-reporter=tap", + "tests/fixtures/museum_fixture.mjs", + "tests/test_atlas_controls.mjs", + "tests/test_atlas_formal_evidence.mjs", + "tests/test_atlas_formal_source_bridge.mjs", + "tests/test_atlas_reader_experience.mjs", + "tests/test_atlas_relationships.mjs", + "tests/test_atlas_resilience.mjs", + "tests/test_atlas_spatial.mjs", + "tests/test_atlas_spatial_labels.mjs", + "tests/test_brand_identity.mjs", + "tests/test_catalog_query.mjs", + "tests/test_compare_categories.mjs", + "tests/test_compare_source_panel.mjs", + "tests/test_current_inventory_acquisition.mjs", + "tests/test_current_observation_coherence.mjs", + "tests/test_current_site.mjs", + "tests/test_current_site_resume.mjs", + "tests/test_current_site_shell.mjs", + "tests/test_curvature_export.mjs", + "tests/test_dependency_viewer.mjs", + "tests/test_explore_models.mjs", + "tests/test_figure_png.mjs", + "tests/test_library_discovery.mjs", + "tests/test_library_source_search.mjs", + "tests/test_measurement_model.mjs", + "tests/test_museum_conditionals.mjs", + "tests/test_museum_conditionals_cli.mjs", + "tests/test_museum_conditionals_paths.mjs", + "tests/test_museum_conditionals_startup.mjs", + "tests/test_museum_frontend.mjs", + "tests/test_museum_geometry.mjs", + "tests/test_museum_identity.mjs", + "tests/test_node_status_atlas.mjs", + "tests/test_palette_export.mjs", + "tests/test_pin_export.mjs", + "tests/test_public_shop_app.mjs", + "tests/test_public_shop_frontend.mjs", + "tests/test_reader_experience.mjs", + "tests/test_reader_jump.mjs", + "tests/test_reader_navigation.mjs", + "tests/test_reading_list_citation.mjs", + "tests/test_research_desk.mjs", + "tests/test_snapshot_compare.mjs", + "tests/test_source_quote.mjs", + "tests/test_source_reference.mjs", + "tests/test_teaching_export.mjs", + "tests/test_workspace_navigation.mjs" + ], + "final_cbz_certification": false, + "finished_utc": "2026-10-29T19:47:32.119259+00:00", + "fixture_environment": { + "MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", + "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", + "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-" + }, + "fixtures": [ + { + "bytes": 1090, + "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", + "path": "coefficients/side24_v1/ENCLOSURE.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811" + }, + { + "bytes": 10272, + "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", + "path": "coefficients/side24_v1/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769" + }, + { + "bytes": 18262, + "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", + "path": "imports/hardening_ebedb780/MANIFEST.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3" + }, + { + "bytes": 4623, + "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", + "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", + "repository": "d6g8k5htny-coder/query-", + "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828" + }, + { + "bytes": 17734, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a" + }, + { + "bytes": 10272, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "coefficients/side24_v1/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769" + }, + { + "bytes": 18355, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/remote_window_20260924/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7" + }, + { + "bytes": 16948, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05" + }, + { + "bytes": 17646, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b" + }, + { + "bytes": 15902, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d" + }, + { + "bytes": 10858, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/axial_density_20260925/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4" + }, + { + "bytes": 9902, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36" + }, + { + "bytes": 3272, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6" + }, + { + "bytes": 2266, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b" + }, + { + "bytes": 11352, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/full_price_20260924/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9" + }, + { + "bytes": 12708, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "PROOF_INDEX.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249" + }, + { + "bytes": 16417, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "claims/LANDING_CLAIMS.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e" + }, + { + "bytes": 11331, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c" + }, + { + "bytes": 1090, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "coefficients/side24_v1/ENCLOSURE.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811" + }, + { + "bytes": 15925, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f" + }, + { + "bytes": 12741, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d" + }, + { + "bytes": 10073, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574" + }, + { + "bytes": 15615, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53" + }, + { + "bytes": 12510, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c" + }, + { + "bytes": 3723, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717" + }, + { + "bytes": 15569, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7" + }, + { + "bytes": 7655, + "commit": "f2e432ea5c86742e480c66624775bc9103343314", + "path": "STATUS.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3" + }, + { + "bytes": 25057, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537" + }, + { + "bytes": 673, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176" + }, + { + "bytes": 362, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "incoming/side24-identity-replay-20260926/output.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be" + }, + { + "bytes": 61961, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", + "repository": "d6g8k5htny-coder/main", + "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024" + }, + { + "bytes": 1118, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "incoming/side24-identity-replay-20260926/RESULT.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8" + }, + { + "bytes": 40261, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7" + }, + { + "bytes": 10221, + "commit": "a12c178c0f857a130cf434e9efd44233a038195b", + "path": "incoming/side24-chart-claude-20260926/RESULT.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502" + }, + { + "bytes": 1471, + "commit": "a12c178c0f857a130cf434e9efd44233a038195b", + "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b" + }, + { + "bytes": 1724, + "commit": "a12c178c0f857a130cf434e9efd44233a038195b", + "path": "incoming/side24-chart-claude-20260926/output.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb" + }, + { + "bytes": 23312, + "commit": "82247833b5dd58e04291d55353b52938d73ec614", + "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da" + }, + { + "bytes": 6023, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "README.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730" + } + ], + "log_sha256": "c644a9e64da171421fb6fbc64b2b747a372085eba7c7266f8f7f566e3e6ebe36", + "mathematical_certification": false, + "node_exit": 0, + "node_version": "v22.23.4", + "schema": "cbz.node-regression.v1", + "source_after": "b3eacf768fc402ad65c9bf41e3b6b8d3c670342c", + "source_before": "b3eacf768fc402ad65c9bf41e3b6b8d3c670342c", + "started_utc": "2026-10-29T19:47:25.264685+00:00", + "status": "PASS", + "summary": { + "cancelled": 0, + "fail": 0, + "pass": 764, + "skipped": 0, + "tests": 764, + "todo": 0 + } + }, + "extension_status": "observed on the separately identified subsequent source and run below", + "subsequent_observation": { + "observed_utc": "2026-10-29 20:30:04 UTC", + "source_commit": "dba9a9eaf65e190b2aee0445244eb26d6034b022", + "run_id": 40948751545, + "job_id": 123710906208, + "normal_tests": { + "run": 41, + "failures": 0, + "errors": 0, + "skips": 0 + }, + "optimized_tests": { + "run": 41, + "failures": 0, + "errors": 0, + "skips": 0 + }, + "source_mutants": 21, + "harness_mutants": 4, + "prepared_node": { + "tests": 764, + "passed": 764, + "failed": 0, + "skipped": 0, + "cancelled": 0, + "todo": 0, + "exit": 0, + "fixture_records": 38, + "fixture_files": 39, + "log_sha256": "b2bc7b2b48068d475129118d07b62a0b8b217725ec1b68667ea584286e54450f", + "log_git_blob": "8cdeca3f173700f826563ec02bf30b48ea1680d5", + "artifact_id": 12929309903, + "artifact_zip_sha256": "139ff5eec7300d582dc1af1d2504399fe84724a1a7a59dd2905185324c47b527" + }, + "scope": "Node regression reproduction only; no global G1, G5, G9 or CBZ-0 pass." + }, + "reason_bound_observation": { + "source_commit": "f4ad0f49dbf9963fcec849a3dc66f1de46f51ac3", + "run_id": 40950290452, + "job_id": 123716298060, + "normal_tests": 43, + "optimized_tests": 43, + "source_mutations": 21, + "harness_mutations": 8, + "source_mutation_evidence": "specific control-side per-run nonce, test, mutant and bypass observation required", + "prepared_node": { + "summary": { + "cancelled": 0, + "fail": 0, + "pass": 764, + "skipped": 0, + "tests": 764, + "todo": 0 + }, + "node_exit": 0, + "log_sha256": "9b90d335aa4dc9345aaa1618d2aecc23c2bfd9f4c836f98ae71e784726303eae", + "log_git_blob": "bbeceb67e877902e1967d0bb5a86fb78613e2970", + "artifact_id": 12931890855, + "artifact_zip_sha256": "ef2fbff49b322fe1d2dd7182e5065915ed7b1dc397d39ecd920304ec88127086", + "downloaded_zip_rechecked": false + }, + "global_certification": false + }, + "strong_control_observation": { + "source_commit": "2db895e866dcd37ae7343eedbdfc2272aeb82e6c", + "run_id": 40950731897, + "job_id": 123717841712, + "python_modes": { + "normal": { + "tests": 43, + "result": "PASS" + }, + "optimized": { + "tests": 43, + "result": "PASS" + } + }, + "source_mutations": 21, + "harness_mutations": 8, + "prepared_node": { + "summary": { + "cancelled": 0, + "fail": 0, + "pass": 764, + "skipped": 0, + "tests": 764, + "todo": 0 + }, + "node_exit": 0, + "log_sha256": "e0acd188a5a881b377742be0547ea0906a5ae20c5dcf4e2f0a1c0bd33b8fb3f0", + "log_git_blob": "dcbeca296f5d6d46180001ac5c83e3347366be66", + "artifact_id": 12930309399, + "artifact_zip_sha256": "992168bb5cd49ed47fcc87933751cc6eb19a95942d0b0bbec22026623a1575c1", + "downloaded_zip_rechecked": false + }, + "global_certification": false + }, + "matcher_repair_observation": { + "pull_head": "db7d4a9cef29f2927333b9979032200b144e29e7", + "tested_commit": "fc874d3d6da55276180937bae8e239ab395570f8", + "run_id": 40951498618, + "job_id": 123720501776, + "tests_per_python_mode": 47, + "source_mutations": 21, + "harness_mutations": 9, + "prepared_node": { + "tests": 764, + "pass": 764, + "fail": 0, + "skip": 0, + "exit": 0, + "log_sha256": "380c35cb9c274ec44a63d373eb635b886cc2ab3c1f29258a707873da86255066", + "git_blob": "d73c8c6dc9ccb53ab39c629a3f14231a4f5bf071" + }, + "scope": "Precedes subsequent fixture-exit and source-loader repairs." + }, + "adverse_observations": [ + { + "pull_head": "262036691d365ede742673ed421091dfbfdb2a72", + "tested_commit": "5101de24c9df9daa92f86404d6f756e5ab1b1c1b", + "run_id": 40951233906, + "job_id": 123719584746, + "tests_per_mode": 46, + "assertion_failures_per_mode": 5, + "errors": 0 + }, + { + "pull_head": "05343dc2ce194823158eb96877e333aff439c335", + "tested_commit": "b9c51cc179a4818bb593c8ef09495fc09dc5aa4a", + "run_id": 40951302609, + "job_id": 123719817779, + "tests_per_mode": 47, + "assertion_failures_per_mode": 6, + "errors": 0 + }, + { + "pull_head": "69413c7c9878be8b49a27642531cc05c84f21d8a", + "tested_commit": "9166f9b0bec547e76908147bc71ab8aa3e8242df", + "run_id": 40951811637, + "job_id": 123721597515, + "tests_per_mode": 48, + "assertion_failures_per_mode": 1, + "errors": 0, + "reason": "fixture receipt accepted a nonzero Node exit" + }, + { + "pull_head": "f26e91b41ddf425c3d361282d0d3e9b99bb87ee1", + "tested_commit": "92f974eb9d5a044338d04d26c250a4bcfbae105c", + "run_id": 40952898593, + "job_id": 123725380356, + "tests_per_mode": 49, + "assertion_failures_per_mode": 3, + "errors": 0, + "reason": "legitimate source bytes accompanied execution of poisoned museum bytecode" + }, + { + "pull_head": "3598f413da9be44263c2c6e853c7245012ee42f6", + "tested_commit": "590c601766d112f15b61a3e9e6990f0945db3812", + "run_id": 40953041841, + "job_id": 123725878794, + "tests_per_mode": 50, + "assertion_failures_per_mode": 4, + "errors": 0, + "reason": "fixture-exit bypass and poisoned museum and test-loader bytecode execution" + } + ], + "pending": { + "runner_bytecode_test_first": "observed RED in both Python modes at the above tested merge", + "repaired_combined_source": "observed PASS at tested merge e01ab09f9a198009de74a0fb1f017c96f5e85b7d; fresh exact final head gates still pending", + "final_federation_gates": "not qualified" + }, + "combined_repair_observation": { + "pull_head": "8aa7d353d6864b6481df5508aaea7b73f185abdf", + "tested_commit": "e01ab09f9a198009de74a0fb1f017c96f5e85b7d", + "tested_parents": [ + "c93cec70223281492709ff74ca84fed5dc6e40e8", + "8aa7d353d6864b6481df5508aaea7b73f185abdf" + ], + "run_id": 40953580427, + "job_id": 123727766200, + "tests_per_mode": 51, + "source_mutations": 22, + "harness_mutations": 11, + "prepared_node": { + "summary": { + "cancelled": 0, + "fail": 0, + "pass": 764, + "skipped": 0, + "tests": 764, + "todo": 0 + }, + "node_exit": 0, + "sha256": "4da55b5959ffba1c920db90eff091d04dbafcff4fac91bbe6f460b65dee781fb", + "git_blob": "2327ca95a56afdf4d7efd46ec469f26a53c15953", + "artifact_id": 12933401209, + "artifact_zip_sha256": "cc9c97e2d0326d5226be953ddc0bdbbd69e8a11d4b91b3bc90aef93c79d7fa75", + "downloaded_zip_rechecked": false + }, + "verified_source_blobs": { + "tools/cbz_node_regression.py": "0d22fd66d26f5f558323dc05e34ea824b882437d", + "tests/test_cbz_node_regression.py": "8cd83568f864aed491912d071d53faca6af19f16", + "tools/museum_data.py": "9fad2bbf96409fbb2f390b038be4d9294b906ced", + ".github/workflows/cbz-cold-start-node.yml": "97db5e598e60d649bf38663fbc6689dbfde5dcda" + }, + "global_certification": false + } +} diff --git a/cbz/evidence/cold-start-node/REGISTRY_ADDENDUM.md b/cbz/evidence/cold-start-node/REGISTRY_ADDENDUM.md new file mode 100644 index 000000000..c40d3d8e8 --- /dev/null +++ b/cbz/evidence/cold-start-node/REGISTRY_ADDENDUM.md @@ -0,0 +1,105 @@ +# Prepared Node regression tool registration + +Tool: tools/cbz_node_regression.py. Maintenance owner: none, self-contained. +Serves CBZ criteria 5, 9, 11 and 12. It closes the reproducibility gap between +raw Node discovery and the actual three-variable prepared fixture suite. + +Usage from the clean main checkout: + +~~~sh +python3.11 -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +python3.11 -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +python3.11 -B -S tools/cbz_node_regression.py --math-root /absolute/federation/Math- --query-root /absolute/federation/query- --output /absolute/new/evidence/node +~~~ + +The output directory must be absent and outside the three source trees. All +inputs are immutable Git blobs, verified against descriptor size/SHA256 and +declared Git-blob identity. No network endpoint, branch alias or current working +file is used as a missing-object fallback. All tracked tests/*.mjs are executed. +The report binds the actual command, fixture identities/environment, runtime, +exit, complete no-skip TAP summary, raw-log digest and unchanged owned source +endpoints. RUNNING/FAIL cannot count as PASS. Existing output is never overwritten. + +The tests use actual temporary Git repositories and real Python/Node subprocesses. +Named source mutations cover byte identities, regular-file admission, pin URLs, +complete input materialization, hidden source/mode changes, zero/skip/ambiguous +summaries, subprocess exit, empty discovery and false-green error handling. +Harness controls reject zero exits, errors, foreign assertions, zero tests and +launch failures. The harness is itself mutated. A source/harness launch error +does not count as a killed mutant. Ordinary and optimized Python are separate. + +Observed source b3eacf768fc402ad65c9bf41e3b6b8d3c670342c: +33/33 methods in each Python mode, 14/14 source mutants and 3/3 harness mutants +produced the named test assertion failures, and an unmutated copied-source baseline passes. +Native run 40943173611; normal job123691557774, optimized123691557243, +prepared123691557583. Prepared Node: 764/764, all failure/cancel/skip/todo counts +zero, exit0; 38 immutable fixture records; Nodev22.23.4. +node.tap SHA256 c644a9e64da171421fb6fbc64b2b747a372085eba7c7266f8f7f566e3e6ebe36. +The subsequent source and environment controls were observed in the newer run below. + +All original RED results remain under red/. The first RED ran24 tests/mode with +24 assertion failures because the helper was absent. The first implementation +then exposed a redundant skip mutation and duplicate self-harness anchors; +these four failures/mode were preserved and repaired in the test harness. +No failing behavior was deleted or disabled. + +Scope: operational test reproduction only. This tool is neither a mathematical +certifier nor a final G0–G11/CBZ certificate. It does not prove arbitrary ignored +dependencies, malicious simultaneous writers, runtime correctness, complete +mathematical coverage, or authenticity of supplied transcript text. +The full guide in docs/cbz/COLD_START.md records final gate gaps explicitly. +Root integration must register this tool in GOVERNANCE.md/TOOLING.md and add its +command to STATUS.md; this isolated branch does not overwrite shared canonical +status while other contributions are being composed. + +## Subsequent source-bound observation + +Source `dba9a9eaf65e190b2aee0445244eb26d6034b022`, hosted run 40948751545, job 123710906208: 41 tests in ordinary mode and 41 in optimized mode passed, including all 21 named source mutations and all four harness mutations. The prepared Node suite reported 764 tests passed, zero failures, skips, cancellations or todos, exit 0. It used 38 pinned fixture records, materialized as 39 files. The raw Node transcript is [dba-node.tap](green/dba-node.tap), SHA-256 `b2bc7b2b48068d475129118d07b62a0b8b217725ec1b68667ea584286e54450f`, Git blob `8cdeca3f173700f826563ec02bf30b48ea1680d5`. The console transport verified the digest and rejected a modified transcript; uploaded artifact 12929309903 reported ZIP SHA-256 `139ff5eec7300d582dc1af1d2504399fe84724a1a7a59dd2905185324c47b527`. The ZIP itself has not been independently downloaded and rehashed here. The source-bound observation does not certify the later evidence-only commit or the complete federation. + +**Historical mutation-evidence limitation:** The older dba9 harness checked the selected test name and failure summary without binding the particular bypass observation. The later f4ad harness below repairs that limitation; results remain scoped to its exact source and finite control cases. + +## Reason-bound control observation + +On source `f4ad0f49dbf9963fcec849a3dc66f1de46f51ac3`, hosted run 40950290452 job 123716298060 passed all 43 tests in both Python modes. Its 21 retained source mutants each produced the corresponding control-side, per-run nonce-bound bypass receipt and expected named assertion failure; eight harness mutations and adverse controls for the wrong event, subject, nonce and missing receipt also passed. Prepared Node reported 764 tests passed, zero failures/skips/cancellations/todos and exit 0. The unmodified original TAP transcript [f4-node.tap](green/f4-node.tap) has SHA-256 `9b90d335aa4dc9345aaa1618d2aecc23c2bfd9f4c836f98ae71e784726303eae` and Git blob `bbeceb67e877902e1967d0bb5a86fb78613e2970`. Artifact 12931890855 was reported uploaded with ZIP SHA-256 `ef2fbff49b322fe1d2dd7182e5065915ed7b1dc397d39ecd920304ec88127086`; downloaded ZIP bytes have not been independently rechecked here. This is finite operational verification, not G1/G5/G9 or CBZ-0 certification. The stronger successor source and its observed hosted qualification are recorded below. + +## Strengthened control observation + +Source `2db895e866dcd37ae7343eedbdfc2272aeb82e6c`, run 40950731897, job 123717841712: all 43 tests passed in each Python mode, including 21 source mutants with matching control-side bypass receipts and eight harness mutations. The strengthened controls bind the specific input or outcome: the affected byte field, real Node skip, materialized fixture, exact preflight failure and child diagnostic where applicable. The prepared Node replay had 764 passes, zero failures/skips/cancellations/todos and exit 0. Its [original transcript](green/2db-node.tap) has SHA-256 `e0acd188a5a881b377742be0547ea0906a5ae20c5dcf4e2f0a1c0bd33b8fb3f0` and Git blob `dcbeca296f5d6d46180001ac5c83e3347366be66`. The [decoded hosted job log](green/2db-hosted-job.log) records both Python modes and the transcript transport. Artifact 12930309399 reported ZIP SHA-256 `992168bb5cd49ed47fcc87933751cc6eb19a95942d0b0bbec22026623a1575c1`; its downloaded bytes were not independently rechecked here. These results are scoped to the tested source and finite controls; no federation gate or CBZ-0 claim follows. + +## Mixed-failure harness correction + +An additional control exposed a remaining weakness in the earlier f4/2db matcher: an output containing both the expected test failure and an unrelated failure could count as a killed mutation. On PR head `e77502daab6abd0efcfe158b079ac2efce4eb997`, actual tested merge `802cb0294db93665f52b31f2d3b837c53ff28021`, run 40951199942 job 123719465476, the new control failed as intended in each Python mode: 44 tests run, exactly one assertion failure, no errors. The [decoded hosted job log](red/mixed-foreign-hosted.log) is preserved. The prepared Node step independently reported 764 passes; it does not repair the harness finding. + +The successor matcher requires exit 1, a failures-only summary with a consistent failure count, and no foreign failing test names, in addition to the nonce-bound specific observation receipt. New controls preserve and exercise mixed failures, skips/expected failures, abnormal exits and inconsistent counts. **The successor source is not yet qualified until its own hosted execution completes.** + +## Outcome, fixture and source-identity corrections + +The stricter matcher at head `db7d4a9cef29f2927333b9979032200b144e29e7`, tested PR merge `fc874d3d6da55276180937bae8e239ab395570f8`, passed 47 tests per Python mode, 21 source mutants and nine harness mutants in run 40951498618. The separate prepared Node replay reported 764/764, zero skips and exit 0. Its [decoded job log](green/db7-hosted-job.log) and exact [Node transcript](green/db7-node.tap) are retained; the transcript's Git blob is `d73c8c6dc9ccb53ab39c629a3f14231a4f5bf071` and its reported SHA-256 is `380c35cb9c274ec44a63d373eb635b886cc2ab3c1f29258a707873da86255066`. + +Further actual REDs found that a fixture receipt could be written after a nonzero Node exit (run 40951811637) and a timestamp/size-valid poisoned museum bytecode cache could execute while the unchanged source bytes were recorded (run 40952898593). Each failed in both Python modes; their decoded logs are retained in red/. The current candidate requires the actual zero exit and compiles museum source bytes directly, and the test loader also compiles source bytes. It adds corresponding negative controls and source/harness mutations. The poisoned test-loader RED was subsequently observed in both modes, as detailed below. The combined successor was then observed passing at its separately identified tested merge. + +Observation receipts are emitted by the control in the same Python process that loads the chosen mutant. They distinguish the finite accidental-failure and wrong-observation cases exercised here, but are not a security boundary against malicious code that deliberately forges a receipt or a compromised interpreter. The helper provides operational regression evidence only; it does not establish G1, G5, G9, or CBZ-0. + +## Test-loader poisoned-bytecode observation + +On test-first head `3598f413da9be44263c2c6e853c7245012ee42f6`, actual tested merge `590c601766d112f15b61a3e9e6990f0945db3812`, run 40953041841 job 123725878794 ran 50 tests in each Python mode and had four assertion failures per mode with zero errors. The poisoned museum and test-runner cache controls, fixture-exit control and copied-source baseline reproduced the intended defects. The [decoded original job log](red/both-poisoned-bytecode-hosted.log) is retained. These are genuine RED observations; the subsequent source-only candidate's scoped execution is recorded below. + +## Combined source-only repair observation + +Source head `8aa7d353d6864b6481df5508aaea7b73f185abdf`, tested merge `e01ab09f9a198009de74a0fb1f017c96f5e85b7d`, hosted run 40953580427/job123727766200: all 51 tests passed in both Python modes, including 22 source mutants bound to specific per-run observation receipts and 11 harness mutations. The original poisoned museum and runner-cache controls passed. The prepared Node suite reported 764 passes with zero failures, skips, cancellations or todos and exit 0. Its [Node transcript](green/8aa-node.tap) has SHA-256 `4da55b5959ffba1c920db90eff091d04dbafcff4fac91bbe6f460b65dee781fb` and Git blob `2327ca95a56afdf4d7efd46ec469f26a53c15953`; the [decoded hosted job log](green/8aa-hosted-job.log) records both modes and the source-bound replay. Uploaded artifact 12933401209 reported ZIP SHA-256 `cc9c97e2d0326d5226be953ddc0bdbbd69e8a11d4b91b3bc90aef93c79d7fa75`; downloaded ZIP bytes were not independently checked here. The tested merge has parents c93 and 8aa, and its runner, tests, museum and workflow blob identities independently match the source head. Current/final federation gates remain pending. + +## Additional reason-binding review (test-first) + +Independent source review of dc49 found three remaining admission weaknesses: the matcher accepts a multi-test count even though a single control was selected; fixture receipts accept a substring of an incomplete or ambiguous Node TAP summary; and the loaded-source receipt accepts an arbitrary nonzero child exit accompanied by loose marker substrings. New adverse controls specify the exact single-test count, complete unique one-test TAP outcome, and exact loaded-source observation. Their execution and repair are pending. The earlier 22 source/11 harness counts and prepared Node passes remain historical observations of their exact tested versions; they do not qualify the uncorrected admission logic or a final gate. + +A separate review identified that the workflow's outer test-module import and mutation child test-module imports can read timestamp-valid cached bytecode despite `-B`; both need a freshly isolated cache and sanitized Python environment. A genuine poisoned child-cache test has been added; execution and outer-entry control remain pending. The exit-only fixture control now uses a complete valid TAP summary so it tests only exit behavior. + +Test-first outer-entry controls now specify a source-only control launcher exercised against real timestamp-valid poisoned `.pyc` files, both in the default location and in an inherited prefix. The launcher is not implemented yet; this is not a qualified tool, and the control has not been run. It will remain bounded by a trusted interpreter and standard library. + +## Pending source-only test launcher and reason checks + +Candidate `tools/cbz_node_controls.py` runs the Node helper's unittest suite using isolated Python, a fresh private bytecode-cache prefix and an explicit source root. It preserves the real child output/exit and refuses zero-test or skipped outcomes. Run `python3.11 -I -B -S tools/cbz_node_controls.py` and `python3.11 -I -B -O -S tools/cbz_node_controls.py`; the workflow uses these commands. The selected source root, interpreter and standard library are trusted, and endpoint byte checks are not atomic against concurrent edits. Test controls include actual forged default and inherited test caches; source mutations target the child cache, outer cache and zero-test guards. The matcher requires exactly one selected test, fixture receipts require unique complete one-pass TAP fields, and the loaded-source observation requires the exact assertion with exit 1. The 22 earlier source mutations and 11 earlier harness mutations are retained, with additional harness mutations. + +The test-first heads and this candidate have **not yet executed**: hosted jobs are queued and the local environment is unavailable. No new RED, PASS, G0, G5, G9 or CBZ result is claimed. The initial actual historical REDs and exact-source component runs remain preserved. This launcher is not admitted until the full controls, its guard mutations, both Python modes, and full prepared Node replay are observed on the same source and it is registered in canonical GOVERNANCE.md and TOOLING.md. Owner none. + +Independent source review found the initial 3d7 candidate's two retained test-loader poisoned-cache fixtures assumed the default cache location and would fail under the new private prefix. The fixtures now compute the interpreter-selected cache path, preserving their poison assertions and applicability under either prefix. This correction is based on source review; fresh candidate execution remains pending. diff --git a/cbz/evidence/cold-start-node/green/2db-hosted-job.log b/cbz/evidence/cold-start-node/green/2db-hosted-job.log new file mode 100644 index 000000000..feb8c8b87 --- /dev/null +++ b/cbz/evidence/cold-start-node/green/2db-hosted-job.log @@ -0,0 +1,691 @@ +2026-10-29T20:37:59.3473504Z Current runner version: '2.338.0' +2026-10-29T20:37:59.3499656Z ##[group]Runner Image Provisioner +2026-10-29T20:37:59.3500649Z Hosted Compute Agent +2026-10-29T20:37:59.3501270Z Version: 20261021.618 +2026-10-29T20:37:59.3502083Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:37:59.3502823Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:37:59.3503706Z Worker ID: {aad1df26-1eb6-4692-8d3b-095cb073e48c} +2026-10-29T20:37:59.3504479Z Region: eastus +2026-10-29T20:37:59.3505303Z Cloud: Azure +2026-10-29T20:37:59.3506052Z ##[endgroup] +2026-10-29T20:37:59.3507810Z ##[group]Operating System +2026-10-29T20:37:59.3509068Z Ubuntu +2026-10-29T20:37:59.3509719Z 24.04.5 +2026-10-29T20:37:59.3510270Z LTS +2026-10-29T20:37:59.3510876Z ##[endgroup] +2026-10-29T20:37:59.3511615Z ##[group]Runner Image +2026-10-29T20:37:59.3512327Z Image: ubuntu-24.04-arm +2026-10-29T20:37:59.3513003Z Version: 20261025.165.1 +2026-10-29T20:37:59.3514458Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:37:59.3516397Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:37:59.3517605Z ##[endgroup] +2026-10-29T20:37:59.3518796Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:37:59.3521580Z Contents: read +2026-10-29T20:37:59.3522291Z Metadata: read +2026-10-29T20:37:59.3523042Z ##[endgroup] +2026-10-29T20:37:59.3525756Z Secret source: Actions +2026-10-29T20:37:59.3526986Z Cache mode: write +2026-10-29T20:37:59.3528040Z Prepare workflow directory +2026-10-29T20:37:59.3881732Z Prepare all required actions +2026-10-29T20:37:59.3934408Z Getting action download info +2026-10-29T20:37:59.5795667Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:37:59.6959091Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:37:59.7707325Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:37:59.9568730Z Complete job name: controls-and-prepared +2026-10-29T20:38:00.0557914Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:38:00.0559610Z with: +2026-10-29T20:38:00.0560224Z persist-credentials: false +2026-10-29T20:38:00.0561028Z fetch-depth: 0 +2026-10-29T20:38:00.0561666Z repository: d6g8k5htny-coder/main +2026-10-29T20:38:00.0565836Z token: *** +2026-10-29T20:38:00.0566601Z ssh-strict: true +2026-10-29T20:38:00.0567172Z ssh-user: git +2026-10-29T20:38:00.0567715Z clean: true +2026-10-29T20:38:00.0568427Z sparse-checkout-cone-mode: true +2026-10-29T20:38:00.0569146Z fetch-tags: false +2026-10-29T20:38:00.0569786Z show-progress: true +2026-10-29T20:38:00.0570370Z lfs: false +2026-10-29T20:38:00.0570915Z submodules: false +2026-10-29T20:38:00.0571826Z set-safe-directory: true +2026-10-29T20:38:00.0572494Z allow-unsafe-pr-checkout: false +2026-10-29T20:38:00.0573890Z ##[endgroup] +2026-10-29T20:38:00.1424995Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:38:00.1427964Z ##[group]Getting Git version info +2026-10-29T20:38:00.1428899Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:38:00.1430169Z [command]/usr/bin/git version +2026-10-29T20:38:00.1466212Z git version 2.56.0 +2026-10-29T20:38:00.1486609Z ##[endgroup] +2026-10-29T20:38:00.1493217Z Temporarily overriding HOME='/home/runner/work/_temp/354369e9-d80f-491f-9455-c4315ea91cfb' before making global git config changes +2026-10-29T20:38:00.1496191Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:38:00.1499230Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:38:00.1540204Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:38:00.1544520Z ##[group]Determining repository object format +2026-10-29T20:38:00.1549795Z ##[endgroup] +2026-10-29T20:38:00.1550888Z ##[group]Initializing the repository +2026-10-29T20:38:00.1552059Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:38:00.1663444Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:38:00.1664796Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:38:00.1666230Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:38:00.1667196Z hint: call: +2026-10-29T20:38:00.1667793Z hint: +2026-10-29T20:38:00.1668498Z hint: git config --global init.defaultBranch +2026-10-29T20:38:00.1670666Z hint: +2026-10-29T20:38:00.1671547Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:38:00.1672583Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:38:00.1673571Z hint: +2026-10-29T20:38:00.1674126Z hint: git branch -m +2026-10-29T20:38:00.1674852Z hint: +2026-10-29T20:38:00.1675925Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:38:00.1677059Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:38:00.1682621Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:38:00.1725368Z ##[endgroup] +2026-10-29T20:38:00.1726918Z ##[group]Disabling automatic garbage collection +2026-10-29T20:38:00.1728386Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:38:00.1762299Z ##[endgroup] +2026-10-29T20:38:00.1763746Z ##[group]Setting up auth +2026-10-29T20:38:00.1765222Z Removing SSH command configuration +2026-10-29T20:38:00.1766678Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:38:00.1797618Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:38:00.2096686Z Removing HTTP extra header +2026-10-29T20:38:00.2101103Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:38:00.2131489Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:38:00.2321723Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:38:00.2324190Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:38:00.2353813Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:38:00.2555681Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:38:00.2592745Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:00.2622265Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:00.2653078Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:00.2684978Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:00.2716249Z ##[endgroup] +2026-10-29T20:38:00.2718042Z ##[group]Fetching the repository +2026-10-29T20:38:00.2720298Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T20:38:11.7317177Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:38:11.7319633Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:38:11.7322057Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:38:11.7324666Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:38:11.7327899Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:38:11.7330974Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:38:11.7333979Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:38:11.7337031Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:38:11.7339798Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:38:11.7342650Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:38:11.7355490Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:38:11.7358300Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:38:11.7361328Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:38:11.7364042Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:38:11.7367116Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:38:11.7370196Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:38:11.7373129Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:38:11.7375890Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:38:11.7378408Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:38:11.7381527Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:38:11.7384681Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:38:11.7387730Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:38:11.7390760Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:38:11.7393341Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:38:11.7396178Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:38:11.7399148Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:38:11.7402177Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:38:11.7404918Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:38:11.7407468Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:38:11.7410491Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:38:11.7414180Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:38:11.7416961Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:38:11.7419891Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:38:11.7422432Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:38:11.7425318Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:38:11.7427812Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:38:11.7430487Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:38:11.7433082Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:38:11.7435798Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:38:11.7438437Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:38:11.7441062Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:38:11.7443761Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:38:11.7446454Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:38:11.7449024Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:38:11.7452644Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:38:11.7455976Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:38:11.7458288Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:38:11.7460237Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:38:11.7462343Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:38:11.7464672Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:38:11.7467323Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:38:11.7469838Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:38:11.7472093Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:38:11.7474173Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:38:11.7476570Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:38:11.7478678Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:38:11.7480822Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:38:11.7483028Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:38:11.7485390Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:38:11.7487960Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:38:11.7490298Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:38:11.7492756Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:38:11.7495278Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:38:11.7497389Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:38:11.7499695Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:38:11.7502182Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:38:11.7504528Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:38:11.7507181Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:38:11.7509352Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:38:11.7511704Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:38:11.7513911Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:38:11.7515827Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:38:11.7517814Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:38:11.7520159Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:38:11.7522606Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:38:11.7524893Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:38:11.7527071Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:38:11.7529069Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:38:11.7531062Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:38:11.7533258Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:38:11.7535321Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:38:11.7537422Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:38:11.7540001Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:38:11.7542216Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:38:11.7544276Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:38:11.7546638Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:38:11.7549071Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:38:11.7551688Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:38:11.7554170Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:38:11.7557134Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:38:11.7559621Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:38:11.7562150Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:38:11.7564696Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:38:11.7567325Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:38:11.7569848Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:38:11.7572327Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:38:11.7574764Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:38:11.7577498Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:38:11.7580116Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:38:11.7582586Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:38:11.7584995Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:38:11.7587698Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:38:11.7590022Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:38:11.7592210Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:38:11.7595448Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:38:11.7597999Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:38:11.7600523Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:38:11.7602925Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:38:11.7605433Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:38:11.7607816Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:38:11.7610513Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:38:11.7613117Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:38:11.7615622Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:38:11.7617610Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:38:11.7620017Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:38:11.7623176Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:38:11.7626541Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:38:11.7629397Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:38:11.7631728Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:38:11.7633650Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:38:11.7636349Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:38:11.7638682Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:38:11.7640987Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:38:11.7643159Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:38:11.7645417Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:38:11.7647745Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:38:11.7649883Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:38:11.7651986Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:38:11.7653965Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:38:11.7656134Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:38:11.7659012Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:38:11.7661961Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:38:11.7664061Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:38:11.7666561Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:38:11.7669174Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:38:11.7671670Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:38:11.7673975Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:38:11.7676622Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:38:11.7678975Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:38:11.7681376Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:38:11.7683701Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:38:11.7686530Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:38:11.7689164Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:38:11.7691174Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:38:11.7693421Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:38:11.7695791Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:38:11.7697835Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:38:11.7699986Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:38:11.7702354Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:38:11.7704570Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:38:11.7707130Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:38:11.7709312Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:38:11.7711733Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:38:11.7714446Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:38:11.7717169Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:38:11.7719772Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:38:11.7721872Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:38:11.7724244Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:38:11.7727014Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:38:11.7729428Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:38:11.7731785Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:38:11.7734104Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:38:11.7736914Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:38:11.7739565Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:38:11.7741921Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:38:11.7744189Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:38:11.7746409Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:38:11.7748468Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:38:11.7750988Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:38:11.7753467Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:38:11.7755805Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:38:11.7757980Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:38:11.7760959Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:38:11.7763761Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:38:11.7766865Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:38:11.7769633Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:38:11.7772083Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:38:11.7774556Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:38:11.7777290Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:38:11.7779563Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:38:11.7781886Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:38:11.7784151Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:38:11.7786726Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:38:11.7789194Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:38:11.7791761Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:38:11.7794352Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:38:11.7796788Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:38:11.7798671Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:38:11.7800861Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:38:11.7803130Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:38:11.7805679Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:38:11.7807929Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:38:11.7809964Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:38:11.7812262Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:38:11.7814243Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:38:11.7816547Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:38:11.7818868Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:38:11.7821077Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:38:11.7823375Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:38:11.7825921Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:38:11.7828652Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:38:11.7830785Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:38:11.7832943Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:38:11.7835370Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:38:11.7837485Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:38:11.7839911Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:38:11.7842165Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:38:11.7844200Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:38:11.7846864Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:38:11.7849202Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:38:11.7851266Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:38:11.7853235Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:38:11.7855341Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:38:11.7857421Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:38:11.7859350Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:38:11.7862287Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:38:11.7865505Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:38:11.7868093Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:38:11.7870606Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:38:11.7872841Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:38:11.7875450Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:38:11.7877952Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:38:11.7879948Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:38:11.7881813Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:38:11.7883798Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:38:11.7886133Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:38:11.7888332Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:38:11.7890619Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:38:11.7893327Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:38:11.7895534Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:38:11.7897581Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:38:11.7899356Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:38:11.7901060Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:38:11.7903054Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:38:11.7905327Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:38:11.7907447Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:38:11.7909919Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:38:11.7911918Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:38:11.7913782Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:38:11.7915963Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:38:11.7918217Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:38:11.7920821Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:38:11.7923169Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:38:11.7925641Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:38:11.7928444Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:38:11.7930951Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:38:11.7933275Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:38:11.7934850Z * [new branch] main -> origin/main +2026-10-29T20:38:11.7936958Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:38:11.7939406Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:38:11.7941726Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:38:11.7943745Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:38:11.7945734Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:38:11.7947340Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:38:11.7948795Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:38:11.7950112Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:38:11.7951517Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:38:11.7952837Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:38:11.7954266Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:38:11.7956291Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:38:11.7957600Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:38:11.7960522Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T20:38:11.7961949Z origin/cbz/cold-start-node-20261029 +2026-10-29T20:38:11.7964315Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T20:38:11.7966224Z 2db895e866dcd37ae7343eedbdfc2272aeb82e6c +2026-10-29T20:38:11.7968900Z ##[endgroup] +2026-10-29T20:38:11.7970157Z ##[group]Determining the checkout info +2026-10-29T20:38:11.7971561Z ##[endgroup] +2026-10-29T20:38:11.7972361Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:38:11.7975010Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:38:11.7978083Z ##[group]Checking out the ref +2026-10-29T20:38:11.7979917Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T20:38:12.0523392Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T20:38:12.0525962Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T20:38:12.0553454Z ##[endgroup] +2026-10-29T20:38:12.0597171Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:38:12.0622300Z 2db895e866dcd37ae7343eedbdfc2272aeb82e6c +2026-10-29T20:38:12.0637012Z ##[group]Removing auth +2026-10-29T20:38:12.0637520Z Removing SSH command configuration +2026-10-29T20:38:12.0638122Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:38:12.0670501Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:38:12.0870438Z Removing HTTP extra header +2026-10-29T20:38:12.0873225Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:38:12.0905599Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:38:12.1099261Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:38:12.1100602Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:38:12.1124682Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:38:12.1126105Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:38:12.1126695Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:38:12.1127247Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:38:12.1132211Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:38:12.1155884Z /home/runner/work/_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:12.1163955Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-bce796b8\-19ee\-48e2\-9fa9\-a7aa091bae38\.config +2026-10-29T20:38:12.1197029Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:38:12.1219966Z /home/runner/work/_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:12.1227216Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-bce796b8\-19ee\-48e2\-9fa9\-a7aa091bae38\.config +2026-10-29T20:38:12.1259507Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:38:12.1286829Z /github/runner_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:12.1291416Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-bce796b8\-19ee\-48e2\-9fa9\-a7aa091bae38\.config +2026-10-29T20:38:12.1323511Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:38:12.1346289Z /github/runner_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config +2026-10-29T20:38:12.1353667Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-bce796b8\-19ee\-48e2\-9fa9\-a7aa091bae38\.config +2026-10-29T20:38:12.1386289Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:38:12.1582705Z Removing credentials config '/home/runner/work/_temp/git-credentials-bce796b8-19ee-48e2-9fa9-a7aa091bae38.config' +2026-10-29T20:38:12.1592532Z ##[endgroup] +2026-10-29T20:38:12.1855005Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:38:12.1855915Z with: +2026-10-29T20:38:12.1856653Z python-version: 3.11 +2026-10-29T20:38:12.1857111Z check-latest: false +2026-10-29T20:38:12.1859815Z token: *** +2026-10-29T20:38:12.1860253Z update-environment: true +2026-10-29T20:38:12.1860594Z allow-prereleases: false +2026-10-29T20:38:12.1860965Z freethreaded: false +2026-10-29T20:38:12.1861304Z ##[endgroup] +2026-10-29T20:38:12.2819760Z ##[group]Installed versions +2026-10-29T20:38:12.2926856Z Successfully set up CPython (3.11.17) +2026-10-29T20:38:12.2932558Z ##[endgroup] +2026-10-29T20:38:12.3036693Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:38:12.3037677Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:38:12.3277027Z shell: /usr/bin/bash -e {0} +2026-10-29T20:38:12.3277553Z env: +2026-10-29T20:38:12.3277937Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:12.3278706Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:38:12.3279255Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:12.3279790Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:12.3280319Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:12.3280817Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:38:12.3281282Z ##[endgroup] +2026-10-29T20:38:13.1409975Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:38:13.1411142Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:38:13.1412158Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:38:13.1413186Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:38:13.1414182Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:38:13.1416123Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:38:13.1416937Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:38:13.1417989Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:38:13.1418928Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:38:13.3612998Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:38:13.3794330Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:38:15.3616291Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:38:15.3823062Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:38:15.3968914Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:38:15.4119012Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:38:15.4277374Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:38:15.4424626Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:38:15.5860914Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:38:15.6021896Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:38:15.6245464Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:38:15.6429108Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:38:15.6594969Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:38:15.6769012Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:38:15.6997749Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:38:15.7158355Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:38:15.7322209Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:38:15.7509127Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:38:15.8473800Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:38:15.8630107Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:38:15.8844828Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:38:15.9072848Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:38:15.9282961Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:38:15.9503647Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:38:15.9874717Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:38:16.0111407Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:38:16.0259295Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:38:16.0407664Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:38:16.0678046Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:38:16.0828850Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:38:16.0998866Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:38:18.9109649Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:38:19.4912738Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:38:20.4591172Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:38:20.4591840Z +2026-10-29T20:38:20.4592056Z ---------------------------------------------------------------------- +2026-10-29T20:38:20.4592621Z Ran 43 tests in 7.319s +2026-10-29T20:38:20.4592881Z +2026-10-29T20:38:20.4592990Z OK +2026-10-29T20:38:20.4784048Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:38:20.4784817Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:38:20.4834307Z shell: /usr/bin/bash -e {0} +2026-10-29T20:38:20.4834605Z env: +2026-10-29T20:38:20.4834980Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:20.4835697Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:38:20.4836163Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:20.4836706Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:20.4837128Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:20.4837582Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:38:20.4837948Z ##[endgroup] +2026-10-29T20:38:22.6810734Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:38:22.6811769Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:38:22.6812622Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:38:22.6813595Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:38:22.6814562Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:38:22.6815737Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:38:22.6816548Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:38:22.6817892Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:38:22.6819368Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:38:23.2306733Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:38:23.2484298Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:38:23.3471001Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:38:23.3692726Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:38:23.3844275Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:38:23.3999462Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:38:23.4162038Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:38:23.4318011Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:38:23.9692960Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:38:23.9855439Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:38:24.0060898Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:38:24.0239778Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:38:24.0398208Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:38:24.0560308Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:38:24.0786412Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:38:24.0942196Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:38:24.1097062Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:38:24.1275443Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:38:24.2304291Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:38:24.2468741Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:38:24.2693370Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:38:24.2931156Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:38:24.3151367Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:38:24.3380816Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:38:24.3638867Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:38:24.3875667Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:38:24.4027549Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:38:24.4179824Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:38:24.4445227Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:38:24.4596836Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:38:24.4763906Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:38:32.9698034Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:38:34.8221448Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:38:36.5385276Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:38:36.5386024Z +2026-10-29T20:38:36.5386251Z ---------------------------------------------------------------------- +2026-10-29T20:38:36.5386916Z Ran 43 tests in 13.858s +2026-10-29T20:38:36.5387084Z +2026-10-29T20:38:36.5387184Z OK +2026-10-29T20:38:36.5582965Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:38:36.5583882Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:38:36.5584648Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:38:36.5618478Z shell: /usr/bin/bash -e {0} +2026-10-29T20:38:36.5618795Z env: +2026-10-29T20:38:36.5619093Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:36.5619666Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:38:36.5620158Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:36.5620622Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:36.5621053Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:36.5621584Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:38:36.5621990Z ##[endgroup] +2026-10-29T20:38:36.5686821Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:38:38.0045350Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:38:38.1758662Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:38:38.1759866Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:38:38.1797884Z shell: /usr/bin/bash -e {0} +2026-10-29T20:38:38.1798332Z env: +2026-10-29T20:38:38.1798869Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:38.1799394Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:38:38.1799936Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:38.1800336Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:38.1801149Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:38.1801647Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:38:38.1802188Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:38:38.1802587Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:38:38.1802899Z ##[endgroup] +2026-10-29T20:38:43.9357966Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:38:43.9516148Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:38:43.9516671Z python -B -S - <<'PY' +2026-10-29T20:38:43.9516956Z import hashlib, json, os +2026-10-29T20:38:43.9517377Z from pathlib import Path +2026-10-29T20:38:43.9517734Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T20:38:43.9518209Z record = json.loads((root / "result.json").read_text()) +2026-10-29T20:38:43.9518690Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T20:38:43.9519121Z raw = (root / "node.tap").read_bytes() +2026-10-29T20:38:43.9519529Z def verify_log(value): +2026-10-29T20:38:43.9519909Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T20:38:43.9520447Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T20:38:43.9520882Z verify_log(raw) +2026-10-29T20:38:43.9521290Z try: +2026-10-29T20:38:43.9521522Z  verify_log(raw + b"\0") +2026-10-29T20:38:43.9521805Z except ValueError: +2026-10-29T20:38:43.9522141Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T20:38:43.9522470Z else: +2026-10-29T20:38:43.9522846Z  raise SystemExit("modified transcript was admitted") +2026-10-29T20:38:43.9523234Z text = raw.decode("utf-8") +2026-10-29T20:38:43.9523599Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T20:38:43.9524056Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T20:38:43.9524445Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T20:38:43.9524898Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T20:38:43.9525691Z for number, chunk in enumerate(chunks): +2026-10-29T20:38:43.9526117Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T20:38:43.9526581Z PY +2026-10-29T20:38:43.9558872Z shell: /usr/bin/bash -e {0} +2026-10-29T20:38:43.9559188Z env: +2026-10-29T20:38:43.9559490Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:43.9560026Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:38:43.9560523Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:43.9560984Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:43.9561459Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:43.9561913Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:38:43.9562308Z ##[endgroup] +2026-10-29T20:38:43.9842923Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:38:43.934258+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "e0acd188a5a881b377742be0547ea0906a5ae20c5dcf4e2f0a1c0bd33b8fb3f0", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "2db895e866dcd37ae7343eedbdfc2272aeb82e6c", "source_before": "2db895e866dcd37ae7343eedbdfc2272aeb82e6c", "started_utc": "2026-10-29T20:38:38.241032+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:38:43.9882910Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T20:38:43.9883216Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T20:38:43.9883591Z CBZ_NODE_TAP_GIT_BLOB dcbeca296f5d6d46180001ac5c83e3347366be66 +2026-10-29T20:38:43.9897646Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 40.704828\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 8.412956\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.729494\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 7.506352\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.503909\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.566393\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.579761\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.022903\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.597626\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.644627\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.538497\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.01559\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.80172\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.677716\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 4.500727\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.728053\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.649652\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.298226\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.025263\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.556969\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit bri" +2026-10-29T20:38:43.9924020Z CBZ_NODE_TAP_JSON 1 "dge\n ---\n duration_ms: 0.590954\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.298831\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.610442\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.813625\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.534344\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.236757\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.824417\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.798792\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.986717\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.291503\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.278814\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.002934\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.852177\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 2.537868\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 1.729499\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.294761\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.327138\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.336202\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.33885\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.183957\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot rema" +2026-10-29T20:38:43.9950361Z CBZ_NODE_TAP_JSON 2 "ins a visible reading action\n ---\n duration_ms: 0.148797\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.184693\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.344592\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.297897\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.152269\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 1.876608\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 1.386202\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 1.001294\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.143578\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 0.944692\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 0.994582\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 1.691283\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.573775\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.482462\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.40761\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.343456\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.363003\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.239822\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are dete" +2026-10-29T20:38:43.9976621Z CBZ_NODE_TAP_JSON 3 "rministic and inputs remain unchanged\n ---\n duration_ms: 1.036863\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.377075\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.237503\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 2.435441\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.514843\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.826039\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.294601\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.045817\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.666602\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.632371\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.943292\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.655899\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.189595\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.949084\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.066815\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.131355\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 9.438179\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 9.373113\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 405.073632\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history stat" +2026-10-29T20:38:44.0002734Z CBZ_NODE_TAP_JSON 4 "e; share link only includes filters\n ---\n duration_ms: 77.973736\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 55.192398\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 41.480435\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 25.819854\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 28.049729\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 35.144077\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 11.920333\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 26.900454\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 26.746945\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 23.890947\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 19.407413\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 7.738208\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 9.758397\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 5.027951\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.776913\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 9.337879\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.78284\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.037624\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.674884\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers u" +2026-10-29T20:38:44.0028918Z CBZ_NODE_TAP_JSON 5 "se distinct identities and ordinary, non-live count spans\n ---\n duration_ms: 6.31963\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 12.029344\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.256438\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.014966\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.26935\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.061064\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.743919\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 0.870426\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.756559\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 2.172281\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.164227\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 0.827417\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.58477\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.534752\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.562161\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.55436\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 0.777927\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.640643\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.506639\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.649588\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 2.763875\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 2.756098\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 2.261691\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.494279\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 0.4129\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid range\n" +2026-10-29T20:38:44.0055304Z CBZ_NODE_TAP_JSON 6 " ---\n duration_ms: 0.464262\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.47959\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 0.507159\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.133796\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 0.790407\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.523856\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 3.454639\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 0.989942\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.533288\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 0.543232\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.841913\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.618979\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 1.128818\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.551456\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.45407\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.509967\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.578705\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.875243\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 1.701139\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.508016\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.383815\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 8.254567\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort sig" +2026-10-29T20:38:44.0081384Z CBZ_NODE_TAP_JSON 7 "nal\n ---\n duration_ms: 1.829207\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.568527\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.153715\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.46655\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.266656\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 3.527865\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 0.997222\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.887066\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.830409\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.558648\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 13.571942\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 2.354751\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 14.08871\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.26883\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.550392\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.315985\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 2.999522\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 0.942709\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.764839\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.780152\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can con" +2026-10-29T20:38:44.0107376Z CBZ_NODE_TAP_JSON 8 "struct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.565745\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.686397\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.293865\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.212983\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.512376\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.447381\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.143284\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.290553\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.160525\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.563017\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 107.084472\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.367611\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.379323\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.302783\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.577841\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.435325\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.319089\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewritin" +2026-10-29T20:38:44.0133705Z CBZ_NODE_TAP_JSON 9 "g the address\n ---\n duration_ms: 0.282505\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.769871\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.551473\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.410012\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.453142\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.262832\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.34073\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.267872\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.546448\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.382027\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.513024\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.329082\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.718597\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 7.780121\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 0.809872\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.603514\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 0.973005\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.59817\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration_ms:" +2026-10-29T20:38:44.0160484Z CBZ_NODE_TAP_JSON 10 " 0.54316\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 0.52532\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.549984\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.661652\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.522344\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.5566\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.559153\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.570897\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.468166\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.54964\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.538504\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.484631\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.438229\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.561505\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.557064\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.49195\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.487639\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.455958\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.47055\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 0.565985\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.506704\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.525351\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.165101\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 0.978589\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.824169\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 0.85905\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.545096\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.566161\n type: 'test'\n ...\n# Subtest: acquisition: independ" +2026-10-29T20:38:44.0187052Z CBZ_NODE_TAP_JSON 11 "ent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.730684\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.540049\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.537456\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.499143\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.507455\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.429068\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.550465\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.495527\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.924916\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.514895\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.481366\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.079398\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.705653\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.082842\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.142596\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.433061\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.181766\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.350187\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 2.174017\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 1.713443\n type: 'test'\n ...\n# Subtest: equatio" +2026-10-29T20:38:44.0214944Z CBZ_NODE_TAP_JSON 12 "n and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.14838\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.086418\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.965093\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 85.604093\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.498583\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.190269\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.219895\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.299185\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 12.825384\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.609123\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 9.686218\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 2.727882\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 0.926139\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.391364\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 23.574594\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 7.687326\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 5.475524\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_ms" +2026-10-29T20:38:44.0241673Z CBZ_NODE_TAP_JSON 13 ": 6.219026\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 12.967396\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 32.500366\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 19.665549\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 13.078943\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 8.147068\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.232151\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.468758\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.515736\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 57.839901\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 3.526209\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 7.447719\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.008332\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.46315\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.232135\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.475262\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.6745\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.223863\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - only" +2026-10-29T20:38:44.0268903Z CBZ_NODE_TAP_JSON 14 " exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.40706\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.17651\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.967949\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 128.02702\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.120393\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.374147\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 2.007156\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.566345\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.496343\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.323106\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.400252\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 1.408242\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.678204\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.960613\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.375004\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.214639\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.339043\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.191974\n type: 'test'\n ...\n# Subtest: w" +2026-10-29T20:38:44.0295257Z CBZ_NODE_TAP_JSON 15 "idening the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.425948\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.318234\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.431573\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.278928\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.168715\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 25.955353\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 6.517852\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 7.68151\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.861866\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.459829\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.308383\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 2.728946\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.728382\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.444715\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.165003\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 3.417542\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 10.211082\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---\n" +2026-10-29T20:38:44.0321712Z CBZ_NODE_TAP_JSON 16 " duration_ms: 0.395684\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.266096\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.281112\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 2.370127\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.4059\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.237823\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 3.48184\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.466638\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 22.089614\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 1.748189\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.303485\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 1.89544\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 1.473908\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 3.770521\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 2.68664\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 39.79356\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 164.305763\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-evid" +2026-10-29T20:38:44.0348240Z CBZ_NODE_TAP_JSON 17 "ence after 0 ms digest delay\n ---\n duration_ms: 11.845971\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 161.860666\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 21.992171\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 162.854215\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 11.20252\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 168.626388\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 5.756597\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 1.448692\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 4.062698\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.711341\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 3.459864\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 1.72974\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 4.156637\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 7.357949\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 2.074742\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 0.200846\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 4.69126\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 2.010285\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and labels the" +2026-10-29T20:38:44.0374441Z CBZ_NODE_TAP_JSON 18 " snapshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 4.508495\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 2.718777\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.459811\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 3.337764\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 2.856237\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 1.564991\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 2.072598\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 2.509683\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 6.40224\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.471996\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 0.944717\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.527495\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.298617\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.477342\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.777368\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 1.903689\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 0.297249\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - inva" +2026-10-29T20:38:44.0400644Z CBZ_NODE_TAP_JSON 19 "lid choices cannot invent regions or objects\n ---\n duration_ms: 0.606378\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.910147\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.488877\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.148036\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 3.687262\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 1.864272\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 1.502141\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 1.445123\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 0.90898\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.403924\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.023047\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.491486\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.810584\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 2.025437\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.31517\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.428668\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.645715\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.703971\n type: 'test'\n ...\n# S" +2026-10-29T20:38:44.0427636Z CBZ_NODE_TAP_JSON 20 "ubtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 7.381501\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.52771\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.538224\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.326498\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.190669\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.013414\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.292409\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.249992\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.233307\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.374675\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.218143\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.338698\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.304713\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.809656\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.476038\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.425013\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.397842\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.213949\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.405" +2026-10-29T20:38:44.0453680Z CBZ_NODE_TAP_JSON 21 "155\n type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 8.695012\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.082472\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 0.995302\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 0.883898\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.226107\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.38406\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.341402\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.414733\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.905883\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 2.695937\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.118922\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 1.537006\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 3.166231\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.311063\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.429261\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.39314\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 1.228581\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.264342\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 61.638063\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 31.251184\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 58.850787\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 122.305009\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and malfo" +2026-10-29T20:38:44.0479302Z CBZ_NODE_TAP_JSON 22 "rmed hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 88.821301\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 57.352758\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 34.573043\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.103169\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.457653\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 0.869762\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.34426\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 31.477599\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 11.871684\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 4.207718\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 5.964027\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 2.546308\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 1.400706\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.529272\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 6.788659\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 5.678498\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 1.551086\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.377289\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.8" +2026-10-29T20:38:44.0505462Z CBZ_NODE_TAP_JSON 23 "22133\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 3.181423\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 4.888178\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 3.808666\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.171073\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.238827\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.67434\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.578794\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.701789\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.495535\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.292424\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 10.72841\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.731308\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 0.847881\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 2.645583\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.041693\n type: 'test'\n " +2026-10-29T20:38:44.0531551Z CBZ_NODE_TAP_JSON 24 " ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.431685\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.567263\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 2.042549\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 5.829382\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 0.964332\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.278552\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 48.026431\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 6.641167\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 10.133663\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 16.966412\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.348932\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 4.031161\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 9.909329\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 3.980744\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 0.88905\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.870906\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.543544\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified repla" +2026-10-29T20:38:44.0557717Z CBZ_NODE_TAP_JSON 25 "y source\n ---\n duration_ms: 1.819974\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.680253\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.425885\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 1.817246\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 0.934324\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 16.242071\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 0.466766\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.020006\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 1.254062\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.057992\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 5.075232\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 3.217328\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.877818\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.168618\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 3.636741\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 4.07113\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 4.893067\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.181947\n type: " +2026-10-29T20:38:44.0583637Z CBZ_NODE_TAP_JSON 26 "'test'\n ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 14.663608\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.210314\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 16.432165\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 2.986369\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 4.88509\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 8.133876\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 7.564411\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 7.625477\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 8.00604\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.658506\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.807593\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.363731\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.488015\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.435477\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 2.712969\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.703445\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.654243\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.568487\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view thr" +2026-10-29T20:38:44.0610417Z CBZ_NODE_TAP_JSON 27 "ough 3D, 2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 3.709151\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.164827\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 7.572467\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 33.046518\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 157.207702\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 307.805472\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 980.796459\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 279.036818\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 393.083862\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 132.777121\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 518.674914\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 171.624879\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.39014\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 151.676559\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 3.53089\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.688717\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.236831\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.560919\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n durati" +2026-10-29T20:38:44.0636878Z CBZ_NODE_TAP_JSON 28 "on_ms: 0.459918\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.704525\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.083079\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 18.502642\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 2.140513\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.197684\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 1.42533\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 2.953881\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 2.02982\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.833985\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.531152\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 10.835717\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 2.756947\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.350144\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.796216\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 4.823017\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 20.014479\n type: 'test'\n ...\n# Subt" +2026-10-29T20:38:44.0662778Z CBZ_NODE_TAP_JSON 29 "est: query view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 0.220231\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.700833\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 0.960469\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.314874\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.404044\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.436635\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.516351\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.780847\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.682557\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.082681\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.266918\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.035135\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.116204\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 8.518872\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 11.388077\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 39.766495\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 2.883567\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 1.665314\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.380875\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.178741\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.288177\n type: 'test'\n ...\n# Subtest: " +2026-10-29T20:38:44.0688747Z CBZ_NODE_TAP_JSON 30 "status snapshot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 0.78096\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.213447\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.156093\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.096634\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.288337\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.169181\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.096211\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.180605\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.179853\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.249207\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.199822\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.21141\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.425004\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.120225\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.478756\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.566148\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.071049\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.580133\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.593133\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 12.934589\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.20533\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 76.344808\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through" +2026-10-29T20:38:44.0715643Z CBZ_NODE_TAP_JSON 31 " pagination and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 53.8431\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 37.360977\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 85.380451\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 145.219905\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 32.588097\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.487309\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.587285\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.10908\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.994345\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 34.237471\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.591469\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.832583\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.196835\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.771253\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 23.735487\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 24.644623\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 20.009264\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 28.212349\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused conf" +2026-10-29T20:38:44.0741902Z CBZ_NODE_TAP_JSON 32 "iguration still reveals the requested unavailable section\n ---\n duration_ms: 1.62155\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 25.585182\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 19.590452\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 26.49671\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.544741\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 26.553391\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 19.330122\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.243258\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 29.952835\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.408052\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 24.138546\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 27.569591\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 26.637679\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 28.005051\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 25.206475\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 24.770007\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 22.107441\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 7.404102\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 23.917784\n type: 'test'\n ." +2026-10-29T20:38:44.0768035Z CBZ_NODE_TAP_JSON 33 "..\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 22.013025\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 24.567526\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.366811\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.09916\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 0.503124\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.215186\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.47778\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 2.86152\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.855607\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.765975\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.862719\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.050513\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.113018\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.395499\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.152066\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.537421\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.598085\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 2.014696\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable co" +2026-10-29T20:38:44.0794062Z CBZ_NODE_TAP_JSON 34 "mmit\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.438988\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.565941\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.260386\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.305739\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.759223\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.373235\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.365667\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.267834\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.259602\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.496805\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.75187\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 7.686721\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.528676\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 0.515508\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 0.946232\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 5.970554\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.48298\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 1.540277\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 9.479528\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - compari" +2026-10-29T20:38:44.0820196Z CBZ_NODE_TAP_JSON 35 "son model is implemented\n ---\n duration_ms: 5.733328\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.447828\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 308.888941\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 2.521213\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.664582\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 40.029208\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 24.608022\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 5.513798\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 16.120735\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 44.167587\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 6.682192\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.814086\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 7.957442\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 0.588581\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 4.670407\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 74.878076\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.421172\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.226026\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.344603\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, encod" +2026-10-29T20:38:44.0846629Z CBZ_NODE_TAP_JSON 36 "ed traversal and malformed identities stay literal\n ---\n duration_ms: 0.554517\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.67367\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.299236\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.073513\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 2.199714\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.384387\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.26409\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.134186\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 0.927848\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.348747\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.236578\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.719982\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 1.426756\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 0.664549\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.237538\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 11.072853\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.277362\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.500724\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields\n" +2026-10-29T20:38:44.0873016Z CBZ_NODE_TAP_JSON 37 " ---\n duration_ms: 0.799111\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.446644\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.656173\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.478652\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.640989\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.303387\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.442564\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.287514\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.25813\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.737254\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.590781\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.497517\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 21.9668\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 3.783608\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.107113\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 1.860744\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.460012\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok 72" +2026-10-29T20:38:44.0899584Z CBZ_NODE_TAP_JSON 38 "1 - capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.359731\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.119866\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.735958\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.277146\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.718551\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 3.57275\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.891079\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.332034\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.451523\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.480996\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.074217\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.378427\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.282674\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.395011\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.307866\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 77.58629\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 43.252282\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 37.051" +2026-10-29T20:38:44.0925926Z CBZ_NODE_TAP_JSON 39 "294\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 75.348399\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 142.024782\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.623381\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.037849\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.440668\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.504451\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.330987\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.706838\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.492371\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.304459\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.697518\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.309105\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 22.558885\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 22.421772\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 19.324618\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 22.612957\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.49062\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 23.203283\n type: 'test'\n ...\n# Subtest: reader movement between source settlement" +2026-10-29T20:38:44.0944776Z CBZ_NODE_TAP_JSON 40 " and final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 19.320114\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 27.045419\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.72983\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 22.227155\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 19.560436\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.205729\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 21.606205\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.251194\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5108.241554\n" +2026-10-29T20:38:44.1050283Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:38:44.1050815Z with: +2026-10-29T20:38:44.1051140Z name: cbz-node-result +2026-10-29T20:38:44.1051498Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:38:44.1051837Z if-no-files-found: error +2026-10-29T20:38:44.1052164Z compression-level: 6 +2026-10-29T20:38:44.1052420Z overwrite: false +2026-10-29T20:38:44.1052657Z include-hidden-files: false +2026-10-29T20:38:44.1053029Z archive: true +2026-10-29T20:38:44.1053290Z env: +2026-10-29T20:38:44.1053620Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:44.1054092Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:38:44.1054551Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:44.1055396Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:44.1056015Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:38:44.1056556Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:38:44.1056926Z ##[endgroup] +2026-10-29T20:38:44.2399741Z With the provided path, there will be 41 files uploaded +2026-10-29T20:38:44.2403616Z Artifact name is valid! +2026-10-29T20:38:44.2404159Z Root directory input is valid! +2026-10-29T20:38:44.4190993Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:38:44.4221178Z Beginning upload of artifact content to blob storage +2026-10-29T20:38:44.5977099Z Uploaded bytes 504924 +2026-10-29T20:38:44.6142226Z Finished uploading artifact content to blob storage! +2026-10-29T20:38:44.6143425Z SHA256 digest of uploaded artifact is 992168bb5cd49ed47fcc87933751cc6eb19a95942d0b0bbec22026623a1575c1 +2026-10-29T20:38:44.6144035Z Finalizing artifact upload +2026-10-29T20:38:45.0616975Z Artifact cbz-node-result successfully finalized. Artifact ID 12930309399 +2026-10-29T20:38:45.0617787Z Artifact cbz-node-result has been successfully uploaded! Final size is 504924 bytes. Artifact ID is 12930309399 +2026-10-29T20:38:45.0620473Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40950731897/artifacts/12930309399 +2026-10-29T20:38:45.0916030Z Post job cleanup. +2026-10-29T20:38:45.1991122Z Post job cleanup. +2026-10-29T20:38:45.2701084Z [command]/usr/bin/git version +2026-10-29T20:38:45.2741859Z git version 2.56.0 +2026-10-29T20:38:45.2786102Z Temporarily overriding HOME='/home/runner/work/_temp/1ecde554-166c-4699-8ddb-7683e000245d' before making global git config changes +2026-10-29T20:38:45.2786830Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:38:45.2788948Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:38:45.2820966Z Removing SSH command configuration +2026-10-29T20:38:45.2827947Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:38:45.2866181Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:38:45.3066942Z Removing HTTP extra header +2026-10-29T20:38:45.3071347Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:38:45.3112671Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:38:45.3323058Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:38:45.3323697Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:38:45.3350388Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:38:45.3684630Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/green/2db-node.tap b/cbz/evidence/cold-start-node/green/2db-node.tap new file mode 100644 index 000000000..dcbeca296 --- /dev/null +++ b/cbz/evidence/cold-start-node/green/2db-node.tap @@ -0,0 +1,4596 @@ +TAP version 13 +# Subtest: tests/fixtures/museum_fixture.mjs +ok 1 - tests/fixtures/museum_fixture.mjs + --- + duration_ms: 40.704828 + type: 'test' + ... +# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats +ok 2 - only the current query is announced after 500ms of quiet, even if its count repeats + --- + duration_ms: 8.412956 + type: 'test' + ... +# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results +ok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results + --- + duration_ms: 0.729494 + type: 'test' + ... +# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion +ok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion + --- + duration_ms: 7.506352 + type: 'test' + ... +# Subtest: Source-identical documents at another recorded revision retain their actual current pin +ok 5 - Source-identical documents at another recorded revision retain their actual current pin + --- + duration_ms: 1.503909 + type: 'test' + ... +# Subtest: changed scope leaves the mapping unavailable +ok 6 - changed scope leaves the mapping unavailable + --- + duration_ms: 0.566393 + type: 'test' + ... +# Subtest: extra graph field leaves the mapping unavailable +ok 7 - extra graph field leaves the mapping unavailable + --- + duration_ms: 0.579761 + type: 'test' + ... +# Subtest: changed source blob leaves the mapping unavailable +ok 8 - changed source blob leaves the mapping unavailable + --- + duration_ms: 1.022903 + type: 'test' + ... +# Subtest: changed source size leaves the mapping unavailable +ok 9 - changed source size leaves the mapping unavailable + --- + duration_ms: 0.597626 + type: 'test' + ... +# Subtest: changed fingerprint leaves the mapping unavailable +ok 10 - changed fingerprint leaves the mapping unavailable + --- + duration_ms: 0.644627 + type: 'test' + ... +# Subtest: missing source leaves the mapping unavailable +ok 11 - missing source leaves the mapping unavailable + --- + duration_ms: 0.538497 + type: 'test' + ... +# Subtest: changed formal manifest leaves the mapping unavailable +ok 12 - changed formal manifest leaves the mapping unavailable + --- + duration_ms: 1.01559 + type: 'test' + ... +# Subtest: An equal-looking different node ID is never inferred to be covered +ok 13 - An equal-looking different node ID is never inferred to be covered + --- + duration_ms: 0.80172 + type: 'test' + ... +# Subtest: Other actual claims keep missing mappings explicit +ok 14 - Other actual claims keep missing mappings explicit + --- + duration_ms: 0.677716 + type: 'test' + ... +# Subtest: The actual older committed observation has a different manifest and remains unmapped +ok 15 - The actual older committed observation has a different manifest and remains unmapped + --- + duration_ms: 4.500727 + type: 'test' + ... +# Subtest: An execution for another revision cannot attach to the artifact +ok 16 - An execution for another revision cannot attach to the artifact + --- + duration_ms: 0.728053 + type: 'test' + ... +# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record +ok 17 - A fabricated accepted alignment cannot replace the pinned adverse record + --- + duration_ms: 0.649652 + type: 'test' + ... +# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review +ok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review + --- + duration_ms: 3.298226 + type: 'test' + ... +# Subtest: an unknown manifest cannot use the explicit bridge +ok 19 - an unknown manifest cannot use the explicit bridge + --- + duration_ms: 1.025263 + type: 'test' + ... +# Subtest: a wrong manifest size cannot use the explicit bridge +ok 20 - a wrong manifest size cannot use the explicit bridge + --- + duration_ms: 0.556969 + type: 'test' + ... +# Subtest: duplicate formal inventory cannot use the explicit bridge +ok 21 - duplicate formal inventory cannot use the explicit bridge + --- + duration_ms: 0.590954 + type: 'test' + ... +# Subtest: changed claim scope cannot use the explicit bridge +ok 22 - changed claim scope cannot use the explicit bridge + --- + duration_ms: 1.298831 + type: 'test' + ... +# Subtest: an extra claim coverage field cannot use the explicit bridge +ok 23 - an extra claim coverage field cannot use the explicit bridge + --- + duration_ms: 0.610442 + type: 'test' + ... +# Subtest: another declaration cannot replace the pinned evidence +ok 24 - another declaration cannot replace the pinned evidence + --- + duration_ms: 0.813625 + type: 'test' + ... +# Subtest: a forged receipt with the same commit cannot replace the pinned evidence +ok 25 - a forged receipt with the same commit cannot replace the pinned evidence + --- + duration_ms: 0.534344 + type: 'test' + ... +# Subtest: a fabricated accepted review cannot replace the pinned evidence +ok 26 - a fabricated accepted review cannot replace the pinned evidence + --- + duration_ms: 1.236757 + type: 'test' + ... +# Subtest: An equally named different claim and prototype key remain unmapped +ok 27 - An equally named different claim and prototype key remain unmapped + --- + duration_ms: 0.824417 + type: 'test' + ... +# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment +ok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment + --- + duration_ms: 0.798792 + type: 'test' + ... +# Subtest: original refuses identical duplicate proof-source entries +ok 29 - original refuses identical duplicate proof-source entries + --- + duration_ms: 0.986717 + type: 'test' + ... +# Subtest: original refuses conflicting duplicate proof-source entries +ok 30 - original refuses conflicting duplicate proof-source entries + --- + duration_ms: 1.291503 + type: 'test' + ... +# Subtest: 8228 refuses identical duplicate proof-source entries +ok 31 - 8228 refuses identical duplicate proof-source entries + --- + duration_ms: 1.278814 + type: 'test' + ... +# Subtest: 8228 refuses conflicting duplicate proof-source entries +ok 32 - 8228 refuses conflicting duplicate proof-source entries + --- + duration_ms: 1.002934 + type: 'test' + ... +# Subtest: a22f refuses identical duplicate proof-source entries +ok 33 - a22f refuses identical duplicate proof-source entries + --- + duration_ms: 0.852177 + type: 'test' + ... +# Subtest: a22f refuses conflicting duplicate proof-source entries +ok 34 - a22f refuses conflicting duplicate proof-source entries + --- + duration_ms: 2.537868 + type: 'test' + ... +# Subtest: Atlas begins with its task and working search before the source inventory +ok 35 - Atlas begins with its task and working search before the source inventory + --- + duration_ms: 1.729499 + type: 'test' + ... +# Subtest: The selector is the sole view switch while controller compatibility stays present +ok 36 - The selector is the sole view switch while controller compatibility stays present + --- + duration_ms: 0.294761 + type: 'test' + ... +# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope +ok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope + --- + duration_ms: 0.327138 + type: 'test' + ... +# Subtest: Neighborhood coverage stays available without delaying the useful graph or list +ok 38 - Neighborhood coverage stays available without delaying the useful graph or list + --- + duration_ms: 0.336202 + type: 'test' + ... +# Subtest: The historical viewer is explicitly archived with preserved entry fragments +ok 39 - The historical viewer is explicitly archived with preserved entry fragments + --- + duration_ms: 0.33885 + type: 'test' + ... +# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark +ok 40 - A closed historical archive cannot conceal a failed source or refused bookmark + --- + duration_ms: 0.183957 + type: 'test' + ... +# Subtest: Sharing the selected source snapshot remains a visible reading action +ok 41 - Sharing the selected source snapshot remains a visible reading action + --- + duration_ms: 0.148797 + type: 'test' + ... +# Subtest: Atlas layout loads after current styles without replacing the shared brand +ok 42 - Atlas layout loads after current styles without replacing the shared brand + --- + duration_ms: 0.184693 + type: 'test' + ... +# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction +ok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction + --- + duration_ms: 1.344592 + type: 'test' + ... +# Subtest: an admitted isolated node has two explicit empty groups +ok 44 - an admitted isolated node has two explicit empty groups + --- + duration_ms: 0.297897 + type: 'test' + ... +# Subtest: missing and prototype names cannot acquire inferred connections +ok 45 - missing and prototype names cannot acquire inferred connections + --- + duration_ms: 0.152269 + type: 'test' + ... +# Subtest: late optional data patches the currently selected node rather than its request-time selection +ok 46 - late optional data patches the currently selected node rather than its request-time selection + --- + duration_ms: 1.876608 + type: 'test' + ... +# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort +ok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort + --- + duration_ms: 1.386202 + type: 'test' + ... +# Subtest: focused operational evidence is retained until focus leaves its section +ok 48 - focused operational evidence is retained until focus leaves its section + --- + duration_ms: 1.001294 + type: 'test' + ... +# Subtest: a refused or no-longer-known selection receives no late substituted resume +ok 49 - a refused or no-longer-known selection receives no late substituted resume + --- + duration_ms: 1.143578 + type: 'test' + ... +# Subtest: pagehide aborts the request and suppresses an uncooperative late response +ok 50 - pagehide aborts the request and suppresses an uncooperative late response + --- + duration_ms: 0.944692 + type: 'test' + ... +# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback +ok 51 - a persisted pageshow acquires current optional records once and preserves null fallback + --- + duration_ms: 0.994582 + type: 'test' + ... +# Subtest: missing cancellation platform does not prevent primary reading or late status coordination +ok 52 - missing cancellation platform does not prevent primary reading or late status coordination + --- + duration_ms: 1.691283 + type: 'test' + ... +# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence +ok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence + --- + duration_ms: 1.573775 + type: 'test' + ... +# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies +ok 54 - dependency focus retains only selected dependent and its recorded direct dependencies + --- + duration_ms: 0.482462 + type: 'test' + ... +# Subtest: empty/filtered selection and ceiling never invent source nodes +ok 55 - empty/filtered selection and ceiling never invent source nodes + --- + duration_ms: 1.40761 + type: 'test' + ... +# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap +ok 56 - actual wrapped label sizes stay inside the viewport and do not overlap + --- + duration_ms: 1.343456 + type: 'test' + ... +# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers +ok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers + --- + duration_ms: 0.363003 + type: 'test' + ... +# Subtest: labels leave a distinct unselected node clear for actual canvas picking +ok 58 - labels leave a distinct unselected node clear for actual canvas picking + --- + duration_ms: 1.239822 + type: 'test' + ... +# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged +ok 59 - camera-depth order and identifier ties are deterministic and inputs remain unchanged + --- + duration_ms: 1.036863 + type: 'test' + ... +# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles +ok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles + --- + duration_ms: 0.377075 + type: 'test' + ... +# Subtest: edge anchors retain an in-bounds readable label when space permits +ok 61 - edge anchors retain an in-bounds readable label when space permits + --- + duration_ms: 0.237503 + type: 'test' + ... +# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits +ok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits + --- + duration_ms: 2.435441 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 63 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.514843 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 64 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 1.826039 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 65 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.294601 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 66 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 4.045817 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 67 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.666602 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 68 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.632371 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 69 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.943292 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.655899 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 71 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.189595 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 72 - navigation and grids can reflow on small screens + --- + duration_ms: 0.949084 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 73 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.066815 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 74 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.131355 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 9.438179 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 9.373113 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 77 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 405.073632 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 78 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 77.973736 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 79 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 55.192398 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 80 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 41.480435 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 81 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 25.819854 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 82 - encoded punctuation stays inert search text + --- + duration_ms: 28.049729 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 83 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 35.144077 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 84 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 11.920333 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 85 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 26.900454 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 86 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 26.746945 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 23.890947 + type: 'test' + ... +# Subtest: verified category counts expose content and references directly without changing the source selection +ok 88 - verified category counts expose content and references directly without changing the source selection + --- + duration_ms: 19.407413 + type: 'test' + ... +# Subtest: changing categories resets both pagers and retains native selector focus +ok 89 - changing categories resets both pagers and retains native selector focus + --- + duration_ms: 7.738208 + type: 'test' + ... +# Subtest: All preserves ordered overlapping categories and complete edge multiplicity +ok 90 - All preserves ordered overlapping categories and complete edge multiplicity + --- + duration_ms: 9.758397 + type: 'test' + ... +# Subtest: an empty category reports zero results with both pagers hidden +ok 91 - an empty category reports zero results with both pagers hidden + --- + duration_ms: 5.027951 + type: 'test' + ... +# Subtest: selection changes clear category state and ignore an older in-flight comparison +ok 92 - selection changes clear category state and ignore an older in-flight comparison + --- + duration_ms: 7.776913 + type: 'test' + ... +# Subtest: payload refusal and malformed history discard category results and announcements +ok 93 - payload refusal and malformed history discard category results and announcements + --- + duration_ms: 9.337879 + type: 'test' + ... +# Subtest: Compare source panel demand loader exists +ok 94 - Compare source panel demand loader exists + --- + duration_ms: 0.78284 + type: 'test' + ... +# Subtest: An explicit current-source query requests even the empty source search +ok 95 - An explicit current-source query requests even the empty source search + --- + duration_ms: 1.037624 + type: 'test' + ... +# Subtest: Only a target in the actual source panel requests its verifier +ok 96 - Only a target in the actual source panel requests its verifier + --- + duration_ms: 0.674884 + type: 'test' + ... +# Subtest: Both pagers use distinct identities and ordinary, non-live count spans +ok 97 - Both pagers use distinct identities and ordinary, non-live count spans + --- + duration_ms: 6.31963 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 12.029344 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 99 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 1.256438 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 100 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 1.014966 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 101 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 1.26935 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 102 - acquisition: identical inventory duplicate + --- + duration_ms: 1.061064 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 103 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.743919 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 104 - acquisition: graph blob conflict + --- + duration_ms: 0.870426 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 105 - acquisition: graph bytes conflict + --- + duration_ms: 0.756559 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 106 - acquisition: graph missing exact inventory + --- + duration_ms: 2.172281 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 107 - acquisition: graph incorrect pin + --- + duration_ms: 1.164227 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 108 - acquisition: reference blob conflict + --- + duration_ms: 0.827417 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 109 - acquisition: reference bytes conflict + --- + duration_ms: 0.58477 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 110 - acquisition: reference missing exact inventory + --- + duration_ms: 0.534752 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 111 - acquisition: reference incorrect pin + --- + duration_ms: 0.562161 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 112 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.55436 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 113 - acquisition: graph reference overlap + --- + duration_ms: 0.777927 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 114 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.640643 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 115 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.506639 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 116 - acquisition: excerpt duplicate id + --- + duration_ms: 0.649588 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 117 - acquisition: excerpt duplicate span + --- + duration_ms: 2.763875 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 118 - acquisition: excerpt digest mismatch + --- + duration_ms: 2.756098 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 119 - acquisition: excerpt lone surrogate + --- + duration_ms: 2.261691 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 120 - acquisition: excerpt boolean line + --- + duration_ms: 0.494279 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 121 - acquisition: excerpt empty id + --- + duration_ms: 0.4129 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 122 - acquisition: excerpt invalid range + --- + duration_ms: 0.464262 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 123 - acquisition: excerpt unsafe path + --- + duration_ms: 0.47959 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 124 - acquisition: malformed references collection + --- + duration_ms: 0.507159 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 125 - acquisition: malformed equations collection + --- + duration_ms: 0.133796 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 126 - acquisition: malformed sources collection + --- + duration_ms: 0.790407 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 127 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.523856 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 128 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 3.454639 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 129 - acquisition: graph points at Main + --- + duration_ms: 0.989942 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 130 - acquisition: invalid inventory repository + --- + duration_ms: 0.533288 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 131 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 0.543232 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 132 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.841913 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 133 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.618979 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 134 - acquisition: unsafe encoded inventory path + --- + duration_ms: 1.128818 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 135 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.551456 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 136 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.45407 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 137 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.509967 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.578705 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 139 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 0.875243 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 140 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 1.701139 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 141 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.508016 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 142 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.383815 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 143 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 8.254567 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 144 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 1.829207 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 145 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 1.568527 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 1.153715 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 147 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.46655 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 148 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.266656 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 149 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 3.527865 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 150 - fallback HTTP refusal remains unavailable + --- + duration_ms: 0.997222 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 151 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.887066 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 152 - aborted acquisition makes no recovery request + --- + duration_ms: 0.830409 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 153 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.558648 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 154 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 13.571942 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 155 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 2.354751 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 156 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 14.08871 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 1.26883 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 158 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.550392 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 159 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.315985 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 160 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 2.999522 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 161 - fallback HTTP refusal remains unavailable + --- + duration_ms: 0.942709 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 162 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.764839 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 163 - aborted acquisition makes no recovery request + --- + duration_ms: 0.780152 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 164 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.565745 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 165 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 0.686397 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.293865 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.212983 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 168 - missing fields stay explicitly not recorded + --- + duration_ms: 0.512376 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 169 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.447381 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 170 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.143284 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 171 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.290553 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 172 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.160525 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 173 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 0.563017 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 174 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 107.084472 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 175 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 0.367611 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.379323 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 1.302783 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.577841 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.435325 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 180 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.319089 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 181 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.282505 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 182 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 0.769871 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 183 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.551473 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 184 - modified browse clicks retain native open-link behavior + --- + duration_ms: 0.410012 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 185 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.453142 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 186 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.262832 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 187 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.34073 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 188 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.267872 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 189 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.546448 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 190 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.382027 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 191 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.513024 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.329082 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 193 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 0.718597 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 7.780121 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 195 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 0.809872 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 196 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 0.603514 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 197 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 0.973005 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 198 - acquisition: identical inventory duplicate + --- + duration_ms: 0.59817 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 199 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.54316 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 200 - acquisition: graph blob conflict + --- + duration_ms: 0.52532 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 201 - acquisition: graph bytes conflict + --- + duration_ms: 0.549984 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 202 - acquisition: graph missing exact inventory + --- + duration_ms: 0.661652 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 203 - acquisition: graph incorrect pin + --- + duration_ms: 0.522344 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 204 - acquisition: reference blob conflict + --- + duration_ms: 0.5566 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 205 - acquisition: reference bytes conflict + --- + duration_ms: 0.559153 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 206 - acquisition: reference missing exact inventory + --- + duration_ms: 0.570897 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 207 - acquisition: reference incorrect pin + --- + duration_ms: 0.468166 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 208 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.54964 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 209 - acquisition: graph reference overlap + --- + duration_ms: 0.538504 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 210 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.484631 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 211 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.438229 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 212 - acquisition: excerpt duplicate id + --- + duration_ms: 0.561505 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 213 - acquisition: excerpt duplicate span + --- + duration_ms: 0.557064 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 214 - acquisition: excerpt digest mismatch + --- + duration_ms: 0.49195 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 215 - acquisition: excerpt lone surrogate + --- + duration_ms: 0.487639 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 216 - acquisition: excerpt boolean line + --- + duration_ms: 0.455958 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 217 - acquisition: excerpt empty id + --- + duration_ms: 0.47055 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 218 - acquisition: excerpt invalid range + --- + duration_ms: 0.565985 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 219 - acquisition: excerpt unsafe path + --- + duration_ms: 0.506704 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 220 - acquisition: malformed references collection + --- + duration_ms: 0.525351 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 221 - acquisition: malformed equations collection + --- + duration_ms: 0.165101 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 222 - acquisition: malformed sources collection + --- + duration_ms: 0.978589 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 223 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.824169 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 224 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 0.85905 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 225 - acquisition: graph points at Main + --- + duration_ms: 0.545096 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 226 - acquisition: invalid inventory repository + --- + duration_ms: 0.566161 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 227 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 1.730684 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 228 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.540049 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 229 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.537456 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 230 - acquisition: unsafe encoded inventory path + --- + duration_ms: 0.499143 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 231 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.507455 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 232 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.429068 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 233 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.550465 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.495527 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 235 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 0.924916 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 236 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 0.514895 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 237 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.481366 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 238 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.079398 + type: 'test' + ... +# Subtest: current snapshot rejects invalid identities and preserves literal source values +ok 239 - current snapshot rejects invalid identities and preserves literal source values + --- + duration_ms: 0.705653 + type: 'test' + ... +# Subtest: freshness separates future, stale and current observations +ok 240 - freshness separates future, stale and current observations + --- + duration_ms: 0.082842 + type: 'test' + ... +# Subtest: source links bind safe paths to pinned commits and reject executable targets +ok 241 - source links bind safe paths to pinned commits and reject executable targets + --- + duration_ms: 0.142596 + type: 'test' + ... +# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling +ok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling + --- + duration_ms: 0.433061 + type: 'test' + ... +# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval +ok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval + --- + duration_ms: 0.181766 + type: 'test' + ... +# Subtest: search and independent URL state preserve exact identifiers and reject unknown node +ok 244 - search and independent URL state preserve exact identifiers and reject unknown node + --- + duration_ms: 0.350187 + type: 'test' + ... +# Subtest: hash mismatch and malformed payload refuse current rendering +ok 245 - hash mismatch and malformed payload refuse current rendering + --- + duration_ms: 2.174017 + type: 'test' + ... +# Subtest: global graph search finds unloaded nodes and bounds large catalogs +ok 246 - global graph search finds unloaded nodes and bounds large catalogs + --- + duration_ms: 1.713443 + type: 'test' + ... +# Subtest: equation and graph share bookmarks refuse changed main source instead of substituting +ok 247 - equation and graph share bookmarks refuse changed main source instead of substituting + --- + duration_ms: 0.14838 + type: 'test' + ... +# Subtest: graph search filter survives source-bound URL state +ok 248 - graph search filter survives source-bound URL state + --- + duration_ms: 0.086418 + type: 'test' + ... +# Subtest: prototype property names cannot become fabricated graph nodes +ok 249 - prototype property names cannot become fabricated graph nodes + --- + duration_ms: 0.965093 + type: 'test' + ... +# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root +ok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root + --- + duration_ms: 85.604093 + type: 'test' + ... +# Subtest: current required routes return one shortest route per unresolved research target +ok 251 - current required routes return one shortest route per unresolved research target + --- + duration_ms: 0.498583 + type: 'test' + ... +# Subtest: context-only unresolved targets affect all-edge reach but earn no required route +ok 252 - context-only unresolved targets affect all-edge reach but earn no required route + --- + duration_ms: 0.190269 + type: 'test' + ... +# Subtest: context shortcuts do not erase longer required routes and parallel edges count once +ok 253 - context shortcuts do not erase longer required routes and parallel edges count once + --- + duration_ms: 0.219895 + type: 'test' + ... +# Subtest: unresolved target kinds and classifications match the existing source vocabulary +ok 254 - unresolved target kinds and classifications match the existing source vocabulary + --- + duration_ms: 0.299185 + type: 'test' + ... +# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions +ok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions + --- + duration_ms: 12.825384 + type: 'test' + ... +# Subtest: full reach and required routes do not depend on filtered or capped viewport +ok 256 - full reach and required routes do not depend on filtered or capped viewport + --- + duration_ms: 0.609123 + type: 'test' + ... +# Subtest: bounded graph windows expose complete match and frontier counts with paging +ok 257 - bounded graph windows expose complete match and frontier counts with paging + --- + duration_ms: 9.686218 + type: 'test' + ... +# Subtest: graph filters apply to complete matches without altering raw node labels or edges +ok 258 - graph filters apply to complete matches without altering raw node labels or edges + --- + duration_ms: 2.727882 + type: 'test' + ... +# Subtest: equation text filtering retains inert literal content and bounded complete counts +ok 259 - equation text filtering retains inert literal content and bounded complete counts + --- + duration_ms: 0.926139 + type: 'test' + ... +# Subtest: atlas offset equation search and exact metadata filters survive URL state +ok 260 - atlas offset equation search and exact metadata filters survive URL state + --- + duration_ms: 0.391364 + type: 'test' + ... +# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage +ok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage + --- + duration_ms: 23.574594 + type: 'test' + ... +# Subtest: claim summary puts exact scope and pinned source before continuation metadata +ok 262 - claim summary puts exact scope and pinned source before continuation metadata + --- + duration_ms: 7.687326 + type: 'test' + ... +# Subtest: controller owns an explicit formal gap even without the spatial rendering platform +ok 263 - controller owns an explicit formal gap even without the spatial rendering platform + --- + duration_ms: 5.475524 + type: 'test' + ... +# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection +ok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection + --- + duration_ms: 6.219026 + type: 'test' + ... +# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses +ok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses + --- + duration_ms: 12.967396 + type: 'test' + ... +# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence +ok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence + --- + duration_ms: 32.500366 + type: 'test' + ... +# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints +ok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints + --- + duration_ms: 19.665549 + type: 'test' + ... +# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back +ok 268 - atlas filter bookmarks persist through search, node selection, reload and Back + --- + duration_ms: 13.078943 + type: 'test' + ... +# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters +ok 269 - atlas refuses mismatched source bookmarks before applying metadata filters + --- + duration_ms: 8.147068 + type: 'test' + ... +# Subtest: node identifiers and recorded source paths require own literal string fields +ok 270 - node identifiers and recorded source paths require own literal string fields + --- + duration_ms: 0.232151 + type: 'test' + ... +# Subtest: static reading links retain one advertised material archive among source links +ok 271 - static reading links retain one advertised material archive among source links + --- + duration_ms: 0.468758 + type: 'test' + ... +# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses +ok 272 - static reading links refuse missing ambiguous and unsafe archive addresses + --- + duration_ms: 0.515736 + type: 'test' + ... +# Subtest: refused source identity survives view changes Share reload and history +ok 273 - refused source identity survives view changes Share reload and history + --- + duration_ms: 57.839901 + type: 'test' + ... +# Subtest: initial Share and every non-adopting control preserve a refused identity +ok 274 - initial Share and every non-adopting control preserve a refused identity + --- + duration_ms: 3.526209 + type: 'test' + ... +# Subtest: explicit current diagnostic selection alone may adopt current source pins +ok 275 - explicit current diagnostic selection alone may adopt current source pins + --- + duration_ms: 7.447719 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 276 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 2.008332 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.46315 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.232135 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 279 - missing fields stay explicitly not recorded + --- + duration_ms: 0.475262 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 280 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.6745 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 281 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.223863 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 282 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.40706 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 283 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.17651 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 284 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 0.967949 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 285 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 128.02702 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 286 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 1.120393 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.374147 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 2.007156 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.566345 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.496343 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 291 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.323106 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 292 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.400252 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 293 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 1.408242 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 294 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.678204 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 295 - modified browse clicks retain native open-link behavior + --- + duration_ms: 0.960613 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 296 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.375004 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 297 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.214639 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 298 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.339043 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 299 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.191974 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 300 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.425948 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 301 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.318234 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 302 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.431573 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.278928 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 304 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 1.168715 + type: 'test' + ... +# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning +ok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning + --- + duration_ms: 25.955353 + type: 'test' + ... +# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer +ok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer + --- + duration_ms: 6.517852 + type: 'test' + ... +# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure +ok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure + --- + duration_ms: 7.68151 + type: 'test' + ... +# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused +ok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused + --- + duration_ms: 0.861866 + type: 'test' + ... +# Subtest: citation keeps only the canonical figure permalink and pinned teaching source +ok 309 - citation keeps only the canonical figure permalink and pinned teaching source + --- + duration_ms: 0.459829 + type: 'test' + ... +# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer +ok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer + --- + duration_ms: 1.308383 + type: 'test' + ... +# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes +ok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes + --- + duration_ms: 2.728946 + type: 'test' + ... +# Subtest: light theme colors are exported from the captured record +ok 312 - light theme colors are exported from the captured record + --- + duration_ms: 0.728382 + type: 'test' + ... +# Subtest: inherited native system font stacks remain self-contained without remote font syntax +ok 313 - inherited native system font stacks remain self-contained without remote font syntax + --- + duration_ms: 1.444715 + type: 'test' + ... +# Subtest: all diagram text and attribute values are XML escaped +ok 314 - all diagram text and attribute values are XML escaped + --- + duration_ms: 1.165003 + type: 'test' + ... +# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind +ok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind + --- + duration_ms: 3.417542 + type: 'test' + ... +# Subtest: blank, stale or unsupported diagram content is refused instead of exported +ok 316 - blank, stale or unsupported diagram content is refused instead of exported + --- + duration_ms: 10.211082 + type: 'test' + ... +# Subtest: clipboard absence exposes manual citation and never permits copy +ok 317 - clipboard absence exposes manual citation and never permits copy + --- + duration_ms: 0.395684 + type: 'test' + ... +# Subtest: clipboard denial preserves the current manual text and reports failure +ok 318 - clipboard denial preserves the current manual text and reports failure + --- + duration_ms: 0.266096 + type: 'test' + ... +# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied +ok 319 - pending clipboard writes are serialized and cannot report stale settings as copied + --- + duration_ms: 0.281112 + type: 'test' + ... +# Subtest: capture refusal clears the current citation text and blocks a later copy +ok 320 - capture refusal clears the current citation text and blocks a later copy + --- + duration_ms: 2.370127 + type: 'test' + ... +# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback +ok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback + --- + duration_ms: 0.4059 + type: 'test' + ... +# Subtest: a successful current write reports success, while unavailable figures block later writes +ok 322 - a successful current write reports success, while unavailable figures block later writes + --- + duration_ms: 0.237823 + type: 'test' + ... +# Subtest: evidence shows recorded links without promoting missing review or formal evidence +ok 323 - evidence shows recorded links without promoting missing review or formal evidence + --- + duration_ms: 3.48184 + type: 'test' + ... +# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification +ok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification + --- + duration_ms: 0.466638 + type: 'test' + ... +# Subtest: all-records and exact classification filters intersect text without relabeling nodes +ok 325 - all-records and exact classification filters intersect text without relabeling nodes + --- + duration_ms: 22.089614 + type: 'test' + ... +# Subtest: saved filters restore exact state and visibly reject unknown classifications +ok 326 - saved filters restore exact state and visibly reject unknown classifications + --- + duration_ms: 1.748189 + type: 'test' + ... +# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references +ok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references + --- + duration_ms: 2.303485 + type: 'test' + ... +# Subtest: absent context is visibly not recorded and is never inferred from dependencies +ok 328 - absent context is visibly not recorded and is never inferred from dependencies + --- + duration_ms: 1.89544 + type: 'test' + ... +# Subtest: unresolved and unsafe context references stay literal without executable destinations +ok 329 - unresolved and unsafe context references stay literal without executable destinations + --- + duration_ms: 1.473908 + type: 'test' + ... +# Subtest: malformed context preserves complete recorded values instead of inventing references +ok 330 - malformed context preserves complete recorded values instead of inventing references + --- + duration_ms: 3.770521 + type: 'test' + ... +# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search +ok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search + --- + duration_ms: 2.68664 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay +ok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay + --- + duration_ms: 39.79356 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay +ok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay + --- + duration_ms: 164.305763 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay +ok 334 - dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay + --- + duration_ms: 11.845971 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay +ok 335 - dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay + --- + duration_ms: 161.860666 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay +ok 336 - dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay + --- + duration_ms: 21.992171 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay +ok 337 - dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay + --- + duration_ms: 162.854215 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay +ok 338 - dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay + --- + duration_ms: 11.20252 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay +ok 339 - dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay + --- + duration_ms: 168.626388 + type: 'test' + ... +# Subtest: the pinned graph is complete and structurally valid +ok 340 - the pinned graph is complete and structurally valid + --- + duration_ms: 5.756597 + type: 'test' + ... +# Subtest: unresolved targets include open leaves with no recorded dependents +ok 341 - unresolved targets include open leaves with no recorded dependents + --- + duration_ms: 1.448692 + type: 'test' + ... +# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves +ok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves + --- + duration_ms: 4.062698 + type: 'test' + ... +# Subtest: downstream counts keep all-edge reach separate from required-only reach +ok 343 - downstream counts keep all-edge reach separate from required-only reach + --- + duration_ms: 0.711341 + type: 'test' + ... +# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts +ok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts + --- + duration_ms: 3.459864 + type: 'test' + ... +# Subtest: reach labels state their edge scope and do not describe reach as blocking +ok 345 - reach labels state their edge scope and do not describe reach as blocking + --- + duration_ms: 1.72974 + type: 'test' + ... +# Subtest: search covers ids, notes, source paths, classifications and edge relations +ok 346 - search covers ids, notes, source paths, classifications and edge relations + --- + duration_ms: 4.156637 + type: 'test' + ... +# Subtest: the app verifies graph bytes against a compiled source identity before parsing +ok 347 - the app verifies graph bytes against a compiled source identity before parsing + --- + duration_ms: 7.357949 + type: 'test' + ... +# Subtest: classification styling and metadata preserve source review lineage +ok 348 - classification styling and metadata preserve source review lineage + --- + duration_ms: 2.074742 + type: 'test' + ... +# Subtest: classification CSS identifiers use locale-neutral ASCII case folding +ok 349 - classification CSS identifiers use locale-neutral ASCII case folding + --- + duration_ms: 0.200846 + type: 'test' + ... +# Subtest: dependency paths use required source edges and retain relation metadata +ok 350 - dependency paths use required source edges and retain relation metadata + --- + duration_ms: 4.69126 + type: 'test' + ... +# Subtest: saved node links fail visibly instead of selecting an unrelated node +ok 351 - saved node links fail visibly instead of selecting an unrelated node + --- + duration_ms: 2.010285 + type: 'test' + ... +# Subtest: provenance pins the exact Math source bytes and labels the snapshot boundary +ok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary + --- + duration_ms: 4.508495 + type: 'test' + ... +# Subtest: the viewer page exposes its source boundary and accessible interaction contract +ok 353 - the viewer page exposes its source boundary and accessible interaction contract + --- + duration_ms: 2.718777 + type: 'test' + ... +# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail +ok 354 - the evidence table keeps automatic layout and breaks words only in Source detail + --- + duration_ms: 1.459811 + type: 'test' + ... +# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure +ok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure + --- + duration_ms: 3.337764 + type: 'test' + ... +# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists +ok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists + --- + duration_ms: 2.856237 + type: 'test' + ... +# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified +ok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified + --- + duration_ms: 1.564991 + type: 'test' + ... +# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph +ok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph + --- + duration_ms: 2.072598 + type: 'test' + ... +# Subtest: the unresolved-target sentence names exactly the viewer list rule +ok 359 - the unresolved-target sentence names exactly the viewer list rule + --- + duration_ms: 2.509683 + type: 'test' + ... +# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read +ok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read + --- + duration_ms: 6.40224 + type: 'test' + ... +# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries +ok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries + --- + duration_ms: 1.471996 + type: 'test' + ... +# Subtest: cone weight is determinant squared only on the negative-definite side +ok 362 - cone weight is determinant squared only on the negative-definite side + --- + duration_ms: 0.944717 + type: 'test' + ... +# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two +ok 363 - halving pin distance divides cubic gap by eight and annulus radii by two + --- + duration_ms: 0.527495 + type: 'test' + ... +# Subtest: remote membership uses fixed distance and an open height window +ok 364 - remote membership uses fixed distance and an open height window + --- + duration_ms: 0.298617 + type: 'test' + ... +# Subtest: all eight three-object subsets receive the correct capacity-one partition +ok 365 - all eight three-object subsets receive the correct capacity-one partition + --- + duration_ms: 0.477342 + type: 'test' + ... +# Subtest: models reject invalid or unrepresentable teaching parameters +ok 366 - models reject invalid or unrepresentable teaching parameters + --- + duration_ms: 0.777368 + type: 'test' + ... +# Subtest: shared parameters restore all three experiments, including empty selection +ok 367 - shared parameters restore all three experiments, including empty selection + --- + duration_ms: 1.903689 + type: 'test' + ... +# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion +ok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion + --- + duration_ms: 0.297249 + type: 'test' + ... +# Subtest: invalid choices cannot invent regions or objects +ok 369 - invalid choices cannot invent regions or objects + --- + duration_ms: 0.606378 + type: 'test' + ... +# Subtest: sharing serializes current controls and preserves section and unrelated query fields +ok 370 - sharing serializes current controls and preserves section and unrelated query fields + --- + duration_ms: 0.910147 + type: 'test' + ... +# Subtest: curvature presets draw and commit the selected controls with matching share and export state +ok 371 - curvature presets draw and commit the selected controls with matching share and export state + --- + duration_ms: 1.488877 + type: 'test' + ... +# Subtest: unknown curvature presets leave controls and current figure untouched +ok 372 - unknown curvature presets leave controls and current figure untouched + --- + duration_ms: 0.148036 + type: 'test' + ... +# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks +ok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks + --- + duration_ms: 3.687262 + type: 'test' + ... +# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes +ok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes + --- + duration_ms: 1.864272 + type: 'test' + ... +# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata +ok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata + --- + duration_ms: 1.502141 + type: 'test' + ... +# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions +ok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions + --- + duration_ms: 1.445123 + type: 'test' + ... +# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture +ok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture + --- + duration_ms: 0.90898 + type: 'test' + ... +# Subtest: controller coalesces repeated activation while a preparation is pending +ok 378 - controller coalesces repeated activation while a preparation is pending + --- + duration_ms: 0.403924 + type: 'test' + ... +# Subtest: changed or tampered final SVG, metadata or citation refuses download +ok 379 - changed or tampered final SVG, metadata or citation refuses download + --- + duration_ms: 1.023047 + type: 'test' + ... +# Subtest: control revision cancels work even after a change away and back +ok 380 - control revision cancels work even after a change away and back + --- + duration_ms: 0.491486 + type: 'test' + ... +# Subtest: late failure from an invalidated operation cannot erase newer successful state +ok 381 - late failure from an invalidated operation cannot erase newer successful state + --- + duration_ms: 0.810584 + type: 'test' + ... +# Subtest: capture, preparation, null result and download errors stay explicit and allow retry +ok 382 - capture, preparation, null result and download errors stay explicit and allow retry + --- + duration_ms: 2.025437 + type: 'test' + ... +# Subtest: unready controller cannot prepare or download a figure +ok 383 - unready controller cannot prepare or download a figure + --- + duration_ms: 0.31517 + type: 'test' + ... +# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid +ok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid + --- + duration_ms: 0.428668 + type: 'test' + ... +# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage +ok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage + --- + duration_ms: 0.645715 + type: 'test' + ... +# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources +ok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources + --- + duration_ms: 1.703971 + type: 'test' + ... +# Subtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks +ok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks + --- + duration_ms: 7.381501 + type: 'test' + ... +# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives +ok 388 - existing and unknown collection bookmarks retain Files while explicit text survives + --- + duration_ms: 1.52771 + type: 'test' + ... +# Subtest: collection links preserve literal query and independent state without changing the target +ok 389 - collection links preserve literal query and independent state without changing the target + --- + duration_ms: 0.538224 + type: 'test' + ... +# Subtest: an excerpt link retains exact source commit, literal filename and complete line range +ok 390 - an excerpt link retains exact source commit, literal filename and complete line range + --- + duration_ms: 0.326498 + type: 'test' + ... +# Subtest: invalid or missing excerpt ranges cannot become invented source line identities +ok 391 - invalid or missing excerpt ranges cannot become invented source line identities + --- + duration_ms: 0.190669 + type: 'test' + ... +# Subtest: search links preserve literal text and unrelated page state +ok 392 - search links preserve literal text and unrelated page state + --- + duration_ms: 1.013414 + type: 'test' + ... +# Subtest: empty queries remove only the current-source parameter +ok 393 - empty queries remove only the current-source parameter + --- + duration_ms: 0.292409 + type: 'test' + ... +# Subtest: no initialization on another page or before snapshot admission +ok 394 - no initialization on another page or before snapshot admission + --- + duration_ms: 0.249992 + type: 'test' + ... +# Subtest: aggregate count uses area, all realizations, and bin width exactly once +ok 395 - aggregate count uses area, all realizations, and bin width exactly once + --- + duration_ms: 2.233307 + type: 'test' + ... +# Subtest: twice the count gives twice the mass and density +ok 396 - twice the count gives twice the mass and density + --- + duration_ms: 0.374675 + type: 'test' + ... +# Subtest: adding zero-count realizations still increases the denominator +ok 397 - adding zero-count realizations still increases the denominator + --- + duration_ms: 0.218143 + type: 'test' + ... +# Subtest: a wider synthetic bin preserves mass and divides density by its width +ok 398 - a wider synthetic bin preserves mass and divides density by its width + --- + duration_ms: 0.338698 + type: 'test' + ... +# Subtest: zero counts produce valid zero estimates without a fabricated positive floor +ok 399 - zero counts produce valid zero estimates without a fabricated positive floor + --- + duration_ms: 0.304713 + type: 'test' + ... +# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers +ok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers + --- + duration_ms: 0.809656 + type: 'test' + ... +# Subtest: only positive ordered finite bin edges are accepted +ok 401 - only positive ordered finite bin edges are accepted + --- + duration_ms: 0.476038 + type: 'test' + ... +# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density +ok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density + --- + duration_ms: 0.425013 + type: 'test' + ... +# Subtest: input parsing rejects blanks instead of turning them into zero counts +ok 403 - input parsing rejects blanks instead of turning them into zero counts + --- + duration_ms: 1.397842 + type: 'test' + ... +# Subtest: decimal input, including scientific notation, reaches the same normalization +ok 404 - decimal input, including scientific notation, reaches the same normalization + --- + duration_ms: 1.213949 + type: 'test' + ... +# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero +ok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero + --- + duration_ms: 1.405155 + type: 'test' + ... +# Subtest: six complete inputs feed exactly one conditional conclusion +ok 406 - six complete inputs feed exactly one conditional conclusion + --- + duration_ms: 8.695012 + type: 'test' + ... +# Subtest: the normalization and fixed lower comparison are retained +ok 407 - the normalization and fixed lower comparison are retained + --- + duration_ms: 1.082472 + type: 'test' + ... +# Subtest: measurability and almost-everywhere quantifiers are retained +ok 408 - measurability and almost-everywhere quantifiers are retained + --- + duration_ms: 0.995302 + type: 'test' + ... +# Subtest: positive and zero cases and the density non-implication remain explicit +ok 409 - positive and zero cases and the density non-implication remain explicit + --- + duration_ms: 0.883898 + type: 'test' + ... +# Subtest: changed source bytes are refused before projection +ok 410 - changed source bytes are refused before projection + --- + duration_ms: 2.226107 + type: 'test' + ... +# Subtest: integer and mutable commit identities are refused +ok 411 - integer and mutable commit identities are refused + --- + duration_ms: 0.38406 + type: 'test' + ... +# Subtest: a numeric hash cannot be coerced into a string +ok 412 - a numeric hash cannot be coerced into a string + --- + duration_ms: 0.341402 + type: 'test' + ... +# Subtest: private repository and changed proof paths are refused +ok 413 - private repository and changed proof paths are refused + --- + duration_ms: 0.414733 + type: 'test' + ... +# Subtest: redirected URL and changed blob or size are refused +ok 414 - redirected URL and changed blob or size are refused + --- + duration_ms: 0.905883 + type: 'test' + ... +# Subtest: deleting H3 cannot silently weaken the route +ok 415 - deleting H3 cannot silently weaken the route + --- + duration_ms: 2.695937 + type: 'test' + ... +# Subtest: ALL cannot become ANY +ok 416 - ALL cannot become ANY + --- + duration_ms: 1.118922 + type: 'test' + ... +# Subtest: self dependency or unknown nodes are refused +ok 417 - self dependency or unknown nodes are refused + --- + duration_ms: 1.537006 + type: 'test' + ... +# Subtest: invented acceptance and independence fields are refused +ok 418 - invented acceptance and independence fields are refused + --- + duration_ms: 3.166231 + type: 'test' + ... +# Subtest: rendering exposes hypotheses, exact identity, and application boundary +ok 419 - rendering exposes hypotheses, exact identity, and application boundary + --- + duration_ms: 1.311063 + type: 'test' + ... +# Subtest: a failed load clears any earlier ready view and says so in the status line +ok 420 - a failed load clears any earlier ready view and says so in the status line + --- + duration_ms: 0.429261 + type: 'test' + ... +# Subtest: a page without the status line still shows the refusal in the host, without a role +ok 421 - a page without the status line still shows the refusal in the host, without a role + --- + duration_ms: 0.39314 + type: 'test' + ... +# Subtest: the source fixture is complete and immutable +ok 422 - the source fixture is complete and immutable + --- + duration_ms: 1.228581 + type: 'test' + ... +# Subtest: museum HTML has the route host, navigation and module without replacing existing cards +ok 423 - museum HTML has the route host, navigation and module without replacing existing cards + --- + duration_ms: 1.264342 + type: 'test' + ... +# Subtest: CLI projects the exact source and produces deterministic JSON +ok 424 - CLI projects the exact source and produces deterministic JSON + --- + duration_ms: 61.638063 + type: 'test' + ... +# Subtest: CLI rejects altered manifest bytes +ok 425 - CLI rejects altered manifest bytes + --- + duration_ms: 31.251184 + type: 'test' + ... +# Subtest: CLI refuses missing or repeated conditional claim +ok 426 - CLI refuses missing or repeated conditional claim + --- + duration_ms: 58.850787 + type: 'test' + ... +# Subtest: CLI rejects weakened projection in check mode +ok 427 - CLI rejects weakened projection in check mode + --- + duration_ms: 122.305009 + type: 'test' + ... +# Subtest: CLI rejects nonlocal manifest and malformed hash types +ok 428 - CLI rejects nonlocal manifest and malformed hash types + --- + duration_ms: 88.821301 + type: 'test' + ... +# Subtest: CLI refuses missing input and unknown options +ok 429 - CLI refuses missing input and unknown options + --- + duration_ms: 57.352758 + type: 'test' + ... +# Subtest: CLI rejects source substitution +ok 430 - CLI rejects source substitution + --- + duration_ms: 34.573043 + type: 'test' + ... +# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture +ok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture + --- + duration_ms: 1.103169 + type: 'test' + ... +# Subtest: a fixture-only change was missed before and now runs the conditional suites +ok 432 - a fixture-only change was missed before and now runs the conditional suites + --- + duration_ms: 0.457653 + type: 'test' + ... +# Subtest: existing matching paths stay matched and unrelated paths stay excluded +ok 433 - existing matching paths stay matched and unrelated paths stay excluded + --- + duration_ms: 0.869762 + type: 'test' + ... +# Subtest: every local file the conditional suites and replay tool load triggers the workflow +ok 434 - every local file the conditional suites and replay tool load triggers the workflow + --- + duration_ms: 3.34426 + type: 'test' + ... +# Subtest: a verified startup renders the route from the selected claim proof bytes +ok 435 - a verified startup renders the route from the selected claim proof bytes + --- + duration_ms: 31.477599 + type: 'test' + ... +# Subtest: the museum page and the conditional route share one verified startup and byte cache +ok 436 - the museum page and the conditional route share one verified startup and byte cache + --- + duration_ms: 11.871684 + type: 'test' + ... +# Subtest: a rejected startup is not retained for a later caller +ok 437 - a rejected startup is not retained for a later caller + --- + duration_ms: 4.207718 + type: 'test' + ... +# Subtest: changed proof bytes clear an earlier view and infer nothing +ok 438 - changed proof bytes clear an earlier view and infer nothing + --- + duration_ms: 5.964027 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched +ok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched + --- + duration_ms: 2.546308 + type: 'test' + ... +# Subtest: a stale manifest stops before any pinned remote request +ok 440 - a stale manifest stops before any pinned remote request + --- + duration_ms: 1.400706 + type: 'test' + ... +# Subtest: a page without the route container is left untouched +ok 441 - a page without the route container is left untouched + --- + duration_ms: 0.529272 + type: 'test' + ... +# Subtest: a verified route: the outcome is written to the attached role="status" line after the host changes +ok 442 - a verified route: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 6.788659 + type: 'test' + ... +# Subtest: a verified route: nothing inserted into the route host carries a role or is live +ok 443 - a verified route: nothing inserted into the route host carries a role or is live + --- + duration_ms: 5.678498 + type: 'test' + ... +# Subtest: a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes +ok 444 - a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 1.551086 + type: 'test' + ... +# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live +ok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live + --- + duration_ms: 1.377289 + type: 'test' + ... +# Subtest: a stale manifest: the outcome is written to the attached role="status" line after the host changes +ok 446 - a stale manifest: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 2.822133 + type: 'test' + ... +# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live +ok 447 - a stale manifest: nothing inserted into the route host carries a role or is live + --- + duration_ms: 3.181423 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes +ok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 4.888178 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live +ok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live + --- + duration_ms: 3.808666 + type: 'test' + ... +# Subtest: changed proof bytes: the outcome is written to the attached role="status" line after the host changes +ok 450 - changed proof bytes: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 2.171073 + type: 'test' + ... +# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live +ok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.238827 + type: 'test' + ... +# Subtest: an unavailable museum module: the outcome is written to the attached role="status" line after the host changes +ok 452 - an unavailable museum module: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.67434 + type: 'test' + ... +# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live +ok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.578794 + type: 'test' + ... +# Subtest: a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes +ok 454 - a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.701789 + type: 'test' + ... +# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live +ok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.495535 + type: 'test' + ... +# Subtest: museum.html has exactly one route status line: static, role="status", directly before an empty host +ok 456 - museum.html has exactly one route status line: static, role="status", directly before an empty host + --- + duration_ms: 0.292424 + type: 'test' + ... +# Subtest: on a first run the static Verifying… line receives no write while the route is verified +ok 457 - on a first run the static Verifying… line receives no write while the route is verified + --- + duration_ms: 10.72841 + type: 'test' + ... +# Subtest: an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it +ok 458 - an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it + --- + duration_ms: 1.731308 + type: 'test' + ... +# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host +ok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host + --- + duration_ms: 0.847881 + type: 'test' + ... +# Subtest: an older page without the status line draws only the route on success +ok 460 - an older page without the status line draws only the route on success + --- + duration_ms: 2.645583 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 2.041693 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.431685 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 1.567263 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 464 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 2.042549 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 465 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 5.829382 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 0.964332 + type: 'test' + ... +# Subtest: museum exposes source-bound rendering rather than silently omitting the page +ok 467 - museum exposes source-bound rendering rather than silently omitting the page + --- + duration_ms: 0.278552 + type: 'test' + ... +# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched +ok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched + --- + duration_ms: 48.026431 + type: 'test' + ... +# Subtest: museum wheel while verifying sources cancels delayed focus and scroll +ok 469 - museum wheel while verifying sources cancels delayed focus and scroll + --- + duration_ms: 6.641167 + type: 'test' + ... +# Subtest: museum keydown while verifying sources cancels delayed focus and scroll +ok 470 - museum keydown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 10.133663 + type: 'test' + ... +# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll +ok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 16.966412 + type: 'test' + ... +# Subtest: museum focusin while verifying sources cancels delayed focus and scroll +ok 472 - museum focusin while verifying sources cancels delayed focus and scroll + --- + duration_ms: 11.348932 + type: 'test' + ... +# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll +ok 473 - museum hashchange while verifying sources cancels delayed focus and scroll + --- + duration_ms: 4.031161 + type: 'test' + ... +# Subtest: museum popstate while verifying sources cancels delayed focus and scroll +ok 474 - museum popstate while verifying sources cancels delayed focus and scroll + --- + duration_ms: 9.909329 + type: 'test' + ... +# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll +ok 475 - museum pagehide while verifying sources cancels delayed focus and scroll + --- + duration_ms: 3.980744 + type: 'test' + ... +# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording +ok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording + --- + duration_ms: 0.88905 + type: 'test' + ... +# Subtest: source display cannot promote a counterexample or an AMEND row +ok 477 - source display cannot promote a counterexample or an AMEND row + --- + duration_ms: 0.870906 + type: 'test' + ... +# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope +ok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope + --- + duration_ms: 0.543544 + type: 'test' + ... +# Subtest: replay command must occur exactly in the verified replay source +ok 479 - replay command must occur exactly in the verified replay source + --- + duration_ms: 1.819974 + type: 'test' + ... +# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot +ok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot + --- + duration_ms: 0.680253 + type: 'test' + ... +# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch +ok 481 - malformed, mutable and falsely displayed source identities are refused before fetch + --- + duration_ms: 0.425885 + type: 'test' + ... +# Subtest: verified source bytes are required before a claim can be presented +ok 482 - verified source bytes are required before a claim can be presented + --- + duration_ms: 1.817246 + type: 'test' + ... +# Subtest: streamed responses stop at the byte cap and cancel the reader +ok 483 - streamed responses stop at the byte cap and cancel the reader + --- + duration_ms: 0.934324 + type: 'test' + ... +# Subtest: a stalled response body is aborted within its request deadline +ok 484 - a stalled response body is aborted within its request deadline + --- + duration_ms: 16.242071 + type: 'test' + ... +# Subtest: review comment pointers cannot masquerade as byte-frozen comment content +ok 485 - review comment pointers cannot masquerade as byte-frozen comment content + --- + duration_ms: 0.466766 + type: 'test' + ... +# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review +ok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review + --- + duration_ms: 1.020006 + type: 'test' + ... +# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path +ok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path + --- + duration_ms: 1.254062 + type: 'test' + ... +# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only +ok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only + --- + duration_ms: 1.057992 + type: 'test' + ... +# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer +ok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer + --- + duration_ms: 5.075232 + type: 'test' + ... +# Subtest: museum manifest must match the config byte count and SHA-256 before source projection +ok 490 - museum manifest must match the config byte count and SHA-256 before source projection + --- + duration_ms: 3.217328 + type: 'test' + ... +# Subtest: museum.html keeps its two evidence live regions and a separate current observation region +ok 491 - museum.html keeps its two evidence live regions and a separate current observation region + --- + duration_ms: 0.877818 + type: 'test' + ... +# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses +ok 492 - brand.css keeps the route status line visible and in the error colour when it refuses + --- + duration_ms: 1.168618 + type: 'test' + ... +# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them +ok 493 - refused cards carry no role and are not live; the museum status line counts every one of them + --- + duration_ms: 3.636741 + type: 'test' + ... +# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view +ok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view + --- + duration_ms: 4.07113 + type: 'test' + ... +# Subtest: a declared exhibit that cannot be shown is counted in the museum status line +ok 495 - a declared exhibit that cannot be shown is counted in the museum status line + --- + duration_ms: 4.893067 + type: 'test' + ... +# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title +ok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title + --- + duration_ms: 1.181947 + type: 'test' + ... +# Subtest: a coherent old browser cache cannot hide the newly pinned packet +ok 497 - a coherent old browser cache cannot hide the newly pinned packet + --- + duration_ms: 14.663608 + type: 'test' + ... +# Subtest: a mixed new config and stale museum manifest fails closed +ok 498 - a mixed new config and stale museum manifest fails closed + --- + duration_ms: 2.210314 + type: 'test' + ... +# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions +ok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions + --- + duration_ms: 16.432165 + type: 'test' + ... +# Subtest: verified claim quotes expose readable source and exact review citations +ok 500 - verified claim quotes expose readable source and exact review citations + --- + duration_ms: 2.986369 + type: 'test' + ... +# Subtest: readable presentation retains the exact original source quote in a disclosure +ok 501 - readable presentation retains the exact original source quote in a disclosure + --- + duration_ms: 4.88509 + type: 'test' + ... +# Subtest: packet cards render in manifest order when the first packet arrives last +ok 502 - packet cards render in manifest order when the first packet arrives last + --- + duration_ms: 8.133876 + type: 'test' + ... +# Subtest: a refused packet keeps its manifest slot when the other packet arrives later +ok 503 - a refused packet keeps its manifest slot when the other packet arrives later + --- + duration_ms: 7.564411 + type: 'test' + ... +# Subtest: every refused packet is counted in the museum status line +ok 504 - every refused packet is counted in the museum status line + --- + duration_ms: 7.625477 + type: 'test' + ... +# Subtest: a rendered packet replaces its Verifying placeholder +ok 505 - a rendered packet replaces its Verifying placeholder + --- + duration_ms: 8.00604 + type: 'test' + ... +# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders +ok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders + --- + duration_ms: 1.658506 + type: 'test' + ... +# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window +ok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window + --- + duration_ms: 0.807593 + type: 'test' + ... +# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two +ok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two + --- + duration_ms: 0.363731 + type: 'test' + ... +# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple +ok 509 - P15 exact finite example partitions every proper subset and rejects the full triple + --- + duration_ms: 0.488015 + type: 'test' + ... +# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code +ok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code + --- + duration_ms: 0.435477 + type: 'test' + ... +# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions +ok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions + --- + duration_ms: 2.712969 + type: 'test' + ... +# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches +ok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches + --- + duration_ms: 0.703445 + type: 'test' + ... +# Subtest: P15 vertex toggles change the actual decomposition result +ok 513 - P15 vertex toggles change the actual decomposition result + --- + duration_ms: 0.654243 + type: 'test' + ... +# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails +ok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails + --- + duration_ms: 1.568487 + type: 'test' + ... +# Subtest: EC014 live status follows the visible view through 3D, 2D and back +ok 515 - EC014 live status follows the visible view through 3D, 2D and back + --- + duration_ms: 3.709151 + type: 'test' + ... +# Subtest: correct source bytes cannot acquire a different valid-looking commit +ok 516 - correct source bytes cannot acquire a different valid-looking commit + --- + duration_ms: 1.164827 + type: 'test' + ... +# Subtest: exported projection preserves the complete audited source descriptor +ok 517 - exported projection preserves the complete audited source descriptor + --- + duration_ms: 7.572467 + type: 'test' + ... +# Subtest: offline CLI refuses coherent hash-correct source relabeling +ok 518 - offline CLI refuses coherent hash-correct source relabeling + --- + duration_ms: 33.046518 + type: 'test' + ... +# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags +ok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags + --- + duration_ms: 157.207702 + type: 'test' + ... +# Subtest: a record with an owner but no evidence_url fails validation +ok 520 - a record with an owner but no evidence_url fails validation + --- + duration_ms: 307.805472 + type: 'test' + ... +# Subtest: closed schema, evidence pattern, and primary source_rev are enforced +ok 521 - closed schema, evidence pattern, and primary source_rev are enforced + --- + duration_ms: 980.796459 + type: 'test' + ... +# Subtest: pinned rev equals the blob or tree commit segment +ok 522 - pinned rev equals the blob or tree commit segment + --- + duration_ms: 279.036818 + type: 'test' + ... +# Subtest: carried_forward resolution_url uses the shared comment pattern +ok 523 - carried_forward resolution_url uses the shared comment pattern + --- + duration_ms: 393.083862 + type: 'test' + ... +# Subtest: released_url keeps the owner object and the atlas says released +ok 524 - released_url keeps the owner object and the atlas says released + --- + duration_ms: 132.777121 + type: 'test' + ... +# Subtest: resume projection shows a node-status view and refuses an owner without evidence +ok 525 - resume projection shows a node-status view and refuses an owner without evidence + --- + duration_ms: 518.674914 + type: 'test' + ... +# Subtest: a valid observed_at and source_rev refresh still validates and renders +ok 526 - a valid observed_at and source_rev refresh still validates and renders + --- + duration_ms: 171.624879 + type: 'test' + ... +# Subtest: the atlas resume section passes the published node-status view into resumeProjection +ok 527 - the atlas resume section passes the published node-status view into resumeProjection + --- + duration_ms: 1.39014 + type: 'test' + ... +# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim +ok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim + --- + duration_ms: 151.676559 + type: 'test' + ... +# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs +ok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs + --- + duration_ms: 3.53089 + type: 'test' + ... +# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition +ok 530 - the failed triple explicitly records an attempted placement rather than a valid partition + --- + duration_ms: 0.688717 + type: 'test' + ... +# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink +ok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink + --- + duration_ms: 0.236831 + type: 'test' + ... +# Subtest: malformed selections and noncanonical or false ISO timestamps are refused +ok 532 - malformed selections and noncanonical or false ISO timestamps are refused + --- + duration_ms: 1.560919 + type: 'test' + ... +# Subtest: metadata carries the exact pinned finite source and non-certifying scope +ok 533 - metadata carries the exact pinned finite source and non-certifying scope + --- + duration_ms: 0.459918 + type: 'test' + ... +# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement +ok 534 - plaintext citations identify selected objects, actual empty groups and failed placement + --- + duration_ms: 0.704525 + type: 'test' + ... +# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors +ok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors + --- + duration_ms: 2.083079 + type: 'test' + ... +# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer +ok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer + --- + duration_ms: 18.502642 + type: 'test' + ... +# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused +ok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused + --- + duration_ms: 2.140513 + type: 'test' + ... +# Subtest: the visible footer records the same ISO generation timestamp as export metadata +ok 538 - the visible footer records the same ISO generation timestamp as export metadata + --- + duration_ms: 1.197684 + type: 'test' + ... +# Subtest: inherited native font stacks on actual non-text primitives remain self-contained +ok 539 - inherited native font stacks on actual non-text primitives remain self-contained + --- + duration_ms: 1.42533 + type: 'test' + ... +# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export +ok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export + --- + duration_ms: 2.953881 + type: 'test' + ... +# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities +ok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities + --- + duration_ms: 2.02982 + type: 'test' + ... +# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted +ok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted + --- + duration_ms: 0.833985 + type: 'test' + ... +# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink +ok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink + --- + duration_ms: 0.531152 + type: 'test' + ... +# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings +ok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings + --- + duration_ms: 10.835717 + type: 'test' + ... +# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources +ok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources + --- + duration_ms: 2.756947 + type: 'test' + ... +# Subtest: the visible pin footer records the same ISO generation timestamp as metadata +ok 546 - the visible pin footer records the same ISO generation timestamp as metadata + --- + duration_ms: 1.350144 + type: 'test' + ... +# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection. +# Subtest: SIDE24 always identifies the engineering exhibit before the controls +ok 547 - SIDE24 always identifies the engineering exhibit before the controls + --- + duration_ms: 0.796216 + type: 'test' + ... +# Subtest: count cards and every status row retain their own source context +ok 548 - count cards and every status row retain their own source context + --- + duration_ms: 4.823017 + type: 'test' + ... +# Subtest: repository and path filters combine with search and reset pagination +ok 549 - repository and path filters combine with search and reset pagination + --- + duration_ms: 20.014479 + type: 'test' + ... +# Subtest: query view shows its pin and the local byte-check command without a live ref control +ok 550 - query view shows its pin and the local byte-check command without a live ref control + --- + duration_ms: 0.220231 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 551 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.700833 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 552 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 0.960469 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 553 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.314874 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 554 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 4.404044 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 555 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.436635 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 556 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.516351 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 557 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.780847 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.682557 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 559 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.082681 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 560 - navigation and grids can reflow on small screens + --- + duration_ms: 1.266918 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 561 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.035135 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 562 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.116204 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 8.518872 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 11.388077 + type: 'test' + ... +# Subtest: valid source preserves exact strings +ok 565 - valid source preserves exact strings + --- + duration_ms: 39.766495 + type: 'test' + ... +# Subtest: local pinned data bypasses an older response while still verifying current bytes +ok 566 - local pinned data bypasses an older response while still verifying current bytes + --- + duration_ms: 2.883567 + type: 'test' + ... +# Subtest: digest mismatch refuses data +ok 567 - digest mismatch refuses data + --- + duration_ms: 1.665314 + type: 'test' + ... +# Subtest: byte count mismatch refuses data +ok 568 - byte count mismatch refuses data + --- + duration_ms: 0.380875 + type: 'test' + ... +# Subtest: mutable branch URL refused before request +ok 569 - mutable branch URL refused before request + --- + duration_ms: 0.178741 + type: 'test' + ... +# Subtest: HTTP failure gives no data +ok 570 - HTTP failure gives no data + --- + duration_ms: 0.288177 + type: 'test' + ... +# Subtest: status snapshot counts are selected rows +ok 571 - status snapshot counts are selected rows + --- + duration_ms: 0.78096 + type: 'test' + ... +# Subtest: unknown category refused +ok 572 - unknown category refused + --- + duration_ms: 0.213447 + type: 'test' + ... +# Subtest: changed count refused +ok 573 - changed count refused + --- + duration_ms: 0.156093 + type: 'test' + ... +# Subtest: promotion authority refused +ok 574 - promotion authority refused + --- + duration_ms: 0.096634 + type: 'test' + ... +# Subtest: coefficient endpoints remain distinct exactly +ok 575 - coefficient endpoints remain distinct exactly + --- + duration_ms: 0.288337 + type: 'test' + ... +# Subtest: float endpoints refused +ok 576 - float endpoints refused + --- + duration_ms: 0.169181 + type: 'test' + ... +# Subtest: coefficient acceptance flag cannot be flipped +ok 577 - coefficient acceptance flag cannot be flipped + --- + duration_ms: 0.096211 + type: 'test' + ... +# Subtest: catalog points at immutable public paths +ok 578 - catalog points at immutable public paths + --- + duration_ms: 0.180605 + type: 'test' + ... +# Subtest: catalog rejects private repo and traversal +ok 579 - catalog rejects private repo and traversal + --- + duration_ms: 0.179853 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different commit +ok 580 - correct bytes cannot be attributed to a different commit + --- + duration_ms: 0.249207 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different path +ok 581 - correct bytes cannot be attributed to a different path + --- + duration_ms: 0.199822 + type: 'test' + ... +# Subtest: Home explains the landscape before publication machinery +ok 582 - Home explains the landscape before publication machinery + --- + duration_ms: 1.21141 + type: 'test' + ... +# Subtest: Explore reaches a real local control and result before source publication +ok 583 - Explore reaches a real local control and result before source publication + --- + duration_ms: 0.425004 + type: 'test' + ... +# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive +ok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive + --- + duration_ms: 1.120225 + type: 'test' + ... +# Subtest: Research reading map routes to all four preserved introductory paths +ok 585 - Research reading map routes to all four preserved introductory paths + --- + duration_ms: 1.478756 + type: 'test' + ... +# Subtest: Library routes present-day discovery separately from dated records +ok 586 - Library routes present-day discovery separately from dated records + --- + duration_ms: 0.566148 + type: 'test' + ... +# Subtest: Deep archived fragments reveal every ancestor without focus or history writes +ok 587 - Deep archived fragments reveal every ancestor without focus or history writes + --- + duration_ms: 1.071049 + type: 'test' + ... +# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes +ok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes + --- + duration_ms: 0.580133 + type: 'test' + ... +# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched +ok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched + --- + duration_ms: 0.593133 + type: 'test' + ... +# Subtest: current readers expose consistent native task links with real destinations +ok 590 - current readers expose consistent native task links with real destinations + --- + duration_ms: 12.934589 + type: 'test' + ... +# Subtest: missing and already-enhanced menus receive no extra listeners +ok 591 - missing and already-enhanced menus receive no extra listeners + --- + duration_ms: 0.20533 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 592 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 76.344808 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 593 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 53.8431 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 594 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 37.360977 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 595 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 85.380451 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 596 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 145.219905 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 597 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 32.588097 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.487309 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.587285 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 600 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.10908 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.994345 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 34.237471 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 603 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.591469 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.832583 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 605 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.196835 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.771253 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 607 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 23.735487 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 608 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 24.644623 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 609 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 20.009264 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 610 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 28.212349 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 611 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 1.62155 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 612 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 25.585182 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 613 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 19.590452 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 614 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 26.49671 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 615 - a config refusal settles every pending source note + --- + duration_ms: 1.544741 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 616 - a query refusal preserves verified import custody information + --- + duration_ms: 26.553391 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 617 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 19.330122 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 618 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.243258 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 619 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 29.952835 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.408052 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 621 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 24.138546 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 27.569591 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 623 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 26.637679 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 624 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 28.005051 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 625 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 25.206475 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 626 - encoded punctuation stays inert search text + --- + duration_ms: 24.770007 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 627 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 22.107441 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 628 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 7.404102 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 629 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 23.917784 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 630 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 22.013025 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 24.567526 + type: 'test' + ... +# Subtest: every former landing section routes to its preserved workspace section +ok 632 - every former landing section routes to its preserved workspace section + --- + duration_ms: 0.366811 + type: 'test' + ... +# Subtest: new home fragments and untrusted fragments never become redirect destinations +ok 633 - new home fragments and untrusted fragments never become redirect destinations + --- + duration_ms: 0.09916 + type: 'test' + ... +# Subtest: browser entry follows a bookmarked section and future hash changes +ok 634 - browser entry follows a bookmarked section and future hash changes + --- + duration_ms: 0.503124 + type: 'test' + ... +# Subtest: the reader home does not preload the technical inventory or source viewer +ok 635 - the reader home does not preload the technical inventory or source viewer + --- + duration_ms: 0.215186 + type: 'test' + ... +# Subtest: verified source cards become reachable after asynchronous rendering +ok 636 - verified source cards become reachable after asynchronous rendering + --- + duration_ms: 1.47778 + type: 'test' + ... +# Subtest: saved source hands exact fields to the same-site reference builder +ok 637 - saved source hands exact fields to the same-site reference builder + --- + duration_ms: 2.86152 + type: 'test' + ... +# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field +ok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field + --- + duration_ms: 0.855607 + type: 'test' + ... +# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path +ok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path + --- + duration_ms: 0.765975 + type: 'test' + ... +# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal +ok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal + --- + duration_ms: 0.862719 + type: 'test' + ... +# Subtest: queries and malformed or overprivileged imported records cannot become references +ok 641 - queries and malformed or overprivileged imported records cannot become references + --- + duration_ms: 1.050513 + type: 'test' + ... +# Subtest: imported notes refuse raw duplicate schema and source identity keys +ok 642 - imported notes refuse raw duplicate schema and source identity keys + --- + duration_ms: 3.113018 + type: 'test' + ... +# Subtest: source-button identity matches legal filename URI spellings without conflating path segments +ok 643 - source-button identity matches legal filename URI spellings without conflating path segments + --- + duration_ms: 0.395499 + type: 'test' + ... +# Subtest: valid entries retain exact identities and normalize only search whitespace +ok 644 - valid entries retain exact identities and normalize only search whitespace + --- + duration_ms: 1.152066 + type: 'test' + ... +# Subtest: entries require exact plain JSON data records with no inherited or executable fields +ok 645 - entries require exact plain JSON data records with no inherited or executable fields + --- + duration_ms: 0.537421 + type: 'test' + ... +# Subtest: unexpected keys never become imported links, statuses or inferred metadata +ok 646 - unexpected keys never become imported links, statuses or inferred metadata + --- + duration_ms: 0.598085 + type: 'test' + ... +# Subtest: required properties and string types cannot be coerced or defaulted +ok 647 - required properties and string types cannot be coerced or defaulted + --- + duration_ms: 2.014696 + type: 'test' + ... +# Subtest: source repositories and commits must name an allowed owner and exact immutable commit +ok 648 - source repositories and commits must name an allowed owner and exact immutable commit + --- + duration_ms: 0.438988 + type: 'test' + ... +# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments +ok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments + --- + duration_ms: 0.565941 + type: 'test' + ... +# Subtest: dates reject calendar overflow, offsets and invalid timestamp types +ok 650 - dates reject calendar overflow, offsets and invalid timestamp types + --- + duration_ms: 1.260386 + type: 'test' + ... +# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types +ok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types + --- + duration_ms: 1.305739 + type: 'test' + ... +# Subtest: search filters are bounded inert text with collection-specific repositories +ok 652 - search filters are bounded inert text with collection-specific repositories + --- + duration_ms: 0.759223 + type: 'test' + ... +# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding +ok 653 - source links are reconstructed from exact pins with literal raw Git path encoding + --- + duration_ms: 0.373235 + type: 'test' + ... +# Subtest: current search links omit every catalog and unrelated parameter +ok 654 - current search links omit every catalog and unrelated parameter + --- + duration_ms: 0.365667 + type: 'test' + ... +# Subtest: catalog search links omit current parameters and roundtrip all catalog filters +ok 655 - catalog search links omit current parameters and roundtrip all catalog filters + --- + duration_ms: 0.267834 + type: 'test' + ... +# Subtest: blank saved searches restore their collection all-files view +ok 656 - blank saved searches restore their collection all-files view + --- + duration_ms: 0.259602 + type: 'test' + ... +# Subtest: entry identity separates source pins and normalized collection search contexts +ok 657 - entry identity separates source pins and normalized collection search contexts + --- + duration_ms: 0.496805 + type: 'test' + ... +# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields +ok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields + --- + duration_ms: 0.75187 + type: 'test' + ... +# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing +ok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing + --- + duration_ms: 7.686721 + type: 'test' + ... +# Subtest: merge validates every entry before returning and leaves inputs unchanged +ok 660 - merge validates every entry before returning and leaves inputs unchanged + --- + duration_ms: 0.528676 + type: 'test' + ... +# Subtest: deduplication keeps first context and enriches absent identity metadata +ok 661 - deduplication keeps first context and enriches absent identity metadata + --- + duration_ms: 0.515508 + type: 'test' + ... +# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge +ok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge + --- + duration_ms: 0.946232 + type: 'test' + ... +# Subtest: capacity counts unique entries and overflow is atomic +ok 663 - capacity counts unique entries and overflow is atomic + --- + duration_ms: 5.970554 + type: 'test' + ... +# Subtest: exported JSON carries only strict schema data and roundtrips identity types +ok 664 - exported JSON carries only strict schema data and roundtrips identity types + --- + duration_ms: 0.48298 + type: 'test' + ... +# Subtest: export rejects oversized identities instead of creating an unimportable file +ok 665 - export rejects oversized identities instead of creating an unimportable file + --- + duration_ms: 1.540277 + type: 'test' + ... +# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity +ok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity + --- + duration_ms: 9.479528 + type: 'test' + ... +# Subtest: comparison model is implemented +ok 667 - comparison model is implemented + --- + duration_ms: 5.733328 + type: 'test' + ... +# Subtest: literal fields preserve array order and number versus boolean +ok 668 - literal fields preserve array order and number versus boolean + --- + duration_ms: 0.447828 + type: 'test' + ... +# Subtest: real retained archives distinguish pin moves from blob/byte moves +ok 669 - real retained archives distinguish pin moves from blob/byte moves + --- + duration_ms: 308.888941 + type: 'test' + ... +# Subtest: payload integrity refuses byte and digest mismatch +ok 670 - payload integrity refuses byte and digest mismatch + --- + duration_ms: 2.521213 + type: 'test' + ... +# Subtest: unsafe public paths and unsupported versions refuse +ok 671 - unsafe public paths and unsupported versions refuse + --- + duration_ms: 0.664582 + type: 'test' + ... +# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives +ok 672 - duplicate inventory identities refuse; complete edge multiplicity survives + --- + duration_ms: 40.029208 + type: 'test' + ... +# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted +ok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted + --- + duration_ms: 24.608022 + type: 'test' + ... +# Subtest: registry binds selected own descriptors and metadata publication +ok 674 - registry binds selected own descriptors and metadata publication + --- + duration_ms: 5.513798 + type: 'test' + ... +# Subtest: bounded acquisition refuses oversized responses and follows no redirects +ok 675 - bounded acquisition refuses oversized responses and follows no redirects + --- + duration_ms: 16.120735 + type: 'test' + ... +# Subtest: publication acquisition verifies registry hash before admitting choices +ok 676 - publication acquisition verifies registry hash before admitting choices + --- + duration_ms: 44.167587 + type: 'test' + ... +# Subtest: page advertised identity refuses a different publication +ok 677 - page advertised identity refuses a different publication + --- + duration_ms: 6.682192 + type: 'test' + ... +# Subtest: decoded byte identity survives HTTP content encoding +ok 678 - decoded byte identity survives HTTP content encoding + --- + duration_ms: 0.814086 + type: 'test' + ... +# Subtest: raw duplicate node IDs refuse even when exact byte digest matches +ok 679 - raw duplicate node IDs refuse even when exact byte digest matches + --- + duration_ms: 7.957442 + type: 'test' + ... +# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys +ok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys + --- + duration_ms: 0.588581 + type: 'test' + ... +# Subtest: raw duplicate metadata and hash-matching registry keys refuse +ok 681 - raw duplicate metadata and hash-matching registry keys refuse + --- + duration_ms: 4.670407 + type: 'test' + ... +# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections +ok 682 - producer-admitted identical current/archive bytes retain distinct typed selections + --- + duration_ms: 74.878076 + type: 'test' + ... +# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes +ok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes + --- + duration_ms: 0.421172 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 1.226026 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.344603 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 686 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 0.554517 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 687 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.67367 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 688 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 6.299236 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 1.073513 + type: 'test' + ... +# Subtest: builds an immutable repository or file reference without attributing authorship +ok 690 - builds an immutable repository or file reference without attributing authorship + --- + duration_ms: 2.199714 + type: 'test' + ... +# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths +ok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths + --- + duration_ms: 1.384387 + type: 'test' + ... +# Subtest: allows unicode file names and unambiguous encoded URL delimiters +ok 692 - allows unicode file names and unambiguous encoded URL delimiters + --- + duration_ms: 0.26409 + type: 'test' + ... +# Subtest: real form wiring clears stale output and announces a corrected reference +ok 693 - real form wiring clears stale output and announces a corrected reference + --- + duration_ms: 1.134186 + type: 'test' + ... +# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity +ok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity + --- + duration_ms: 0.927848 + type: 'test' + ... +# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math +ok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math + --- + duration_ms: 0.348747 + type: 'test' + ... +# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources +ok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources + --- + duration_ms: 0.236578 + type: 'test' + ... +# Subtest: interval copying locks all formats until the actual write finishes and handles denial +ok 697 - interval copying locks all formats until the actual write finishes and handles denial + --- + duration_ms: 0.719982 + type: 'test' + ... +# Subtest: copy sends exactly the displayed pinned commands and never executes them +ok 698 - copy sends exactly the displayed pinned commands and never executes them + --- + duration_ms: 1.426756 + type: 'test' + ... +# Subtest: clipboard refusal provides manual fallback without success +ok 699 - clipboard refusal provides manual fallback without success + --- + duration_ms: 0.664549 + type: 'test' + ... +# Subtest: unsupported clipboard leaves the command block readable and gives fallback +ok 700 - unsupported clipboard leaves the command block readable and gives fallback + --- + duration_ms: 0.237538 + type: 'test' + ... +# Subtest: reproduction controls have static fallback and an explicit live announcement +ok 701 - reproduction controls have static fallback and an explicit live announcement + --- + duration_ms: 11.072853 + type: 'test' + ... +# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON +ok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON + --- + duration_ms: 0.277362 + type: 'test' + ... +# Subtest: rejects misleading or malformed digest identities +ok 703 - rejects misleading or malformed digest identities + --- + duration_ms: 0.500724 + type: 'test' + ... +# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields +ok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields + --- + duration_ms: 0.799111 + type: 'test' + ... +# Subtest: malformed shared references are refused without partial source identity +ok 705 - malformed shared references are refused without partial source identity + --- + duration_ms: 0.446644 + type: 'test' + ... +# Subtest: reference workflow copies selected representations and invalidates stale outputs +ok 706 - reference workflow copies selected representations and invalidates stale outputs + --- + duration_ms: 0.656173 + type: 'test' + ... +# Subtest: shared reference restoration and Back reject invalid state without publishing old output +ok 707 - shared reference restoration and Back reject invalid state without publishing old output + --- + duration_ms: 0.478652 + type: 'test' + ... +# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded +ok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded + --- + duration_ms: 0.640989 + type: 'test' + ... +# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes +ok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes + --- + duration_ms: 0.303387 + type: 'test' + ... +# Subtest: a pending clipboard operation prevents a newer reference from overtaking it +ok 710 - a pending clipboard operation prevents a newer reference from overtaking it + --- + duration_ms: 0.442564 + type: 'test' + ... +# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest +ok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest + --- + duration_ms: 0.287514 + type: 'test' + ... +# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity +ok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity + --- + duration_ms: 0.25813 + type: 'test' + ... +# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity +ok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity + --- + duration_ms: 0.737254 + type: 'test' + ... +# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success +ok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success + --- + duration_ms: 0.590781 + type: 'test' + ... +# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback +ok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback + --- + duration_ms: 0.497517 + type: 'test' + ... +# Subtest: legal unmatched and nested path braces produce parser-safe literal text +ok 716 - legal unmatched and nested path braces produce parser-safe literal text + --- + duration_ms: 21.9668 + type: 'test' + ... +# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted. +# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata +ok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata + --- + duration_ms: 3.783608 + type: 'test' + ... +# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state +ok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state + --- + duration_ms: 1.107113 + type: 'test' + ... +# Subtest: unsupported resources and unbounded or invisible styles refuse serialization +ok 719 - unsupported resources and unbounded or invisible styles refuse serialization + --- + duration_ms: 1.860744 + type: 'test' + ... +# Subtest: capture reads displayed primitives and their concrete computed styles +ok 720 - capture reads displayed primitives and their concrete computed styles + --- + duration_ms: 1.460012 + type: 'test' + ... +# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children +ok 721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children + --- + duration_ms: 1.359731 + type: 'test' + ... +# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes +ok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes + --- + duration_ms: 1.119866 + type: 'test' + ... +# Subtest: rounded rectangle height requires a matching native used-height witness +ok 723 - rounded rectangle height requires a matching native used-height witness + --- + duration_ms: 0.735958 + type: 'test' + ... +# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion +ok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion + --- + duration_ms: 0.277146 + type: 'test' + ... +# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string +ok 725 - native height equality cannot admit real CSS overrides sharing a rounded string + --- + duration_ms: 1.718551 + type: 'test' + ... +# Subtest: rectangle height witness is finite, bounded and fail-closed +ok 726 - rectangle height witness is finite, bounded and fail-closed + --- + duration_ms: 3.57275 + type: 'test' + ... +# Subtest: native representation check is bounded to positive rectangle height roundoff +ok 727 - native representation check is bounded to positive rectangle height roundoff + --- + duration_ms: 1.891079 + type: 'test' + ... +# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry +ok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry + --- + duration_ms: 0.332034 + type: 'test' + ... +# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles +ok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles + --- + duration_ms: 0.451523 + type: 'test' + ... +# Subtest: capture refuses root opacity that would be lost from the opaque standalone export +ok 730 - capture refuses root opacity that would be lost from the opaque standalone export + --- + duration_ms: 0.480996 + type: 'test' + ... +# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths +ok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths + --- + duration_ms: 1.074217 + type: 'test' + ... +# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes +ok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes + --- + duration_ms: 0.378427 + type: 'test' + ... +# Subtest: pending copies serialize writes and never claim success after control changes +ok 733 - pending copies serialize writes and never claim success after control changes + --- + duration_ms: 0.282674 + type: 'test' + ... +# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text +ok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text + --- + duration_ms: 0.395011 + type: 'test' + ... +# Subtest: current clipboard success and denial report only the current figure state +ok 735 - current clipboard success and denial report only the current figure state + --- + duration_ms: 0.307866 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 736 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 77.58629 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 737 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 43.252282 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 738 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 37.051294 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 739 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 75.348399 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 740 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 142.024782 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 741 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.623381 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.037849 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.440668 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 744 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.504451 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.330987 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.706838 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 747 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.492371 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.304459 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 749 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.697518 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.309105 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 751 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 22.558885 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 752 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 22.421772 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 753 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 19.324618 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 754 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 22.612957 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 755 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 1.49062 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 756 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 23.203283 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 757 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 19.320114 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 758 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 27.045419 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 759 - a config refusal settles every pending source note + --- + duration_ms: 1.72983 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 760 - a query refusal preserves verified import custody information + --- + duration_ms: 22.227155 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 761 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 19.560436 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 762 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.205729 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 763 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 21.606205 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.251194 + type: 'test' + ... +1..764 +# tests 764 +# suites 0 +# pass 764 +# fail 0 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 5108.241554 diff --git a/cbz/evidence/cold-start-node/green/8aa-hosted-job.log b/cbz/evidence/cold-start-node/green/8aa-hosted-job.log new file mode 100644 index 000000000..162b4967e --- /dev/null +++ b/cbz/evidence/cold-start-node/green/8aa-hosted-job.log @@ -0,0 +1,727 @@ +2026-10-29T21:04:59.5956924Z Current runner version: '2.338.0' +2026-10-29T21:04:59.5988093Z ##[group]Runner Image Provisioner +2026-10-29T21:04:59.5989620Z Hosted Compute Agent +2026-10-29T21:04:59.5990309Z Version: 20261021.618 +2026-10-29T21:04:59.5991043Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T21:04:59.5991821Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T21:04:59.5992552Z Worker ID: {6c2d9be7-9e10-439c-8243-d38b269b93ef} +2026-10-29T21:04:59.5993371Z Region: northcentralus +2026-10-29T21:04:59.5994062Z Cloud: Azure +2026-10-29T21:04:59.5994688Z ##[endgroup] +2026-10-29T21:04:59.5996932Z ##[group]Operating System +2026-10-29T21:04:59.5997581Z Ubuntu +2026-10-29T21:04:59.5998290Z 24.04.5 +2026-10-29T21:04:59.5999311Z LTS +2026-10-29T21:04:59.5999836Z ##[endgroup] +2026-10-29T21:04:59.6000538Z ##[group]Runner Image +2026-10-29T21:04:59.6001178Z Image: ubuntu-24.04-arm +2026-10-29T21:04:59.6001850Z Version: 20261025.165.1 +2026-10-29T21:04:59.6003336Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T21:04:59.6005105Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T21:04:59.6006105Z ##[endgroup] +2026-10-29T21:04:59.6007403Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T21:04:59.6010986Z Contents: read +2026-10-29T21:04:59.6011820Z Metadata: read +2026-10-29T21:04:59.6012393Z ##[endgroup] +2026-10-29T21:04:59.6016068Z Secret source: Actions +2026-10-29T21:04:59.6017336Z Cache mode: write +2026-10-29T21:04:59.6018184Z Prepare workflow directory +2026-10-29T21:04:59.6404352Z Prepare all required actions +2026-10-29T21:04:59.6454939Z Getting action download info +2026-10-29T21:04:59.8712208Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T21:04:59.9733601Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T21:05:00.1013741Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T21:05:00.3127015Z Complete job name: controls-and-prepared +2026-10-29T21:05:00.4096884Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T21:05:00.4098816Z with: +2026-10-29T21:05:00.4099470Z persist-credentials: false +2026-10-29T21:05:00.4100277Z fetch-depth: 0 +2026-10-29T21:05:00.4100890Z repository: d6g8k5htny-coder/main +2026-10-29T21:05:00.4104611Z token: *** +2026-10-29T21:05:00.4106345Z ssh-strict: true +2026-10-29T21:05:00.4107061Z ssh-user: git +2026-10-29T21:05:00.4107760Z clean: true +2026-10-29T21:05:00.4108598Z sparse-checkout-cone-mode: true +2026-10-29T21:05:00.4109267Z fetch-tags: false +2026-10-29T21:05:00.4109985Z show-progress: true +2026-10-29T21:05:00.4110554Z lfs: false +2026-10-29T21:05:00.4111170Z submodules: false +2026-10-29T21:05:00.4111775Z set-safe-directory: true +2026-10-29T21:05:00.4112494Z allow-unsafe-pr-checkout: false +2026-10-29T21:05:00.4113812Z ##[endgroup] +2026-10-29T21:05:00.4983678Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T21:05:00.4986182Z ##[group]Getting Git version info +2026-10-29T21:05:00.4987191Z Working directory is '/home/runner/work/main/main' +2026-10-29T21:05:00.5012347Z [command]/usr/bin/git version +2026-10-29T21:05:00.5098207Z git version 2.56.0 +2026-10-29T21:05:00.5116861Z ##[endgroup] +2026-10-29T21:05:00.5126432Z Temporarily overriding HOME='/home/runner/work/_temp/6801c269-c146-4bc6-9d25-99ce4ea3bbe0' before making global git config changes +2026-10-29T21:05:00.5127881Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T21:05:00.5132399Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T21:05:00.5175863Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T21:05:00.5179955Z ##[group]Determining repository object format +2026-10-29T21:05:00.5181974Z ##[endgroup] +2026-10-29T21:05:00.5182986Z ##[group]Initializing the repository +2026-10-29T21:05:00.5186017Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T21:05:00.5265085Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T21:05:00.5266550Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T21:05:00.5267926Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T21:05:00.5269207Z hint: call: +2026-10-29T21:05:00.5269890Z hint: +2026-10-29T21:05:00.5270608Z hint: git config --global init.defaultBranch +2026-10-29T21:05:00.5271445Z hint: +2026-10-29T21:05:00.5272151Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T21:05:00.5273214Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T21:05:00.5274137Z hint: +2026-10-29T21:05:00.5274726Z hint: git branch -m +2026-10-29T21:05:00.5275417Z hint: +2026-10-29T21:05:00.5276316Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T21:05:00.5281193Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T21:05:00.5296713Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T21:05:00.5333651Z ##[endgroup] +2026-10-29T21:05:00.5334782Z ##[group]Disabling automatic garbage collection +2026-10-29T21:05:00.5340300Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T21:05:00.5373446Z ##[endgroup] +2026-10-29T21:05:00.5374572Z ##[group]Setting up auth +2026-10-29T21:05:00.5375245Z Removing SSH command configuration +2026-10-29T21:05:00.5379863Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T21:05:00.5421838Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T21:05:00.5725157Z Removing HTTP extra header +2026-10-29T21:05:00.5731151Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T21:05:00.5763537Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T21:05:00.5977924Z Removing includeIf entries pointing to credentials config files +2026-10-29T21:05:00.5984579Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T21:05:00.6025592Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T21:05:00.6239244Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T21:05:00.6278360Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:00.6311125Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:00.6343124Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:00.6374510Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:00.6403492Z ##[endgroup] +2026-10-29T21:05:00.6404669Z ##[group]Fetching the repository +2026-10-29T21:05:00.6409840Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +e01ab09f9a198009de74a0fb1f017c96f5e85b7d:refs/remotes/pull/707/merge +2026-10-29T21:05:11.0441928Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T21:05:11.0442939Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T21:05:11.0443775Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T21:05:11.0444790Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T21:05:11.0445840Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T21:05:11.0446751Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T21:05:11.0447751Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T21:05:11.0448845Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T21:05:11.0449830Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T21:05:11.0450696Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T21:05:11.0451699Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T21:05:11.0452529Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T21:05:11.0453417Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T21:05:11.0454438Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T21:05:11.0455484Z * [new branch] cbz/foundation-catalog-reconciled-20261029 -> origin/cbz/foundation-catalog-reconciled-20261029 +2026-10-29T21:05:11.0457048Z * [new branch] cbz/foundation-evidence-reconciliation-20261029 -> origin/cbz/foundation-evidence-reconciliation-20261029 +2026-10-29T21:05:11.0458113Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T21:05:11.0459233Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T21:05:11.0460279Z * [new branch] cbz/main-regression-skips-20261029 -> origin/cbz/main-regression-skips-20261029 +2026-10-29T21:05:11.0461213Z * [new branch] cbz/main-retire-superseded-20261029 -> origin/cbz/main-retire-superseded-20261029 +2026-10-29T21:05:11.0462172Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T21:05:11.0463128Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T21:05:11.0464798Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T21:05:11.0465885Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T21:05:11.0466900Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T21:05:11.0468004Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T21:05:11.0469218Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T21:05:11.0470157Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T21:05:11.0471514Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T21:05:11.0472545Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T21:05:11.0473624Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T21:05:11.0474686Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T21:05:11.0475589Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T21:05:11.0476539Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T21:05:11.0477380Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T21:05:11.0478369Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T21:05:11.0479597Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T21:05:11.0480479Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T21:05:11.0481539Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T21:05:11.0482457Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T21:05:11.0483387Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T21:05:11.0484300Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T21:05:11.0485163Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T21:05:11.0486434Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T21:05:11.0487347Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T21:05:11.0488287Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T21:05:11.0489369Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T21:05:11.0490271Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T21:05:11.0491273Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T21:05:11.0492279Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T21:05:11.0493358Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T21:05:11.0494191Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T21:05:11.0494991Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T21:05:11.0495842Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T21:05:11.0496699Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T21:05:11.0497651Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T21:05:11.0498716Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T21:05:11.0499822Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T21:05:11.0500734Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T21:05:11.0501549Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T21:05:11.0502425Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T21:05:11.0503271Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T21:05:11.0504117Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T21:05:11.0504982Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T21:05:11.0505818Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T21:05:11.0506783Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T21:05:11.0507749Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T21:05:11.0508780Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T21:05:11.0509695Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T21:05:11.0510547Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T21:05:11.0511513Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T21:05:11.0512444Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T21:05:11.0513506Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T21:05:11.0514436Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T21:05:11.0515315Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T21:05:11.0516149Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T21:05:11.0517003Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T21:05:11.0517780Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T21:05:11.0518996Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T21:05:11.0519946Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T21:05:11.0520720Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T21:05:11.0521649Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T21:05:11.0522399Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T21:05:11.0523300Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T21:05:11.0524096Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T21:05:11.0524848Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T21:05:11.0525991Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T21:05:11.0526851Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T21:05:11.0527723Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T21:05:11.0528829Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T21:05:11.0529703Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T21:05:11.0530720Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T21:05:11.0531631Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T21:05:11.0532624Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T21:05:11.0533592Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T21:05:11.0534582Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T21:05:11.0535571Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T21:05:11.0536474Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T21:05:11.0537447Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T21:05:11.0538527Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T21:05:11.0539634Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T21:05:11.0540770Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T21:05:11.0541758Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T21:05:11.0542842Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T21:05:11.0543737Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T21:05:11.0544684Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T21:05:11.0545768Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T21:05:11.0546660Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T21:05:11.0547593Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T21:05:11.0548675Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T21:05:11.0549620Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T21:05:11.0550699Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T21:05:11.0551649Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T21:05:11.0552598Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T21:05:11.0553915Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T21:05:11.0554845Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T21:05:11.0555943Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T21:05:11.0556949Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T21:05:11.0557951Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T21:05:11.0559000Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T21:05:11.0559974Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T21:05:11.0561281Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T21:05:11.0562415Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T21:05:11.0563583Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T21:05:11.0564555Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T21:05:11.0565342Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T21:05:11.0566325Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T21:05:11.0567235Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T21:05:11.0568336Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T21:05:11.0569620Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T21:05:11.0570469Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T21:05:11.0571462Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T21:05:11.0572315Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T21:05:11.0573177Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T21:05:11.0574070Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T21:05:11.0574942Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T21:05:11.0576070Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T21:05:11.0577124Z * [new branch] codex/public-intake-discovery-20261029 -> origin/codex/public-intake-discovery-20261029 +2026-10-29T21:05:11.0578061Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T21:05:11.0579098Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T21:05:11.0579946Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T21:05:11.0581363Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T21:05:11.0582313Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T21:05:11.0583329Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T21:05:11.0584275Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T21:05:11.0585191Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T21:05:11.0586221Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T21:05:11.0587111Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T21:05:11.0588256Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T21:05:11.0589480Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T21:05:11.0590300Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T21:05:11.0591193Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T21:05:11.0592106Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T21:05:11.0592987Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T21:05:11.0593855Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T21:05:11.0594793Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T21:05:11.0596027Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T21:05:11.0597058Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T21:05:11.0598034Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T21:05:11.0599277Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T21:05:11.0600353Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T21:05:11.0601434Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T21:05:11.0602506Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T21:05:11.0603390Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T21:05:11.0604490Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T21:05:11.0605519Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T21:05:11.0606441Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T21:05:11.0607344Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T21:05:11.0608267Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T21:05:11.0610041Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T21:05:11.0611064Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T21:05:11.0612138Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T21:05:11.0613015Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T21:05:11.0613840Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T21:05:11.0614828Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T21:05:11.0615817Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T21:05:11.0616909Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T21:05:11.0617795Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T21:05:11.0618869Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T21:05:11.0620122Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T21:05:11.0621204Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T21:05:11.0622469Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T21:05:11.0623547Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T21:05:11.0624740Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T21:05:11.0626026Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T21:05:11.0626990Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T21:05:11.0628029Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T21:05:11.0629118Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T21:05:11.0630023Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T21:05:11.0631058Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T21:05:11.0632020Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T21:05:11.0633163Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T21:05:11.0634196Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T21:05:11.0635038Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T21:05:11.0635908Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T21:05:11.0636806Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T21:05:11.0638034Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T21:05:11.0639109Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T21:05:11.0639965Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T21:05:11.0640909Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T21:05:11.0641804Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T21:05:11.0642722Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T21:05:11.0643544Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T21:05:11.0644463Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T21:05:11.0645420Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T21:05:11.0646354Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T21:05:11.0647392Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T21:05:11.0648509Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T21:05:11.0649365Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T21:05:11.0650371Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T21:05:11.0651567Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T21:05:11.0652517Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T21:05:11.0653444Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T21:05:11.0654320Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T21:05:11.0655288Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T21:05:11.0656225Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T21:05:11.0657212Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T21:05:11.0658094Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T21:05:11.0659134Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T21:05:11.0660113Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T21:05:11.0660895Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T21:05:11.0661758Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T21:05:11.0662793Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T21:05:11.0663952Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T21:05:11.0665413Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T21:05:11.0666345Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T21:05:11.0667293Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T21:05:11.0668231Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T21:05:11.0669413Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T21:05:11.0670419Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T21:05:11.0671259Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T21:05:11.0672136Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T21:05:11.0673029Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T21:05:11.0673918Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T21:05:11.0674983Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T21:05:11.0675924Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T21:05:11.0676817Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T21:05:11.0677624Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T21:05:11.0678852Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T21:05:11.0679797Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T21:05:11.0680623Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T21:05:11.0681472Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T21:05:11.0682549Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T21:05:11.0683519Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T21:05:11.0684425Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T21:05:11.0685222Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T21:05:11.0686067Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T21:05:11.0687109Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T21:05:11.0688208Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T21:05:11.0689444Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T21:05:11.0690345Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T21:05:11.0691309Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T21:05:11.0692778Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T21:05:11.0693792Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T21:05:11.0694559Z * [new branch] main -> origin/main +2026-10-29T21:05:11.0695327Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T21:05:11.0696280Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T21:05:11.0697299Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T21:05:11.0698123Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T21:05:11.0699216Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T21:05:11.0699963Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T21:05:11.0700601Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T21:05:11.0701382Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T21:05:11.0702025Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T21:05:11.0702734Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T21:05:11.0703466Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T21:05:11.0704126Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T21:05:11.0704908Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T21:05:11.0705772Z * [new ref] e01ab09f9a198009de74a0fb1f017c96f5e85b7d -> pull/707/merge +2026-10-29T21:05:11.0707677Z ##[endgroup] +2026-10-29T21:05:11.0708597Z ##[group]Determining the checkout info +2026-10-29T21:05:11.0709278Z ##[endgroup] +2026-10-29T21:05:11.0709774Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T21:05:11.0711017Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T21:05:11.0712396Z ##[group]Checking out the ref +2026-10-29T21:05:11.0713018Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T21:05:11.3208917Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T21:05:11.3232529Z +2026-10-29T21:05:11.3233130Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T21:05:11.3233955Z changes and commit them, and you can discard any commits you make in this +2026-10-29T21:05:11.3234620Z state without impacting any branches by switching back to a branch. +2026-10-29T21:05:11.3234918Z +2026-10-29T21:05:11.3235276Z If you want to create a new branch to retain commits you create, you may +2026-10-29T21:05:11.3235839Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T21:05:11.3236178Z +2026-10-29T21:05:11.3236315Z git switch -c +2026-10-29T21:05:11.3236616Z +2026-10-29T21:05:11.3236787Z Or undo this operation with: +2026-10-29T21:05:11.3237002Z +2026-10-29T21:05:11.3237127Z git switch - +2026-10-29T21:05:11.3237316Z +2026-10-29T21:05:11.3237740Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T21:05:11.3238074Z +2026-10-29T21:05:11.3238718Z HEAD is now at e01ab09f Merge 8aa7d353d6864b6481df5508aaea7b73f185abdf into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T21:05:11.3240725Z ##[endgroup] +2026-10-29T21:05:11.3282223Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T21:05:11.3309812Z e01ab09f9a198009de74a0fb1f017c96f5e85b7d +2026-10-29T21:05:11.3318264Z ##[group]Removing auth +2026-10-29T21:05:11.3318967Z Removing SSH command configuration +2026-10-29T21:05:11.3322812Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T21:05:11.3356568Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T21:05:11.3587612Z Removing HTTP extra header +2026-10-29T21:05:11.3588640Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T21:05:11.3619790Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T21:05:11.3840968Z Removing includeIf entries pointing to credentials config files +2026-10-29T21:05:11.3843173Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T21:05:11.3870434Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T21:05:11.3871164Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T21:05:11.3871855Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T21:05:11.3872322Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T21:05:11.3877575Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T21:05:11.3904995Z /home/runner/work/_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:11.3914379Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-3e1609da\-e17b\-4c6c\-b660\-045ed1fb7364\.config +2026-10-29T21:05:11.3958805Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T21:05:11.3985072Z /home/runner/work/_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:11.3993203Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-3e1609da\-e17b\-4c6c\-b660\-045ed1fb7364\.config +2026-10-29T21:05:11.4030070Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T21:05:11.4057153Z /github/runner_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:11.4063701Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-3e1609da\-e17b\-4c6c\-b660\-045ed1fb7364\.config +2026-10-29T21:05:11.4099978Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T21:05:11.4126858Z /github/runner_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config +2026-10-29T21:05:11.4140112Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-3e1609da\-e17b\-4c6c\-b660\-045ed1fb7364\.config +2026-10-29T21:05:11.4169454Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T21:05:11.4395103Z Removing credentials config '/home/runner/work/_temp/git-credentials-3e1609da-e17b-4c6c-b660-045ed1fb7364.config' +2026-10-29T21:05:11.4404833Z ##[endgroup] +2026-10-29T21:05:11.4685972Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T21:05:11.4686668Z with: +2026-10-29T21:05:11.4686970Z python-version: 3.11 +2026-10-29T21:05:11.4687419Z check-latest: false +2026-10-29T21:05:11.4690192Z token: *** +2026-10-29T21:05:11.4690618Z update-environment: true +2026-10-29T21:05:11.4691313Z allow-prereleases: false +2026-10-29T21:05:11.4691633Z freethreaded: false +2026-10-29T21:05:11.4692002Z ##[endgroup] +2026-10-29T21:05:11.5694582Z ##[group]Installed versions +2026-10-29T21:05:11.6331416Z Successfully set up CPython (3.11.17) +2026-10-29T21:05:11.6332207Z ##[endgroup] +2026-10-29T21:05:11.6496416Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T21:05:11.6497420Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T21:05:11.6710685Z shell: /usr/bin/bash -e {0} +2026-10-29T21:05:11.6711080Z env: +2026-10-29T21:05:11.6711631Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:11.6712187Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:05:11.6712650Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:11.6713161Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:11.6713651Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:11.6714154Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:05:11.6714584Z ##[endgroup] +2026-10-29T21:05:12.6978119Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T21:05:12.6984633Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T21:05:12.6985761Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T21:05:12.6987654Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T21:05:12.6995370Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... ok +2026-10-29T21:05:12.6996423Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T21:05:12.6997535Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T21:05:12.6998604Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T21:05:12.6999781Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T21:05:12.7010694Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T21:05:12.7011588Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T21:05:12.7012634Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T21:05:12.7013714Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T21:05:12.7014864Z test_source_loader_ignores_poisoned_bytecode (test_cbz_node_regression.MutationHarnessTests.test_source_loader_ignores_poisoned_bytecode) ... ok +2026-10-29T21:05:12.7015785Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T21:05:12.9623696Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T21:05:12.9846231Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T21:05:15.4496578Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T21:05:15.4748007Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T21:05:15.4933250Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T21:05:15.5126815Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T21:05:15.5332668Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T21:05:15.5521384Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T21:05:15.7014340Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T21:05:15.7208363Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T21:05:15.7452002Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T21:05:15.7664787Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T21:05:15.7862383Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T21:05:15.8063750Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T21:05:15.8328536Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T21:05:15.8517021Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T21:05:15.9360893Z test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... ok +2026-10-29T21:05:15.9607278Z test_poisoned_runner_bytecode_cannot_execute_in_test_loader (test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) ... ok +2026-10-29T21:05:15.9807343Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T21:05:16.0021530Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T21:05:16.1059703Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T21:05:16.1256278Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T21:05:16.1521858Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T21:05:16.1811328Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T21:05:16.2075217Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T21:05:16.2360300Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T21:05:16.2850805Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T21:05:16.3132113Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T21:05:16.3323893Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T21:05:16.3523869Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T21:05:16.3835820Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T21:05:16.4028113Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T21:05:16.4233203Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T21:05:19.4938751Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T21:05:20.3322030Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T21:05:21.5301970Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T21:05:21.5302561Z +2026-10-29T21:05:21.5303578Z ---------------------------------------------------------------------- +2026-10-29T21:05:21.5303992Z Ran 51 tests in 8.833s +2026-10-29T21:05:21.5304164Z +2026-10-29T21:05:21.5304252Z OK +2026-10-29T21:05:21.5504727Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T21:05:21.5505454Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T21:05:21.5555988Z shell: /usr/bin/bash -e {0} +2026-10-29T21:05:21.5556430Z env: +2026-10-29T21:05:21.5556744Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:21.5557286Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:05:21.5557812Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:21.5558241Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:21.5558937Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:21.5559373Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:05:21.5559726Z ##[endgroup] +2026-10-29T21:05:24.0125112Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T21:05:24.0133552Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T21:05:24.0134735Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T21:05:24.0135694Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T21:05:24.0143326Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... ok +2026-10-29T21:05:24.0144339Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T21:05:24.0145387Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T21:05:24.0146677Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T21:05:24.0147582Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T21:05:24.0148762Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T21:05:24.0149631Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T21:05:24.0150605Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T21:05:24.0151666Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T21:05:24.0152749Z test_source_loader_ignores_poisoned_bytecode (test_cbz_node_regression.MutationHarnessTests.test_source_loader_ignores_poisoned_bytecode) ... ok +2026-10-29T21:05:24.0153701Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T21:05:24.8429524Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T21:05:24.8650134Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T21:05:25.0543350Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T21:05:25.1013349Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T21:05:25.1202818Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T21:05:25.1403990Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T21:05:25.1615126Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T21:05:25.1807224Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T21:05:25.7878540Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T21:05:25.8159165Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T21:05:25.8519885Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T21:05:25.8823307Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T21:05:25.9065540Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T21:05:25.9268218Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T21:05:25.9534496Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T21:05:25.9730724Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T21:05:26.2526245Z test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... ok +2026-10-29T21:05:26.2776747Z test_poisoned_runner_bytecode_cannot_execute_in_test_loader (test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) ... ok +2026-10-29T21:05:26.2983441Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T21:05:26.3414458Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T21:05:26.4872200Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T21:05:26.5586126Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T21:05:26.7094530Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T21:05:26.7616267Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T21:05:26.8840197Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T21:05:26.9642687Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T21:05:27.0420878Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T21:05:27.1454155Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T21:05:27.7125393Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T21:05:27.7321330Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T21:05:27.7634104Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T21:05:27.7825155Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T21:05:27.8025923Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T21:05:36.4761297Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T21:05:39.0555302Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T21:05:41.1253021Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T21:05:41.1253766Z +2026-10-29T21:05:41.1253975Z ---------------------------------------------------------------------- +2026-10-29T21:05:41.1254569Z Ran 51 tests in 17.113s +2026-10-29T21:05:41.1254728Z +2026-10-29T21:05:41.1254835Z OK +2026-10-29T21:05:41.1459897Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T21:05:41.1460771Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T21:05:41.1461569Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T21:05:41.1496585Z shell: /usr/bin/bash -e {0} +2026-10-29T21:05:41.1497052Z env: +2026-10-29T21:05:41.1497416Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:41.1497931Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:05:41.1498614Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:41.1499120Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:41.1499639Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:41.1500184Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:05:41.1500634Z ##[endgroup] +2026-10-29T21:05:41.1569896Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T21:05:42.7028854Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T21:05:43.0228356Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T21:05:43.0230380Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T21:05:43.0269694Z shell: /usr/bin/bash -e {0} +2026-10-29T21:05:43.0270135Z env: +2026-10-29T21:05:43.0270453Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:43.0270932Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:05:43.0271499Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:43.0271919Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:43.0272381Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:43.0272953Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:05:43.0273407Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T21:05:43.0273915Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T21:05:43.0274208Z ##[endgroup] +2026-10-29T21:05:49.4528153Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T21:05:49.4687517Z ##[group]Run python -B -S - <<'PY' +2026-10-29T21:05:49.4688098Z python -B -S - <<'PY' +2026-10-29T21:05:49.4688708Z import hashlib, json, os +2026-10-29T21:05:49.4689086Z from pathlib import Path +2026-10-29T21:05:49.4689454Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T21:05:49.4689902Z record = json.loads((root / "result.json").read_text()) +2026-10-29T21:05:49.4690442Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T21:05:49.4690934Z raw = (root / "node.tap").read_bytes() +2026-10-29T21:05:49.4691300Z def verify_log(value): +2026-10-29T21:05:49.4691665Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T21:05:49.4692188Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T21:05:49.4692654Z verify_log(raw) +2026-10-29T21:05:49.4693002Z try: +2026-10-29T21:05:49.4693282Z  verify_log(raw + b"\0") +2026-10-29T21:05:49.4693572Z except ValueError: +2026-10-29T21:05:49.4693905Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T21:05:49.4694245Z else: +2026-10-29T21:05:49.4694593Z  raise SystemExit("modified transcript was admitted") +2026-10-29T21:05:49.4695002Z text = raw.decode("utf-8") +2026-10-29T21:05:49.4695366Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T21:05:49.4695804Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T21:05:49.4696201Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T21:05:49.4696668Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T21:05:49.4697383Z for number, chunk in enumerate(chunks): +2026-10-29T21:05:49.4697832Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T21:05:49.4698254Z PY +2026-10-29T21:05:49.4731017Z shell: /usr/bin/bash -e {0} +2026-10-29T21:05:49.4731460Z env: +2026-10-29T21:05:49.4731768Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.4732321Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:05:49.4732824Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.4733252Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.4733747Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.4734225Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:05:49.4734602Z ##[endgroup] +2026-10-29T21:05:49.5020022Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T21:05:49.451552+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "4da55b5959ffba1c920db90eff091d04dbafcff4fac91bbe6f460b65dee781fb", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "e01ab09f9a198009de74a0fb1f017c96f5e85b7d", "source_before": "e01ab09f9a198009de74a0fb1f017c96f5e85b7d", "started_utc": "2026-10-29T21:05:43.088874+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T21:05:49.5060050Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T21:05:49.5060443Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T21:05:49.5061215Z CBZ_NODE_TAP_GIT_BLOB 2327ca95a56afdf4d7efd46ec469f26a53c15953 +2026-10-29T21:05:49.5074832Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 45.747156\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 13.539063\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.766244\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 8.24854\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.049688\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.584343\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.546495\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.164669\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.536415\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.667797\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.515072\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.096439\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.837803\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.536967\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 4.081711\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.729356\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.617742\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.037127\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.026248\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.592542\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit b" +2026-10-29T21:05:49.5101275Z CBZ_NODE_TAP_JSON 1 "ridge\n ---\n duration_ms: 0.59947\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.2447\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.593374\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.792051\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.574055\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.09227\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.839498\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.886889\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.336882\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.9974\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.213316\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.843546\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.836355\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 5.263268\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 1.859107\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.324666\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.329546\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.312555\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.372338\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.181238\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot remains" +2026-10-29T21:05:49.5127581Z CBZ_NODE_TAP_JSON 2 " a visible reading action\n ---\n duration_ms: 0.121414\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.181325\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.355586\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.314219\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.15555\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 1.909521\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.764092\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 0.976112\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.178357\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 0.882578\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 1.732948\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 1.792139\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.738364\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.49184\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.681397\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.325498\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.352523\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.289084\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are determin" +2026-10-29T21:05:49.5153860Z CBZ_NODE_TAP_JSON 3 "istic and inputs remain unchanged\n ---\n duration_ms: 1.029383\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.403658\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.230669\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 3.406273\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.451657\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.811835\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.298643\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 3.785955\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.587614\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.606214\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.995408\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.690717\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.178285\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.934705\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.127886\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.132094\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 9.562279\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 8.0044\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 517.62945\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history state; shar" +2026-10-29T21:05:49.5180093Z CBZ_NODE_TAP_JSON 4 "e link only includes filters\n ---\n duration_ms: 120.762003\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 51.915977\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 46.461936\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 24.605542\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 29.74282\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 29.175629\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 5.856002\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 24.192973\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 22.739235\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 24.03172\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 19.66031\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 7.869554\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 10.676013\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 5.189949\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.093318\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 8.981016\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.945393\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.512727\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.743532\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers use disti" +2026-10-29T21:05:49.5206238Z CBZ_NODE_TAP_JSON 5 "nct identities and ordinary, non-live count spans\n ---\n duration_ms: 7.630142\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 12.671045\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.616814\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.317211\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.374922\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.272124\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.758516\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 0.844339\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 1.66503\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 2.652445\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.21138\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 2.605431\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.63155\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.551192\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.564023\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.585374\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 0.953664\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.621598\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.558831\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.636021\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 1.728276\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 1.547247\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 1.408906\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.482104\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 0.514551\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid range\n ---" +2026-10-29T21:05:49.5232622Z CBZ_NODE_TAP_JSON 6 "\n duration_ms: 0.4676\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.428921\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 0.564815\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.142518\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 0.783484\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.529304\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 3.806691\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 0.712364\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.684245\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.106623\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 1.085055\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 1.044391\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 1.734692\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 1.028215\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.894946\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.997832\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.487352\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 1.490168\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 1.670638\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.888578\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.554343\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 9.102086\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort signal\n " +2026-10-29T21:05:49.5258993Z CBZ_NODE_TAP_JSON 7 " ---\n duration_ms: 2.049103\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.78778\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.562551\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.469448\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.365499\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 3.564919\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 0.9876\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.929065\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.831739\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.587006\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 11.284531\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 1.873698\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 11.878721\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 2.545648\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.529607\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.37661\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 5.981776\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 0.989064\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.790051\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.830619\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct" +2026-10-29T21:05:49.5285086Z CBZ_NODE_TAP_JSON 8 " an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.600918\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.727549\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.319171\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.225428\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.499504\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.521176\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.150365\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.264964\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.175181\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.583039\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 138.370481\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.360026\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.375458\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.303939\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.587567\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.422521\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.328691\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewriting the " +2026-10-29T21:05:49.5311715Z CBZ_NODE_TAP_JSON 9 "address\n ---\n duration_ms: 0.268476\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.776259\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.561335\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.406154\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.386306\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.233604\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.331818\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.267316\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.5134\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.37557\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.48564\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.363186\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.656621\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 8.394258\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.165838\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.75634\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.016455\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.631054\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.638422" +2026-10-29T21:05:49.5338075Z CBZ_NODE_TAP_JSON 10 "\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 0.54212\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.482209\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.666549\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.539383\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.528175\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.538911\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.510951\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.506416\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.51128\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.555959\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.499408\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.468568\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.62443\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.60991\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.604742\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.5158\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.526455\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.49816\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 0.640054\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.568007\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.513791\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.157813\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 4.926265\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 1.867202\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 0.569871\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.571135\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.561575\n type: 'test'\n ...\n# Subtest: acquisition: independent erro" +2026-10-29T21:05:49.5364385Z CBZ_NODE_TAP_JSON 11 "rs sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.920042\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.516816\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.4934\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.517608\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.53272\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.460937\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.52364\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.4966\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.769804\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.497096\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.548007\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.21006\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.710228\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.081263\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.163158\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.416721\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.218996\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.359562\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 2.664333\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 1.727773\n type: 'test'\n ...\n# Subtest: equation and graph sha" +2026-10-29T21:05:49.5390811Z CBZ_NODE_TAP_JSON 12 "re bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.157926\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.116462\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.510792\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 115.1883\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.527432\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.169293\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.267579\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.308155\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 4.454176\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.858778\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 3.931705\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.350403\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 0.886906\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.697124\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 24.248284\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 10.490224\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 7.641326\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_ms: 13.089711\n t" +2026-10-29T21:05:49.5417071Z CBZ_NODE_TAP_JSON 13 "ype: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 20.922217\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 58.696108\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 21.289643\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 16.995271\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 2.354858\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.220597\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.513056\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.459872\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 53.943792\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 3.330435\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 5.414946\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.078839\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.466456\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.257868\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.469313\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.720373\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.187589\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - only exact publ" +2026-10-29T21:05:49.5443340Z CBZ_NODE_TAP_JSON 14 "ic review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.44868\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.182205\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.008128\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 145.373225\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.160325\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.370114\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.962897\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.579047\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.557463\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.331995\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.449521\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 1.833003\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.737372\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.989048\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.420034\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.226789\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.312883\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.25586\n type: 'test'\n ...\n# Subtest: widening th" +2026-10-29T21:05:49.5469691Z CBZ_NODE_TAP_JSON 15 "e viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.435034\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.293379\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.45848\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.336019\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.210453\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 32.739204\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 6.822914\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 4.175381\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.576639\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.470809\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.380034\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 2.554527\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.786652\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.097734\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.234948\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 2.66231\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 2.801068\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---\n duration_m" +2026-10-29T21:05:49.5496165Z CBZ_NODE_TAP_JSON 16 "s: 0.396802\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.302427\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.278675\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.245988\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.458296\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.222141\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 2.452697\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.485945\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 29.273395\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 2.12099\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.564455\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.732924\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 1.534623\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 2.2831\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 5.295555\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 47.514551\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 163.665636\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-evidence afte" +2026-10-29T21:05:49.5522637Z CBZ_NODE_TAP_JSON 17 "r 0 ms digest delay\n ---\n duration_ms: 16.022615\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 162.551534\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 22.929185\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 164.16278\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 11.613294\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 165.671054\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 1.750989\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 1.266021\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 1.166889\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.681345\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 1.767068\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 1.058796\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 1.737421\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 6.938222\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 2.147128\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 0.275447\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 3.716475\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 1.176816\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and labels the snapsh" +2026-10-29T21:05:49.5549049Z CBZ_NODE_TAP_JSON 18 "ot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 0.661642\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 1.421576\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.177201\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 1.162481\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 1.959422\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 2.406839\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 1.394457\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 0.804652\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 6.806594\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.472353\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 0.87661\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.520632\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.274644\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.475608\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.764219\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 1.899281\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 0.303499\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - invalid cho" +2026-10-29T21:05:49.5575527Z CBZ_NODE_TAP_JSON 19 "ices cannot invent regions or objects\n ---\n duration_ms: 0.599879\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.899393\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.498744\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.202453\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 3.823818\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 2.005768\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 1.538815\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 2.317138\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 0.979824\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.414922\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.054439\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.513991\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.843786\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 2.075879\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.314763\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.487569\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.685741\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.789035\n type: 'test'\n ...\n# Subtes" +2026-10-29T21:05:49.5601739Z CBZ_NODE_TAP_JSON 20 "t: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 7.908865\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.574119\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.530832\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.354826\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.205949\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.166525\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.298955\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.303803\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.606822\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.379378\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.228949\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.355947\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.318675\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.798203\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.520672\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.41313\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.4734\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.204581\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.215029\n t" +2026-10-29T21:05:49.5627757Z CBZ_NODE_TAP_JSON 21 "ype: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 9.395994\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.097054\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 0.991368\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 0.920817\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.36441\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.423618\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.363034\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.397025\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.865258\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 2.837586\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.105646\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 2.165333\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 4.338546\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.336074\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.440673\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.400458\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 1.31821\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.321931\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 66.619302\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 31.671097\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 62.459736\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 135.525292\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and malformed ha" +2026-10-29T21:05:49.5653460Z CBZ_NODE_TAP_JSON 22 "sh types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 99.247645\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 74.982713\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 34.423109\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.185495\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.526199\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 0.974815\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.949899\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 39.056351\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 12.950338\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 11.574025\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 14.09254\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 4.662722\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 1.457847\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.680041\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 6.242421\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 4.317214\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 1.582682\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.217903\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 7.078041" +2026-10-29T21:05:49.5679231Z CBZ_NODE_TAP_JSON 23 "\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 3.137262\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.50098\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.004701\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.605384\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.636479\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.681489\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.493207\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.790485\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.476288\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.305598\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 10.885696\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.142913\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 0.968799\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 3.398061\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.345929\n type: 'test'\n ..." +2026-10-29T21:05:49.5705356Z CBZ_NODE_TAP_JSON 24 "\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.481559\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 4.615508\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.641896\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 8.93421\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 0.982015\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.260583\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 46.645472\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.565993\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 9.168194\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 16.731378\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.689213\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 5.14653\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 10.329115\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 7.319688\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 0.967871\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.895858\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.565885\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified replay so" +2026-10-29T21:05:49.5731606Z CBZ_NODE_TAP_JSON 25 "urce\n ---\n duration_ms: 6.814786\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 1.790723\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.402123\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 2.282003\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 0.961904\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 15.823121\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 0.496927\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.030821\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 1.200919\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.240958\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 7.502738\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 5.68488\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.923657\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.233526\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 6.408392\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 7.263978\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 4.022984\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.004863\n type: 'tes" +2026-10-29T21:05:49.5757609Z CBZ_NODE_TAP_JSON 26 "t'\n ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 13.120612\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.231229\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 14.738293\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 3.929708\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 6.087714\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 8.437851\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 7.562872\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 7.305306\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 7.368519\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.661519\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.430042\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.549237\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.461216\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.491815\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 3.087799\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.720072\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.674817\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.591314\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view throu" +2026-10-29T21:05:49.5783935Z CBZ_NODE_TAP_JSON 27 "gh 3D, 2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 3.820871\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.211735\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 6.45643\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 33.662998\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 219.487069\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 319.569502\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1031.553341\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 273.990787\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 397.825553\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 135.701309\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 537.619572\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 178.725639\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.447591\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 149.9403\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 3.675011\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.6854\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.253679\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.241846\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n duration_m" +2026-10-29T21:05:49.5810297Z CBZ_NODE_TAP_JSON 28 "s: 0.471928\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.701544\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.156975\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 17.119862\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 2.209205\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.246934\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 1.067796\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 2.585505\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 2.133744\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.883922\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.550045\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 10.693534\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 2.921237\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.421048\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.803757\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 2.814025\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 13.682281\n type: 'test'\n ...\n# Subtes" +2026-10-29T21:05:49.5836379Z CBZ_NODE_TAP_JSON 29 "t: query view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 0.257559\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.522155\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 0.972871\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.28815\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 6.807929\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.51962\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.577092\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.832236\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.710808\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.353962\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.998406\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.082212\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.141179\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 8.927187\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 10.470318\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 43.634622\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 2.746883\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 2.074042\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.403106\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.216513\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.308542\n type: 'test'\n ...\n# Subtest: stat" +2026-10-29T21:05:49.5862511Z CBZ_NODE_TAP_JSON 30 "us snapshot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 0.84342\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.245704\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.150323\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.12294\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.227377\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.165434\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.0981\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.186185\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.181642\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.266103\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.204049\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.242102\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.400594\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.131498\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.569011\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.520127\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.027021\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.536958\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.581348\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 10.890447\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.242504\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 80.668169\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagi" +2026-10-29T21:05:49.5888929Z CBZ_NODE_TAP_JSON 31 "nation and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 60.405454\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 44.705313\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 74.612574\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 151.827468\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.108822\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.386732\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.132206\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 31.560133\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.363913\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.712282\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.294731\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.567708\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.388553\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.427455\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 30.331015\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 20.963987\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 27.558324\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 26.785191\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused config" +2026-10-29T21:05:49.5915098Z CBZ_NODE_TAP_JSON 32 "uration still reveals the requested unavailable section\n ---\n duration_ms: 1.822211\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 20.315481\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 23.256278\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 25.97737\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.628209\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 20.010484\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 24.941301\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.250984\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 25.873798\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.332555\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 21.991888\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 27.845322\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 44.780007\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 33.661254\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 26.674242\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 19.52782\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 27.494615\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 5.241463\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 35.335446\n type: 'test'\n ..." +2026-10-29T21:05:49.5942669Z CBZ_NODE_TAP_JSON 33 "\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 26.096006\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 27.015383\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.428618\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.116836\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 0.627555\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.2414\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 5.658937\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 3.083176\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.884098\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.799701\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.854595\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.096675\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.529073\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.399019\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.19096\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.536878\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.633122\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 2.110217\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable comm" +2026-10-29T21:05:49.5969211Z CBZ_NODE_TAP_JSON 34 "it\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.51739\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.560021\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.270478\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 2.035771\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.766526\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.361516\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.3789\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.269007\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.265591\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.527974\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.675761\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 4.905162\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.545254\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 2.960756\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 0.950904\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 7.815807\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.504543\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 8.507945\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 7.270658\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - comparison" +2026-10-29T21:05:49.5995577Z CBZ_NODE_TAP_JSON 35 " model is implemented\n ---\n duration_ms: 5.600579\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.430977\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 332.068096\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 2.080674\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.614523\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 36.38953\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 30.119646\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 3.464843\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 17.219162\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 46.706678\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 4.536462\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.818516\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 6.985612\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 0.676137\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 8.408692\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 74.569376\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.585909\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.173592\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.352052\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, encoded t" +2026-10-29T21:05:49.6022133Z CBZ_NODE_TAP_JSON 36 "raversal and malformed identities stay literal\n ---\n duration_ms: 0.546157\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.667848\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.10645\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.074635\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 1.838009\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.424432\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.247887\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.130386\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 0.961536\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.353772\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.243288\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.72884\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 1.462831\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 0.666417\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.257184\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 9.939104\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.299334\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.456985\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields\n ---" +2026-10-29T21:05:49.6048690Z CBZ_NODE_TAP_JSON 37 "\n duration_ms: 0.810149\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.467472\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.733335\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.497456\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.64909\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.313229\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.434089\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.309686\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.260343\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.749319\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.520678\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.507079\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 16.743002\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 3.892644\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.187247\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 2.051563\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.533477\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok 721 -" +2026-10-29T21:05:49.6075268Z CBZ_NODE_TAP_JSON 38 " capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.117651\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.13865\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.754367\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.289718\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.70943\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 3.565152\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.745941\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.355556\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.459768\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.474696\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.160681\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.430682\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.279126\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.420393\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.313757\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 78.676869\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 49.908657\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 41.313803" +2026-10-29T21:05:49.6101815Z CBZ_NODE_TAP_JSON 39 "\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 82.312354\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 136.915884\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.078467\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.032838\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.702573\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.914761\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.84605\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.093457\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.260448\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.946977\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.490133\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.718673\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 23.037621\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 20.022804\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 22.973655\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 23.471247\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.724102\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 20.223717\n type: 'test'\n ...\n# Subtest: reader movement between source settlement an" +2026-10-29T21:05:49.6120739Z CBZ_NODE_TAP_JSON 40 "d final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 23.135522\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 24.63244\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.731638\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 19.984476\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 28.439518\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.285342\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 23.42992\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.436119\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5434.116374\n" +2026-10-29T21:05:49.6349969Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T21:05:49.6350389Z with: +2026-10-29T21:05:49.6350555Z name: cbz-node-result +2026-10-29T21:05:49.6350778Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T21:05:49.6351037Z if-no-files-found: error +2026-10-29T21:05:49.6351240Z compression-level: 6 +2026-10-29T21:05:49.6351423Z overwrite: false +2026-10-29T21:05:49.6351621Z include-hidden-files: false +2026-10-29T21:05:49.6351828Z archive: true +2026-10-29T21:05:49.6351989Z env: +2026-10-29T21:05:49.6352205Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.6352607Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:05:49.6352998Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.6353350Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.6353741Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:05:49.6354105Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:05:49.6354399Z ##[endgroup] +2026-10-29T21:05:49.7762850Z With the provided path, there will be 41 files uploaded +2026-10-29T21:05:49.7766991Z Artifact name is valid! +2026-10-29T21:05:49.7767612Z Root directory input is valid! +2026-10-29T21:05:50.0268265Z Uploading artifact: cbz-node-result.zip +2026-10-29T21:05:50.0299274Z Beginning upload of artifact content to blob storage +2026-10-29T21:05:50.3766721Z Uploaded bytes 504907 +2026-10-29T21:05:50.4154130Z Finished uploading artifact content to blob storage! +2026-10-29T21:05:50.4155020Z SHA256 digest of uploaded artifact is cc9c97e2d0326d5226be953ddc0bdbbd69e8a11d4b91b3bc90aef93c79d7fa75 +2026-10-29T21:05:50.4155552Z Finalizing artifact upload +2026-10-29T21:05:50.8920840Z Artifact cbz-node-result successfully finalized. Artifact ID 12933401209 +2026-10-29T21:05:50.8921510Z Artifact cbz-node-result has been successfully uploaded! Final size is 504907 bytes. Artifact ID is 12933401209 +2026-10-29T21:05:50.8925275Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40953580427/artifacts/12933401209 +2026-10-29T21:05:50.9100125Z Post job cleanup. +2026-10-29T21:05:51.0197792Z Post job cleanup. +2026-10-29T21:05:51.0921456Z [command]/usr/bin/git version +2026-10-29T21:05:51.0961629Z git version 2.56.0 +2026-10-29T21:05:51.0992916Z Temporarily overriding HOME='/home/runner/work/_temp/d89199a7-5f93-427b-b2b8-e7882e12a95a' before making global git config changes +2026-10-29T21:05:51.0994062Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T21:05:51.0997522Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T21:05:51.1032649Z Removing SSH command configuration +2026-10-29T21:05:51.1038815Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T21:05:51.1072338Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T21:05:51.1286297Z Removing HTTP extra header +2026-10-29T21:05:51.1291827Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T21:05:51.1327529Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T21:05:51.1547956Z Removing includeIf entries pointing to credentials config files +2026-10-29T21:05:51.1554158Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T21:05:51.1591302Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T21:05:51.1940390Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/green/8aa-node.tap b/cbz/evidence/cold-start-node/green/8aa-node.tap new file mode 100644 index 000000000..2327ca95a --- /dev/null +++ b/cbz/evidence/cold-start-node/green/8aa-node.tap @@ -0,0 +1,4596 @@ +TAP version 13 +# Subtest: tests/fixtures/museum_fixture.mjs +ok 1 - tests/fixtures/museum_fixture.mjs + --- + duration_ms: 45.747156 + type: 'test' + ... +# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats +ok 2 - only the current query is announced after 500ms of quiet, even if its count repeats + --- + duration_ms: 13.539063 + type: 'test' + ... +# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results +ok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results + --- + duration_ms: 0.766244 + type: 'test' + ... +# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion +ok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion + --- + duration_ms: 8.24854 + type: 'test' + ... +# Subtest: Source-identical documents at another recorded revision retain their actual current pin +ok 5 - Source-identical documents at another recorded revision retain their actual current pin + --- + duration_ms: 1.049688 + type: 'test' + ... +# Subtest: changed scope leaves the mapping unavailable +ok 6 - changed scope leaves the mapping unavailable + --- + duration_ms: 0.584343 + type: 'test' + ... +# Subtest: extra graph field leaves the mapping unavailable +ok 7 - extra graph field leaves the mapping unavailable + --- + duration_ms: 0.546495 + type: 'test' + ... +# Subtest: changed source blob leaves the mapping unavailable +ok 8 - changed source blob leaves the mapping unavailable + --- + duration_ms: 1.164669 + type: 'test' + ... +# Subtest: changed source size leaves the mapping unavailable +ok 9 - changed source size leaves the mapping unavailable + --- + duration_ms: 0.536415 + type: 'test' + ... +# Subtest: changed fingerprint leaves the mapping unavailable +ok 10 - changed fingerprint leaves the mapping unavailable + --- + duration_ms: 0.667797 + type: 'test' + ... +# Subtest: missing source leaves the mapping unavailable +ok 11 - missing source leaves the mapping unavailable + --- + duration_ms: 0.515072 + type: 'test' + ... +# Subtest: changed formal manifest leaves the mapping unavailable +ok 12 - changed formal manifest leaves the mapping unavailable + --- + duration_ms: 1.096439 + type: 'test' + ... +# Subtest: An equal-looking different node ID is never inferred to be covered +ok 13 - An equal-looking different node ID is never inferred to be covered + --- + duration_ms: 0.837803 + type: 'test' + ... +# Subtest: Other actual claims keep missing mappings explicit +ok 14 - Other actual claims keep missing mappings explicit + --- + duration_ms: 0.536967 + type: 'test' + ... +# Subtest: The actual older committed observation has a different manifest and remains unmapped +ok 15 - The actual older committed observation has a different manifest and remains unmapped + --- + duration_ms: 4.081711 + type: 'test' + ... +# Subtest: An execution for another revision cannot attach to the artifact +ok 16 - An execution for another revision cannot attach to the artifact + --- + duration_ms: 0.729356 + type: 'test' + ... +# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record +ok 17 - A fabricated accepted alignment cannot replace the pinned adverse record + --- + duration_ms: 0.617742 + type: 'test' + ... +# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review +ok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review + --- + duration_ms: 3.037127 + type: 'test' + ... +# Subtest: an unknown manifest cannot use the explicit bridge +ok 19 - an unknown manifest cannot use the explicit bridge + --- + duration_ms: 1.026248 + type: 'test' + ... +# Subtest: a wrong manifest size cannot use the explicit bridge +ok 20 - a wrong manifest size cannot use the explicit bridge + --- + duration_ms: 0.592542 + type: 'test' + ... +# Subtest: duplicate formal inventory cannot use the explicit bridge +ok 21 - duplicate formal inventory cannot use the explicit bridge + --- + duration_ms: 0.59947 + type: 'test' + ... +# Subtest: changed claim scope cannot use the explicit bridge +ok 22 - changed claim scope cannot use the explicit bridge + --- + duration_ms: 1.2447 + type: 'test' + ... +# Subtest: an extra claim coverage field cannot use the explicit bridge +ok 23 - an extra claim coverage field cannot use the explicit bridge + --- + duration_ms: 0.593374 + type: 'test' + ... +# Subtest: another declaration cannot replace the pinned evidence +ok 24 - another declaration cannot replace the pinned evidence + --- + duration_ms: 0.792051 + type: 'test' + ... +# Subtest: a forged receipt with the same commit cannot replace the pinned evidence +ok 25 - a forged receipt with the same commit cannot replace the pinned evidence + --- + duration_ms: 0.574055 + type: 'test' + ... +# Subtest: a fabricated accepted review cannot replace the pinned evidence +ok 26 - a fabricated accepted review cannot replace the pinned evidence + --- + duration_ms: 1.09227 + type: 'test' + ... +# Subtest: An equally named different claim and prototype key remain unmapped +ok 27 - An equally named different claim and prototype key remain unmapped + --- + duration_ms: 0.839498 + type: 'test' + ... +# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment +ok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment + --- + duration_ms: 0.886889 + type: 'test' + ... +# Subtest: original refuses identical duplicate proof-source entries +ok 29 - original refuses identical duplicate proof-source entries + --- + duration_ms: 1.336882 + type: 'test' + ... +# Subtest: original refuses conflicting duplicate proof-source entries +ok 30 - original refuses conflicting duplicate proof-source entries + --- + duration_ms: 0.9974 + type: 'test' + ... +# Subtest: 8228 refuses identical duplicate proof-source entries +ok 31 - 8228 refuses identical duplicate proof-source entries + --- + duration_ms: 1.213316 + type: 'test' + ... +# Subtest: 8228 refuses conflicting duplicate proof-source entries +ok 32 - 8228 refuses conflicting duplicate proof-source entries + --- + duration_ms: 0.843546 + type: 'test' + ... +# Subtest: a22f refuses identical duplicate proof-source entries +ok 33 - a22f refuses identical duplicate proof-source entries + --- + duration_ms: 0.836355 + type: 'test' + ... +# Subtest: a22f refuses conflicting duplicate proof-source entries +ok 34 - a22f refuses conflicting duplicate proof-source entries + --- + duration_ms: 5.263268 + type: 'test' + ... +# Subtest: Atlas begins with its task and working search before the source inventory +ok 35 - Atlas begins with its task and working search before the source inventory + --- + duration_ms: 1.859107 + type: 'test' + ... +# Subtest: The selector is the sole view switch while controller compatibility stays present +ok 36 - The selector is the sole view switch while controller compatibility stays present + --- + duration_ms: 0.324666 + type: 'test' + ... +# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope +ok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope + --- + duration_ms: 0.329546 + type: 'test' + ... +# Subtest: Neighborhood coverage stays available without delaying the useful graph or list +ok 38 - Neighborhood coverage stays available without delaying the useful graph or list + --- + duration_ms: 0.312555 + type: 'test' + ... +# Subtest: The historical viewer is explicitly archived with preserved entry fragments +ok 39 - The historical viewer is explicitly archived with preserved entry fragments + --- + duration_ms: 0.372338 + type: 'test' + ... +# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark +ok 40 - A closed historical archive cannot conceal a failed source or refused bookmark + --- + duration_ms: 0.181238 + type: 'test' + ... +# Subtest: Sharing the selected source snapshot remains a visible reading action +ok 41 - Sharing the selected source snapshot remains a visible reading action + --- + duration_ms: 0.121414 + type: 'test' + ... +# Subtest: Atlas layout loads after current styles without replacing the shared brand +ok 42 - Atlas layout loads after current styles without replacing the shared brand + --- + duration_ms: 0.181325 + type: 'test' + ... +# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction +ok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction + --- + duration_ms: 1.355586 + type: 'test' + ... +# Subtest: an admitted isolated node has two explicit empty groups +ok 44 - an admitted isolated node has two explicit empty groups + --- + duration_ms: 0.314219 + type: 'test' + ... +# Subtest: missing and prototype names cannot acquire inferred connections +ok 45 - missing and prototype names cannot acquire inferred connections + --- + duration_ms: 0.15555 + type: 'test' + ... +# Subtest: late optional data patches the currently selected node rather than its request-time selection +ok 46 - late optional data patches the currently selected node rather than its request-time selection + --- + duration_ms: 1.909521 + type: 'test' + ... +# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort +ok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort + --- + duration_ms: 0.764092 + type: 'test' + ... +# Subtest: focused operational evidence is retained until focus leaves its section +ok 48 - focused operational evidence is retained until focus leaves its section + --- + duration_ms: 0.976112 + type: 'test' + ... +# Subtest: a refused or no-longer-known selection receives no late substituted resume +ok 49 - a refused or no-longer-known selection receives no late substituted resume + --- + duration_ms: 1.178357 + type: 'test' + ... +# Subtest: pagehide aborts the request and suppresses an uncooperative late response +ok 50 - pagehide aborts the request and suppresses an uncooperative late response + --- + duration_ms: 0.882578 + type: 'test' + ... +# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback +ok 51 - a persisted pageshow acquires current optional records once and preserves null fallback + --- + duration_ms: 1.732948 + type: 'test' + ... +# Subtest: missing cancellation platform does not prevent primary reading or late status coordination +ok 52 - missing cancellation platform does not prevent primary reading or late status coordination + --- + duration_ms: 1.792139 + type: 'test' + ... +# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence +ok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence + --- + duration_ms: 1.738364 + type: 'test' + ... +# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies +ok 54 - dependency focus retains only selected dependent and its recorded direct dependencies + --- + duration_ms: 0.49184 + type: 'test' + ... +# Subtest: empty/filtered selection and ceiling never invent source nodes +ok 55 - empty/filtered selection and ceiling never invent source nodes + --- + duration_ms: 1.681397 + type: 'test' + ... +# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap +ok 56 - actual wrapped label sizes stay inside the viewport and do not overlap + --- + duration_ms: 1.325498 + type: 'test' + ... +# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers +ok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers + --- + duration_ms: 0.352523 + type: 'test' + ... +# Subtest: labels leave a distinct unselected node clear for actual canvas picking +ok 58 - labels leave a distinct unselected node clear for actual canvas picking + --- + duration_ms: 1.289084 + type: 'test' + ... +# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged +ok 59 - camera-depth order and identifier ties are deterministic and inputs remain unchanged + --- + duration_ms: 1.029383 + type: 'test' + ... +# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles +ok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles + --- + duration_ms: 0.403658 + type: 'test' + ... +# Subtest: edge anchors retain an in-bounds readable label when space permits +ok 61 - edge anchors retain an in-bounds readable label when space permits + --- + duration_ms: 0.230669 + type: 'test' + ... +# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits +ok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits + --- + duration_ms: 3.406273 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 63 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.451657 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 64 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 1.811835 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 65 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.298643 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 66 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 3.785955 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 67 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.587614 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 68 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.606214 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 69 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.995408 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.690717 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 71 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.178285 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 72 - navigation and grids can reflow on small screens + --- + duration_ms: 0.934705 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 73 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.127886 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 74 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.132094 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 9.562279 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 8.0044 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 77 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 517.62945 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 78 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 120.762003 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 79 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 51.915977 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 80 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 46.461936 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 81 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 24.605542 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 82 - encoded punctuation stays inert search text + --- + duration_ms: 29.74282 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 83 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 29.175629 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 84 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 5.856002 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 85 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 24.192973 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 86 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 22.739235 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 24.03172 + type: 'test' + ... +# Subtest: verified category counts expose content and references directly without changing the source selection +ok 88 - verified category counts expose content and references directly without changing the source selection + --- + duration_ms: 19.66031 + type: 'test' + ... +# Subtest: changing categories resets both pagers and retains native selector focus +ok 89 - changing categories resets both pagers and retains native selector focus + --- + duration_ms: 7.869554 + type: 'test' + ... +# Subtest: All preserves ordered overlapping categories and complete edge multiplicity +ok 90 - All preserves ordered overlapping categories and complete edge multiplicity + --- + duration_ms: 10.676013 + type: 'test' + ... +# Subtest: an empty category reports zero results with both pagers hidden +ok 91 - an empty category reports zero results with both pagers hidden + --- + duration_ms: 5.189949 + type: 'test' + ... +# Subtest: selection changes clear category state and ignore an older in-flight comparison +ok 92 - selection changes clear category state and ignore an older in-flight comparison + --- + duration_ms: 7.093318 + type: 'test' + ... +# Subtest: payload refusal and malformed history discard category results and announcements +ok 93 - payload refusal and malformed history discard category results and announcements + --- + duration_ms: 8.981016 + type: 'test' + ... +# Subtest: Compare source panel demand loader exists +ok 94 - Compare source panel demand loader exists + --- + duration_ms: 0.945393 + type: 'test' + ... +# Subtest: An explicit current-source query requests even the empty source search +ok 95 - An explicit current-source query requests even the empty source search + --- + duration_ms: 1.512727 + type: 'test' + ... +# Subtest: Only a target in the actual source panel requests its verifier +ok 96 - Only a target in the actual source panel requests its verifier + --- + duration_ms: 0.743532 + type: 'test' + ... +# Subtest: Both pagers use distinct identities and ordinary, non-live count spans +ok 97 - Both pagers use distinct identities and ordinary, non-live count spans + --- + duration_ms: 7.630142 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 12.671045 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 99 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 1.616814 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 100 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 1.317211 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 101 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 1.374922 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 102 - acquisition: identical inventory duplicate + --- + duration_ms: 1.272124 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 103 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.758516 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 104 - acquisition: graph blob conflict + --- + duration_ms: 0.844339 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 105 - acquisition: graph bytes conflict + --- + duration_ms: 1.66503 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 106 - acquisition: graph missing exact inventory + --- + duration_ms: 2.652445 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 107 - acquisition: graph incorrect pin + --- + duration_ms: 1.21138 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 108 - acquisition: reference blob conflict + --- + duration_ms: 2.605431 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 109 - acquisition: reference bytes conflict + --- + duration_ms: 0.63155 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 110 - acquisition: reference missing exact inventory + --- + duration_ms: 0.551192 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 111 - acquisition: reference incorrect pin + --- + duration_ms: 0.564023 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 112 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.585374 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 113 - acquisition: graph reference overlap + --- + duration_ms: 0.953664 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 114 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.621598 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 115 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.558831 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 116 - acquisition: excerpt duplicate id + --- + duration_ms: 0.636021 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 117 - acquisition: excerpt duplicate span + --- + duration_ms: 1.728276 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 118 - acquisition: excerpt digest mismatch + --- + duration_ms: 1.547247 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 119 - acquisition: excerpt lone surrogate + --- + duration_ms: 1.408906 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 120 - acquisition: excerpt boolean line + --- + duration_ms: 0.482104 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 121 - acquisition: excerpt empty id + --- + duration_ms: 0.514551 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 122 - acquisition: excerpt invalid range + --- + duration_ms: 0.4676 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 123 - acquisition: excerpt unsafe path + --- + duration_ms: 0.428921 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 124 - acquisition: malformed references collection + --- + duration_ms: 0.564815 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 125 - acquisition: malformed equations collection + --- + duration_ms: 0.142518 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 126 - acquisition: malformed sources collection + --- + duration_ms: 0.783484 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 127 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.529304 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 128 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 3.806691 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 129 - acquisition: graph points at Main + --- + duration_ms: 0.712364 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 130 - acquisition: invalid inventory repository + --- + duration_ms: 0.684245 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 131 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 1.106623 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 132 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 1.085055 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 133 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 1.044391 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 134 - acquisition: unsafe encoded inventory path + --- + duration_ms: 1.734692 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 135 - acquisition: lone surrogate inventory path + --- + duration_ms: 1.028215 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 136 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.894946 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 137 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.997832 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.487352 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 139 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 1.490168 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 140 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 1.670638 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 141 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.888578 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 142 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.554343 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 143 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 9.102086 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 144 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 2.049103 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 145 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 1.78778 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 1.562551 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 147 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.469448 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 148 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.365499 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 149 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 3.564919 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 150 - fallback HTTP refusal remains unavailable + --- + duration_ms: 0.9876 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 151 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.929065 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 152 - aborted acquisition makes no recovery request + --- + duration_ms: 0.831739 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 153 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.587006 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 154 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 11.284531 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 155 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 1.873698 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 156 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 11.878721 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 2.545648 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 158 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.529607 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 159 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.37661 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 160 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 5.981776 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 161 - fallback HTTP refusal remains unavailable + --- + duration_ms: 0.989064 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 162 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.790051 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 163 - aborted acquisition makes no recovery request + --- + duration_ms: 0.830619 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 164 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.600918 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 165 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 0.727549 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.319171 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.225428 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 168 - missing fields stay explicitly not recorded + --- + duration_ms: 0.499504 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 169 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.521176 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 170 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.150365 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 171 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.264964 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 172 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.175181 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 173 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 0.583039 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 174 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 138.370481 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 175 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 0.360026 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.375458 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 1.303939 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.587567 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.422521 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 180 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.328691 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 181 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.268476 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 182 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 0.776259 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 183 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.561335 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 184 - modified browse clicks retain native open-link behavior + --- + duration_ms: 0.406154 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 185 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.386306 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 186 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.233604 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 187 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.331818 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 188 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.267316 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 189 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.5134 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 190 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.37557 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 191 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.48564 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.363186 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 193 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 0.656621 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 8.394258 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 195 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 1.165838 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 196 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 0.75634 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 197 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 1.016455 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 198 - acquisition: identical inventory duplicate + --- + duration_ms: 0.631054 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 199 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.638422 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 200 - acquisition: graph blob conflict + --- + duration_ms: 0.54212 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 201 - acquisition: graph bytes conflict + --- + duration_ms: 0.482209 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 202 - acquisition: graph missing exact inventory + --- + duration_ms: 0.666549 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 203 - acquisition: graph incorrect pin + --- + duration_ms: 0.539383 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 204 - acquisition: reference blob conflict + --- + duration_ms: 0.528175 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 205 - acquisition: reference bytes conflict + --- + duration_ms: 0.538911 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 206 - acquisition: reference missing exact inventory + --- + duration_ms: 0.510951 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 207 - acquisition: reference incorrect pin + --- + duration_ms: 0.506416 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 208 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.51128 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 209 - acquisition: graph reference overlap + --- + duration_ms: 0.555959 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 210 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.499408 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 211 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.468568 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 212 - acquisition: excerpt duplicate id + --- + duration_ms: 0.62443 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 213 - acquisition: excerpt duplicate span + --- + duration_ms: 0.60991 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 214 - acquisition: excerpt digest mismatch + --- + duration_ms: 0.604742 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 215 - acquisition: excerpt lone surrogate + --- + duration_ms: 0.5158 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 216 - acquisition: excerpt boolean line + --- + duration_ms: 0.526455 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 217 - acquisition: excerpt empty id + --- + duration_ms: 0.49816 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 218 - acquisition: excerpt invalid range + --- + duration_ms: 0.640054 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 219 - acquisition: excerpt unsafe path + --- + duration_ms: 0.568007 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 220 - acquisition: malformed references collection + --- + duration_ms: 0.513791 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 221 - acquisition: malformed equations collection + --- + duration_ms: 0.157813 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 222 - acquisition: malformed sources collection + --- + duration_ms: 4.926265 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 223 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 1.867202 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 224 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 0.569871 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 225 - acquisition: graph points at Main + --- + duration_ms: 0.571135 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 226 - acquisition: invalid inventory repository + --- + duration_ms: 0.561575 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 227 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 1.920042 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 228 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.516816 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 229 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.4934 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 230 - acquisition: unsafe encoded inventory path + --- + duration_ms: 0.517608 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 231 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.53272 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 232 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.460937 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 233 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.52364 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.4966 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 235 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 0.769804 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 236 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 0.497096 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 237 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.548007 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 238 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.21006 + type: 'test' + ... +# Subtest: current snapshot rejects invalid identities and preserves literal source values +ok 239 - current snapshot rejects invalid identities and preserves literal source values + --- + duration_ms: 0.710228 + type: 'test' + ... +# Subtest: freshness separates future, stale and current observations +ok 240 - freshness separates future, stale and current observations + --- + duration_ms: 0.081263 + type: 'test' + ... +# Subtest: source links bind safe paths to pinned commits and reject executable targets +ok 241 - source links bind safe paths to pinned commits and reject executable targets + --- + duration_ms: 0.163158 + type: 'test' + ... +# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling +ok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling + --- + duration_ms: 0.416721 + type: 'test' + ... +# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval +ok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval + --- + duration_ms: 0.218996 + type: 'test' + ... +# Subtest: search and independent URL state preserve exact identifiers and reject unknown node +ok 244 - search and independent URL state preserve exact identifiers and reject unknown node + --- + duration_ms: 0.359562 + type: 'test' + ... +# Subtest: hash mismatch and malformed payload refuse current rendering +ok 245 - hash mismatch and malformed payload refuse current rendering + --- + duration_ms: 2.664333 + type: 'test' + ... +# Subtest: global graph search finds unloaded nodes and bounds large catalogs +ok 246 - global graph search finds unloaded nodes and bounds large catalogs + --- + duration_ms: 1.727773 + type: 'test' + ... +# Subtest: equation and graph share bookmarks refuse changed main source instead of substituting +ok 247 - equation and graph share bookmarks refuse changed main source instead of substituting + --- + duration_ms: 0.157926 + type: 'test' + ... +# Subtest: graph search filter survives source-bound URL state +ok 248 - graph search filter survives source-bound URL state + --- + duration_ms: 0.116462 + type: 'test' + ... +# Subtest: prototype property names cannot become fabricated graph nodes +ok 249 - prototype property names cannot become fabricated graph nodes + --- + duration_ms: 0.510792 + type: 'test' + ... +# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root +ok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root + --- + duration_ms: 115.1883 + type: 'test' + ... +# Subtest: current required routes return one shortest route per unresolved research target +ok 251 - current required routes return one shortest route per unresolved research target + --- + duration_ms: 0.527432 + type: 'test' + ... +# Subtest: context-only unresolved targets affect all-edge reach but earn no required route +ok 252 - context-only unresolved targets affect all-edge reach but earn no required route + --- + duration_ms: 0.169293 + type: 'test' + ... +# Subtest: context shortcuts do not erase longer required routes and parallel edges count once +ok 253 - context shortcuts do not erase longer required routes and parallel edges count once + --- + duration_ms: 0.267579 + type: 'test' + ... +# Subtest: unresolved target kinds and classifications match the existing source vocabulary +ok 254 - unresolved target kinds and classifications match the existing source vocabulary + --- + duration_ms: 0.308155 + type: 'test' + ... +# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions +ok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions + --- + duration_ms: 4.454176 + type: 'test' + ... +# Subtest: full reach and required routes do not depend on filtered or capped viewport +ok 256 - full reach and required routes do not depend on filtered or capped viewport + --- + duration_ms: 0.858778 + type: 'test' + ... +# Subtest: bounded graph windows expose complete match and frontier counts with paging +ok 257 - bounded graph windows expose complete match and frontier counts with paging + --- + duration_ms: 3.931705 + type: 'test' + ... +# Subtest: graph filters apply to complete matches without altering raw node labels or edges +ok 258 - graph filters apply to complete matches without altering raw node labels or edges + --- + duration_ms: 0.350403 + type: 'test' + ... +# Subtest: equation text filtering retains inert literal content and bounded complete counts +ok 259 - equation text filtering retains inert literal content and bounded complete counts + --- + duration_ms: 0.886906 + type: 'test' + ... +# Subtest: atlas offset equation search and exact metadata filters survive URL state +ok 260 - atlas offset equation search and exact metadata filters survive URL state + --- + duration_ms: 0.697124 + type: 'test' + ... +# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage +ok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage + --- + duration_ms: 24.248284 + type: 'test' + ... +# Subtest: claim summary puts exact scope and pinned source before continuation metadata +ok 262 - claim summary puts exact scope and pinned source before continuation metadata + --- + duration_ms: 10.490224 + type: 'test' + ... +# Subtest: controller owns an explicit formal gap even without the spatial rendering platform +ok 263 - controller owns an explicit formal gap even without the spatial rendering platform + --- + duration_ms: 7.641326 + type: 'test' + ... +# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection +ok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection + --- + duration_ms: 13.089711 + type: 'test' + ... +# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses +ok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses + --- + duration_ms: 20.922217 + type: 'test' + ... +# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence +ok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence + --- + duration_ms: 58.696108 + type: 'test' + ... +# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints +ok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints + --- + duration_ms: 21.289643 + type: 'test' + ... +# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back +ok 268 - atlas filter bookmarks persist through search, node selection, reload and Back + --- + duration_ms: 16.995271 + type: 'test' + ... +# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters +ok 269 - atlas refuses mismatched source bookmarks before applying metadata filters + --- + duration_ms: 2.354858 + type: 'test' + ... +# Subtest: node identifiers and recorded source paths require own literal string fields +ok 270 - node identifiers and recorded source paths require own literal string fields + --- + duration_ms: 0.220597 + type: 'test' + ... +# Subtest: static reading links retain one advertised material archive among source links +ok 271 - static reading links retain one advertised material archive among source links + --- + duration_ms: 0.513056 + type: 'test' + ... +# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses +ok 272 - static reading links refuse missing ambiguous and unsafe archive addresses + --- + duration_ms: 0.459872 + type: 'test' + ... +# Subtest: refused source identity survives view changes Share reload and history +ok 273 - refused source identity survives view changes Share reload and history + --- + duration_ms: 53.943792 + type: 'test' + ... +# Subtest: initial Share and every non-adopting control preserve a refused identity +ok 274 - initial Share and every non-adopting control preserve a refused identity + --- + duration_ms: 3.330435 + type: 'test' + ... +# Subtest: explicit current diagnostic selection alone may adopt current source pins +ok 275 - explicit current diagnostic selection alone may adopt current source pins + --- + duration_ms: 5.414946 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 276 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 2.078839 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.466456 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.257868 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 279 - missing fields stay explicitly not recorded + --- + duration_ms: 0.469313 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 280 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.720373 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 281 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.187589 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 282 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.44868 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 283 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.182205 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 284 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 1.008128 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 285 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 145.373225 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 286 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 1.160325 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.370114 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 1.962897 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.579047 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.557463 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 291 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.331995 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 292 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.449521 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 293 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 1.833003 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 294 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.737372 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 295 - modified browse clicks retain native open-link behavior + --- + duration_ms: 0.989048 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 296 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.420034 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 297 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.226789 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 298 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.312883 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 299 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.25586 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 300 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.435034 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 301 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.293379 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 302 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.45848 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.336019 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 304 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 1.210453 + type: 'test' + ... +# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning +ok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning + --- + duration_ms: 32.739204 + type: 'test' + ... +# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer +ok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer + --- + duration_ms: 6.822914 + type: 'test' + ... +# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure +ok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure + --- + duration_ms: 4.175381 + type: 'test' + ... +# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused +ok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused + --- + duration_ms: 0.576639 + type: 'test' + ... +# Subtest: citation keeps only the canonical figure permalink and pinned teaching source +ok 309 - citation keeps only the canonical figure permalink and pinned teaching source + --- + duration_ms: 0.470809 + type: 'test' + ... +# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer +ok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer + --- + duration_ms: 1.380034 + type: 'test' + ... +# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes +ok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes + --- + duration_ms: 2.554527 + type: 'test' + ... +# Subtest: light theme colors are exported from the captured record +ok 312 - light theme colors are exported from the captured record + --- + duration_ms: 0.786652 + type: 'test' + ... +# Subtest: inherited native system font stacks remain self-contained without remote font syntax +ok 313 - inherited native system font stacks remain self-contained without remote font syntax + --- + duration_ms: 1.097734 + type: 'test' + ... +# Subtest: all diagram text and attribute values are XML escaped +ok 314 - all diagram text and attribute values are XML escaped + --- + duration_ms: 1.234948 + type: 'test' + ... +# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind +ok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind + --- + duration_ms: 2.66231 + type: 'test' + ... +# Subtest: blank, stale or unsupported diagram content is refused instead of exported +ok 316 - blank, stale or unsupported diagram content is refused instead of exported + --- + duration_ms: 2.801068 + type: 'test' + ... +# Subtest: clipboard absence exposes manual citation and never permits copy +ok 317 - clipboard absence exposes manual citation and never permits copy + --- + duration_ms: 0.396802 + type: 'test' + ... +# Subtest: clipboard denial preserves the current manual text and reports failure +ok 318 - clipboard denial preserves the current manual text and reports failure + --- + duration_ms: 0.302427 + type: 'test' + ... +# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied +ok 319 - pending clipboard writes are serialized and cannot report stale settings as copied + --- + duration_ms: 0.278675 + type: 'test' + ... +# Subtest: capture refusal clears the current citation text and blocks a later copy +ok 320 - capture refusal clears the current citation text and blocks a later copy + --- + duration_ms: 0.245988 + type: 'test' + ... +# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback +ok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback + --- + duration_ms: 0.458296 + type: 'test' + ... +# Subtest: a successful current write reports success, while unavailable figures block later writes +ok 322 - a successful current write reports success, while unavailable figures block later writes + --- + duration_ms: 0.222141 + type: 'test' + ... +# Subtest: evidence shows recorded links without promoting missing review or formal evidence +ok 323 - evidence shows recorded links without promoting missing review or formal evidence + --- + duration_ms: 2.452697 + type: 'test' + ... +# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification +ok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification + --- + duration_ms: 0.485945 + type: 'test' + ... +# Subtest: all-records and exact classification filters intersect text without relabeling nodes +ok 325 - all-records and exact classification filters intersect text without relabeling nodes + --- + duration_ms: 29.273395 + type: 'test' + ... +# Subtest: saved filters restore exact state and visibly reject unknown classifications +ok 326 - saved filters restore exact state and visibly reject unknown classifications + --- + duration_ms: 2.12099 + type: 'test' + ... +# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references +ok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references + --- + duration_ms: 2.564455 + type: 'test' + ... +# Subtest: absent context is visibly not recorded and is never inferred from dependencies +ok 328 - absent context is visibly not recorded and is never inferred from dependencies + --- + duration_ms: 2.732924 + type: 'test' + ... +# Subtest: unresolved and unsafe context references stay literal without executable destinations +ok 329 - unresolved and unsafe context references stay literal without executable destinations + --- + duration_ms: 1.534623 + type: 'test' + ... +# Subtest: malformed context preserves complete recorded values instead of inventing references +ok 330 - malformed context preserves complete recorded values instead of inventing references + --- + duration_ms: 2.2831 + type: 'test' + ... +# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search +ok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search + --- + duration_ms: 5.295555 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay +ok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay + --- + duration_ms: 47.514551 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay +ok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay + --- + duration_ms: 163.665636 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay +ok 334 - dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay + --- + duration_ms: 16.022615 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay +ok 335 - dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay + --- + duration_ms: 162.551534 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay +ok 336 - dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay + --- + duration_ms: 22.929185 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay +ok 337 - dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay + --- + duration_ms: 164.16278 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay +ok 338 - dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay + --- + duration_ms: 11.613294 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay +ok 339 - dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay + --- + duration_ms: 165.671054 + type: 'test' + ... +# Subtest: the pinned graph is complete and structurally valid +ok 340 - the pinned graph is complete and structurally valid + --- + duration_ms: 1.750989 + type: 'test' + ... +# Subtest: unresolved targets include open leaves with no recorded dependents +ok 341 - unresolved targets include open leaves with no recorded dependents + --- + duration_ms: 1.266021 + type: 'test' + ... +# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves +ok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves + --- + duration_ms: 1.166889 + type: 'test' + ... +# Subtest: downstream counts keep all-edge reach separate from required-only reach +ok 343 - downstream counts keep all-edge reach separate from required-only reach + --- + duration_ms: 0.681345 + type: 'test' + ... +# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts +ok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts + --- + duration_ms: 1.767068 + type: 'test' + ... +# Subtest: reach labels state their edge scope and do not describe reach as blocking +ok 345 - reach labels state their edge scope and do not describe reach as blocking + --- + duration_ms: 1.058796 + type: 'test' + ... +# Subtest: search covers ids, notes, source paths, classifications and edge relations +ok 346 - search covers ids, notes, source paths, classifications and edge relations + --- + duration_ms: 1.737421 + type: 'test' + ... +# Subtest: the app verifies graph bytes against a compiled source identity before parsing +ok 347 - the app verifies graph bytes against a compiled source identity before parsing + --- + duration_ms: 6.938222 + type: 'test' + ... +# Subtest: classification styling and metadata preserve source review lineage +ok 348 - classification styling and metadata preserve source review lineage + --- + duration_ms: 2.147128 + type: 'test' + ... +# Subtest: classification CSS identifiers use locale-neutral ASCII case folding +ok 349 - classification CSS identifiers use locale-neutral ASCII case folding + --- + duration_ms: 0.275447 + type: 'test' + ... +# Subtest: dependency paths use required source edges and retain relation metadata +ok 350 - dependency paths use required source edges and retain relation metadata + --- + duration_ms: 3.716475 + type: 'test' + ... +# Subtest: saved node links fail visibly instead of selecting an unrelated node +ok 351 - saved node links fail visibly instead of selecting an unrelated node + --- + duration_ms: 1.176816 + type: 'test' + ... +# Subtest: provenance pins the exact Math source bytes and labels the snapshot boundary +ok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary + --- + duration_ms: 0.661642 + type: 'test' + ... +# Subtest: the viewer page exposes its source boundary and accessible interaction contract +ok 353 - the viewer page exposes its source boundary and accessible interaction contract + --- + duration_ms: 1.421576 + type: 'test' + ... +# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail +ok 354 - the evidence table keeps automatic layout and breaks words only in Source detail + --- + duration_ms: 1.177201 + type: 'test' + ... +# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure +ok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure + --- + duration_ms: 1.162481 + type: 'test' + ... +# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists +ok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists + --- + duration_ms: 1.959422 + type: 'test' + ... +# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified +ok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified + --- + duration_ms: 2.406839 + type: 'test' + ... +# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph +ok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph + --- + duration_ms: 1.394457 + type: 'test' + ... +# Subtest: the unresolved-target sentence names exactly the viewer list rule +ok 359 - the unresolved-target sentence names exactly the viewer list rule + --- + duration_ms: 0.804652 + type: 'test' + ... +# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read +ok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read + --- + duration_ms: 6.806594 + type: 'test' + ... +# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries +ok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries + --- + duration_ms: 1.472353 + type: 'test' + ... +# Subtest: cone weight is determinant squared only on the negative-definite side +ok 362 - cone weight is determinant squared only on the negative-definite side + --- + duration_ms: 0.87661 + type: 'test' + ... +# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two +ok 363 - halving pin distance divides cubic gap by eight and annulus radii by two + --- + duration_ms: 0.520632 + type: 'test' + ... +# Subtest: remote membership uses fixed distance and an open height window +ok 364 - remote membership uses fixed distance and an open height window + --- + duration_ms: 0.274644 + type: 'test' + ... +# Subtest: all eight three-object subsets receive the correct capacity-one partition +ok 365 - all eight three-object subsets receive the correct capacity-one partition + --- + duration_ms: 0.475608 + type: 'test' + ... +# Subtest: models reject invalid or unrepresentable teaching parameters +ok 366 - models reject invalid or unrepresentable teaching parameters + --- + duration_ms: 0.764219 + type: 'test' + ... +# Subtest: shared parameters restore all three experiments, including empty selection +ok 367 - shared parameters restore all three experiments, including empty selection + --- + duration_ms: 1.899281 + type: 'test' + ... +# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion +ok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion + --- + duration_ms: 0.303499 + type: 'test' + ... +# Subtest: invalid choices cannot invent regions or objects +ok 369 - invalid choices cannot invent regions or objects + --- + duration_ms: 0.599879 + type: 'test' + ... +# Subtest: sharing serializes current controls and preserves section and unrelated query fields +ok 370 - sharing serializes current controls and preserves section and unrelated query fields + --- + duration_ms: 0.899393 + type: 'test' + ... +# Subtest: curvature presets draw and commit the selected controls with matching share and export state +ok 371 - curvature presets draw and commit the selected controls with matching share and export state + --- + duration_ms: 1.498744 + type: 'test' + ... +# Subtest: unknown curvature presets leave controls and current figure untouched +ok 372 - unknown curvature presets leave controls and current figure untouched + --- + duration_ms: 0.202453 + type: 'test' + ... +# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks +ok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks + --- + duration_ms: 3.823818 + type: 'test' + ... +# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes +ok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes + --- + duration_ms: 2.005768 + type: 'test' + ... +# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata +ok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata + --- + duration_ms: 1.538815 + type: 'test' + ... +# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions +ok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions + --- + duration_ms: 2.317138 + type: 'test' + ... +# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture +ok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture + --- + duration_ms: 0.979824 + type: 'test' + ... +# Subtest: controller coalesces repeated activation while a preparation is pending +ok 378 - controller coalesces repeated activation while a preparation is pending + --- + duration_ms: 0.414922 + type: 'test' + ... +# Subtest: changed or tampered final SVG, metadata or citation refuses download +ok 379 - changed or tampered final SVG, metadata or citation refuses download + --- + duration_ms: 1.054439 + type: 'test' + ... +# Subtest: control revision cancels work even after a change away and back +ok 380 - control revision cancels work even after a change away and back + --- + duration_ms: 0.513991 + type: 'test' + ... +# Subtest: late failure from an invalidated operation cannot erase newer successful state +ok 381 - late failure from an invalidated operation cannot erase newer successful state + --- + duration_ms: 0.843786 + type: 'test' + ... +# Subtest: capture, preparation, null result and download errors stay explicit and allow retry +ok 382 - capture, preparation, null result and download errors stay explicit and allow retry + --- + duration_ms: 2.075879 + type: 'test' + ... +# Subtest: unready controller cannot prepare or download a figure +ok 383 - unready controller cannot prepare or download a figure + --- + duration_ms: 0.314763 + type: 'test' + ... +# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid +ok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid + --- + duration_ms: 0.487569 + type: 'test' + ... +# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage +ok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage + --- + duration_ms: 0.685741 + type: 'test' + ... +# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources +ok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources + --- + duration_ms: 1.789035 + type: 'test' + ... +# Subtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks +ok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks + --- + duration_ms: 7.908865 + type: 'test' + ... +# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives +ok 388 - existing and unknown collection bookmarks retain Files while explicit text survives + --- + duration_ms: 1.574119 + type: 'test' + ... +# Subtest: collection links preserve literal query and independent state without changing the target +ok 389 - collection links preserve literal query and independent state without changing the target + --- + duration_ms: 0.530832 + type: 'test' + ... +# Subtest: an excerpt link retains exact source commit, literal filename and complete line range +ok 390 - an excerpt link retains exact source commit, literal filename and complete line range + --- + duration_ms: 0.354826 + type: 'test' + ... +# Subtest: invalid or missing excerpt ranges cannot become invented source line identities +ok 391 - invalid or missing excerpt ranges cannot become invented source line identities + --- + duration_ms: 0.205949 + type: 'test' + ... +# Subtest: search links preserve literal text and unrelated page state +ok 392 - search links preserve literal text and unrelated page state + --- + duration_ms: 1.166525 + type: 'test' + ... +# Subtest: empty queries remove only the current-source parameter +ok 393 - empty queries remove only the current-source parameter + --- + duration_ms: 0.298955 + type: 'test' + ... +# Subtest: no initialization on another page or before snapshot admission +ok 394 - no initialization on another page or before snapshot admission + --- + duration_ms: 0.303803 + type: 'test' + ... +# Subtest: aggregate count uses area, all realizations, and bin width exactly once +ok 395 - aggregate count uses area, all realizations, and bin width exactly once + --- + duration_ms: 2.606822 + type: 'test' + ... +# Subtest: twice the count gives twice the mass and density +ok 396 - twice the count gives twice the mass and density + --- + duration_ms: 0.379378 + type: 'test' + ... +# Subtest: adding zero-count realizations still increases the denominator +ok 397 - adding zero-count realizations still increases the denominator + --- + duration_ms: 0.228949 + type: 'test' + ... +# Subtest: a wider synthetic bin preserves mass and divides density by its width +ok 398 - a wider synthetic bin preserves mass and divides density by its width + --- + duration_ms: 0.355947 + type: 'test' + ... +# Subtest: zero counts produce valid zero estimates without a fabricated positive floor +ok 399 - zero counts produce valid zero estimates without a fabricated positive floor + --- + duration_ms: 0.318675 + type: 'test' + ... +# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers +ok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers + --- + duration_ms: 0.798203 + type: 'test' + ... +# Subtest: only positive ordered finite bin edges are accepted +ok 401 - only positive ordered finite bin edges are accepted + --- + duration_ms: 0.520672 + type: 'test' + ... +# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density +ok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density + --- + duration_ms: 0.41313 + type: 'test' + ... +# Subtest: input parsing rejects blanks instead of turning them into zero counts +ok 403 - input parsing rejects blanks instead of turning them into zero counts + --- + duration_ms: 1.4734 + type: 'test' + ... +# Subtest: decimal input, including scientific notation, reaches the same normalization +ok 404 - decimal input, including scientific notation, reaches the same normalization + --- + duration_ms: 1.204581 + type: 'test' + ... +# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero +ok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero + --- + duration_ms: 1.215029 + type: 'test' + ... +# Subtest: six complete inputs feed exactly one conditional conclusion +ok 406 - six complete inputs feed exactly one conditional conclusion + --- + duration_ms: 9.395994 + type: 'test' + ... +# Subtest: the normalization and fixed lower comparison are retained +ok 407 - the normalization and fixed lower comparison are retained + --- + duration_ms: 1.097054 + type: 'test' + ... +# Subtest: measurability and almost-everywhere quantifiers are retained +ok 408 - measurability and almost-everywhere quantifiers are retained + --- + duration_ms: 0.991368 + type: 'test' + ... +# Subtest: positive and zero cases and the density non-implication remain explicit +ok 409 - positive and zero cases and the density non-implication remain explicit + --- + duration_ms: 0.920817 + type: 'test' + ... +# Subtest: changed source bytes are refused before projection +ok 410 - changed source bytes are refused before projection + --- + duration_ms: 2.36441 + type: 'test' + ... +# Subtest: integer and mutable commit identities are refused +ok 411 - integer and mutable commit identities are refused + --- + duration_ms: 0.423618 + type: 'test' + ... +# Subtest: a numeric hash cannot be coerced into a string +ok 412 - a numeric hash cannot be coerced into a string + --- + duration_ms: 0.363034 + type: 'test' + ... +# Subtest: private repository and changed proof paths are refused +ok 413 - private repository and changed proof paths are refused + --- + duration_ms: 0.397025 + type: 'test' + ... +# Subtest: redirected URL and changed blob or size are refused +ok 414 - redirected URL and changed blob or size are refused + --- + duration_ms: 0.865258 + type: 'test' + ... +# Subtest: deleting H3 cannot silently weaken the route +ok 415 - deleting H3 cannot silently weaken the route + --- + duration_ms: 2.837586 + type: 'test' + ... +# Subtest: ALL cannot become ANY +ok 416 - ALL cannot become ANY + --- + duration_ms: 1.105646 + type: 'test' + ... +# Subtest: self dependency or unknown nodes are refused +ok 417 - self dependency or unknown nodes are refused + --- + duration_ms: 2.165333 + type: 'test' + ... +# Subtest: invented acceptance and independence fields are refused +ok 418 - invented acceptance and independence fields are refused + --- + duration_ms: 4.338546 + type: 'test' + ... +# Subtest: rendering exposes hypotheses, exact identity, and application boundary +ok 419 - rendering exposes hypotheses, exact identity, and application boundary + --- + duration_ms: 1.336074 + type: 'test' + ... +# Subtest: a failed load clears any earlier ready view and says so in the status line +ok 420 - a failed load clears any earlier ready view and says so in the status line + --- + duration_ms: 0.440673 + type: 'test' + ... +# Subtest: a page without the status line still shows the refusal in the host, without a role +ok 421 - a page without the status line still shows the refusal in the host, without a role + --- + duration_ms: 0.400458 + type: 'test' + ... +# Subtest: the source fixture is complete and immutable +ok 422 - the source fixture is complete and immutable + --- + duration_ms: 1.31821 + type: 'test' + ... +# Subtest: museum HTML has the route host, navigation and module without replacing existing cards +ok 423 - museum HTML has the route host, navigation and module without replacing existing cards + --- + duration_ms: 1.321931 + type: 'test' + ... +# Subtest: CLI projects the exact source and produces deterministic JSON +ok 424 - CLI projects the exact source and produces deterministic JSON + --- + duration_ms: 66.619302 + type: 'test' + ... +# Subtest: CLI rejects altered manifest bytes +ok 425 - CLI rejects altered manifest bytes + --- + duration_ms: 31.671097 + type: 'test' + ... +# Subtest: CLI refuses missing or repeated conditional claim +ok 426 - CLI refuses missing or repeated conditional claim + --- + duration_ms: 62.459736 + type: 'test' + ... +# Subtest: CLI rejects weakened projection in check mode +ok 427 - CLI rejects weakened projection in check mode + --- + duration_ms: 135.525292 + type: 'test' + ... +# Subtest: CLI rejects nonlocal manifest and malformed hash types +ok 428 - CLI rejects nonlocal manifest and malformed hash types + --- + duration_ms: 99.247645 + type: 'test' + ... +# Subtest: CLI refuses missing input and unknown options +ok 429 - CLI refuses missing input and unknown options + --- + duration_ms: 74.982713 + type: 'test' + ... +# Subtest: CLI rejects source substitution +ok 430 - CLI rejects source substitution + --- + duration_ms: 34.423109 + type: 'test' + ... +# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture +ok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture + --- + duration_ms: 1.185495 + type: 'test' + ... +# Subtest: a fixture-only change was missed before and now runs the conditional suites +ok 432 - a fixture-only change was missed before and now runs the conditional suites + --- + duration_ms: 0.526199 + type: 'test' + ... +# Subtest: existing matching paths stay matched and unrelated paths stay excluded +ok 433 - existing matching paths stay matched and unrelated paths stay excluded + --- + duration_ms: 0.974815 + type: 'test' + ... +# Subtest: every local file the conditional suites and replay tool load triggers the workflow +ok 434 - every local file the conditional suites and replay tool load triggers the workflow + --- + duration_ms: 3.949899 + type: 'test' + ... +# Subtest: a verified startup renders the route from the selected claim proof bytes +ok 435 - a verified startup renders the route from the selected claim proof bytes + --- + duration_ms: 39.056351 + type: 'test' + ... +# Subtest: the museum page and the conditional route share one verified startup and byte cache +ok 436 - the museum page and the conditional route share one verified startup and byte cache + --- + duration_ms: 12.950338 + type: 'test' + ... +# Subtest: a rejected startup is not retained for a later caller +ok 437 - a rejected startup is not retained for a later caller + --- + duration_ms: 11.574025 + type: 'test' + ... +# Subtest: changed proof bytes clear an earlier view and infer nothing +ok 438 - changed proof bytes clear an earlier view and infer nothing + --- + duration_ms: 14.09254 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched +ok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched + --- + duration_ms: 4.662722 + type: 'test' + ... +# Subtest: a stale manifest stops before any pinned remote request +ok 440 - a stale manifest stops before any pinned remote request + --- + duration_ms: 1.457847 + type: 'test' + ... +# Subtest: a page without the route container is left untouched +ok 441 - a page without the route container is left untouched + --- + duration_ms: 0.680041 + type: 'test' + ... +# Subtest: a verified route: the outcome is written to the attached role="status" line after the host changes +ok 442 - a verified route: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 6.242421 + type: 'test' + ... +# Subtest: a verified route: nothing inserted into the route host carries a role or is live +ok 443 - a verified route: nothing inserted into the route host carries a role or is live + --- + duration_ms: 4.317214 + type: 'test' + ... +# Subtest: a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes +ok 444 - a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 1.582682 + type: 'test' + ... +# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live +ok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live + --- + duration_ms: 1.217903 + type: 'test' + ... +# Subtest: a stale manifest: the outcome is written to the attached role="status" line after the host changes +ok 446 - a stale manifest: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 7.078041 + type: 'test' + ... +# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live +ok 447 - a stale manifest: nothing inserted into the route host carries a role or is live + --- + duration_ms: 3.137262 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes +ok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 2.50098 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live +ok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.004701 + type: 'test' + ... +# Subtest: changed proof bytes: the outcome is written to the attached role="status" line after the host changes +ok 450 - changed proof bytes: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 2.605384 + type: 'test' + ... +# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live +ok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.636479 + type: 'test' + ... +# Subtest: an unavailable museum module: the outcome is written to the attached role="status" line after the host changes +ok 452 - an unavailable museum module: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.681489 + type: 'test' + ... +# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live +ok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.493207 + type: 'test' + ... +# Subtest: a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes +ok 454 - a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.790485 + type: 'test' + ... +# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live +ok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.476288 + type: 'test' + ... +# Subtest: museum.html has exactly one route status line: static, role="status", directly before an empty host +ok 456 - museum.html has exactly one route status line: static, role="status", directly before an empty host + --- + duration_ms: 0.305598 + type: 'test' + ... +# Subtest: on a first run the static Verifying… line receives no write while the route is verified +ok 457 - on a first run the static Verifying… line receives no write while the route is verified + --- + duration_ms: 10.885696 + type: 'test' + ... +# Subtest: an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it +ok 458 - an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it + --- + duration_ms: 1.142913 + type: 'test' + ... +# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host +ok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host + --- + duration_ms: 0.968799 + type: 'test' + ... +# Subtest: an older page without the status line draws only the route on success +ok 460 - an older page without the status line draws only the route on success + --- + duration_ms: 3.398061 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 2.345929 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.481559 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 4.615508 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 464 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.641896 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 465 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 8.93421 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 0.982015 + type: 'test' + ... +# Subtest: museum exposes source-bound rendering rather than silently omitting the page +ok 467 - museum exposes source-bound rendering rather than silently omitting the page + --- + duration_ms: 0.260583 + type: 'test' + ... +# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched +ok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched + --- + duration_ms: 46.645472 + type: 'test' + ... +# Subtest: museum wheel while verifying sources cancels delayed focus and scroll +ok 469 - museum wheel while verifying sources cancels delayed focus and scroll + --- + duration_ms: 11.565993 + type: 'test' + ... +# Subtest: museum keydown while verifying sources cancels delayed focus and scroll +ok 470 - museum keydown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 9.168194 + type: 'test' + ... +# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll +ok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 16.731378 + type: 'test' + ... +# Subtest: museum focusin while verifying sources cancels delayed focus and scroll +ok 472 - museum focusin while verifying sources cancels delayed focus and scroll + --- + duration_ms: 11.689213 + type: 'test' + ... +# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll +ok 473 - museum hashchange while verifying sources cancels delayed focus and scroll + --- + duration_ms: 5.14653 + type: 'test' + ... +# Subtest: museum popstate while verifying sources cancels delayed focus and scroll +ok 474 - museum popstate while verifying sources cancels delayed focus and scroll + --- + duration_ms: 10.329115 + type: 'test' + ... +# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll +ok 475 - museum pagehide while verifying sources cancels delayed focus and scroll + --- + duration_ms: 7.319688 + type: 'test' + ... +# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording +ok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording + --- + duration_ms: 0.967871 + type: 'test' + ... +# Subtest: source display cannot promote a counterexample or an AMEND row +ok 477 - source display cannot promote a counterexample or an AMEND row + --- + duration_ms: 0.895858 + type: 'test' + ... +# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope +ok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope + --- + duration_ms: 0.565885 + type: 'test' + ... +# Subtest: replay command must occur exactly in the verified replay source +ok 479 - replay command must occur exactly in the verified replay source + --- + duration_ms: 6.814786 + type: 'test' + ... +# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot +ok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot + --- + duration_ms: 1.790723 + type: 'test' + ... +# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch +ok 481 - malformed, mutable and falsely displayed source identities are refused before fetch + --- + duration_ms: 0.402123 + type: 'test' + ... +# Subtest: verified source bytes are required before a claim can be presented +ok 482 - verified source bytes are required before a claim can be presented + --- + duration_ms: 2.282003 + type: 'test' + ... +# Subtest: streamed responses stop at the byte cap and cancel the reader +ok 483 - streamed responses stop at the byte cap and cancel the reader + --- + duration_ms: 0.961904 + type: 'test' + ... +# Subtest: a stalled response body is aborted within its request deadline +ok 484 - a stalled response body is aborted within its request deadline + --- + duration_ms: 15.823121 + type: 'test' + ... +# Subtest: review comment pointers cannot masquerade as byte-frozen comment content +ok 485 - review comment pointers cannot masquerade as byte-frozen comment content + --- + duration_ms: 0.496927 + type: 'test' + ... +# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review +ok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review + --- + duration_ms: 1.030821 + type: 'test' + ... +# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path +ok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path + --- + duration_ms: 1.200919 + type: 'test' + ... +# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only +ok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only + --- + duration_ms: 1.240958 + type: 'test' + ... +# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer +ok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer + --- + duration_ms: 7.502738 + type: 'test' + ... +# Subtest: museum manifest must match the config byte count and SHA-256 before source projection +ok 490 - museum manifest must match the config byte count and SHA-256 before source projection + --- + duration_ms: 5.68488 + type: 'test' + ... +# Subtest: museum.html keeps its two evidence live regions and a separate current observation region +ok 491 - museum.html keeps its two evidence live regions and a separate current observation region + --- + duration_ms: 0.923657 + type: 'test' + ... +# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses +ok 492 - brand.css keeps the route status line visible and in the error colour when it refuses + --- + duration_ms: 1.233526 + type: 'test' + ... +# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them +ok 493 - refused cards carry no role and are not live; the museum status line counts every one of them + --- + duration_ms: 6.408392 + type: 'test' + ... +# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view +ok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view + --- + duration_ms: 7.263978 + type: 'test' + ... +# Subtest: a declared exhibit that cannot be shown is counted in the museum status line +ok 495 - a declared exhibit that cannot be shown is counted in the museum status line + --- + duration_ms: 4.022984 + type: 'test' + ... +# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title +ok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title + --- + duration_ms: 1.004863 + type: 'test' + ... +# Subtest: a coherent old browser cache cannot hide the newly pinned packet +ok 497 - a coherent old browser cache cannot hide the newly pinned packet + --- + duration_ms: 13.120612 + type: 'test' + ... +# Subtest: a mixed new config and stale museum manifest fails closed +ok 498 - a mixed new config and stale museum manifest fails closed + --- + duration_ms: 2.231229 + type: 'test' + ... +# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions +ok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions + --- + duration_ms: 14.738293 + type: 'test' + ... +# Subtest: verified claim quotes expose readable source and exact review citations +ok 500 - verified claim quotes expose readable source and exact review citations + --- + duration_ms: 3.929708 + type: 'test' + ... +# Subtest: readable presentation retains the exact original source quote in a disclosure +ok 501 - readable presentation retains the exact original source quote in a disclosure + --- + duration_ms: 6.087714 + type: 'test' + ... +# Subtest: packet cards render in manifest order when the first packet arrives last +ok 502 - packet cards render in manifest order when the first packet arrives last + --- + duration_ms: 8.437851 + type: 'test' + ... +# Subtest: a refused packet keeps its manifest slot when the other packet arrives later +ok 503 - a refused packet keeps its manifest slot when the other packet arrives later + --- + duration_ms: 7.562872 + type: 'test' + ... +# Subtest: every refused packet is counted in the museum status line +ok 504 - every refused packet is counted in the museum status line + --- + duration_ms: 7.305306 + type: 'test' + ... +# Subtest: a rendered packet replaces its Verifying placeholder +ok 505 - a rendered packet replaces its Verifying placeholder + --- + duration_ms: 7.368519 + type: 'test' + ... +# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders +ok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders + --- + duration_ms: 1.661519 + type: 'test' + ... +# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window +ok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window + --- + duration_ms: 0.430042 + type: 'test' + ... +# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two +ok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two + --- + duration_ms: 0.549237 + type: 'test' + ... +# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple +ok 509 - P15 exact finite example partitions every proper subset and rejects the full triple + --- + duration_ms: 0.461216 + type: 'test' + ... +# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code +ok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code + --- + duration_ms: 0.491815 + type: 'test' + ... +# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions +ok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions + --- + duration_ms: 3.087799 + type: 'test' + ... +# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches +ok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches + --- + duration_ms: 0.720072 + type: 'test' + ... +# Subtest: P15 vertex toggles change the actual decomposition result +ok 513 - P15 vertex toggles change the actual decomposition result + --- + duration_ms: 0.674817 + type: 'test' + ... +# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails +ok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails + --- + duration_ms: 1.591314 + type: 'test' + ... +# Subtest: EC014 live status follows the visible view through 3D, 2D and back +ok 515 - EC014 live status follows the visible view through 3D, 2D and back + --- + duration_ms: 3.820871 + type: 'test' + ... +# Subtest: correct source bytes cannot acquire a different valid-looking commit +ok 516 - correct source bytes cannot acquire a different valid-looking commit + --- + duration_ms: 1.211735 + type: 'test' + ... +# Subtest: exported projection preserves the complete audited source descriptor +ok 517 - exported projection preserves the complete audited source descriptor + --- + duration_ms: 6.45643 + type: 'test' + ... +# Subtest: offline CLI refuses coherent hash-correct source relabeling +ok 518 - offline CLI refuses coherent hash-correct source relabeling + --- + duration_ms: 33.662998 + type: 'test' + ... +# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags +ok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags + --- + duration_ms: 219.487069 + type: 'test' + ... +# Subtest: a record with an owner but no evidence_url fails validation +ok 520 - a record with an owner but no evidence_url fails validation + --- + duration_ms: 319.569502 + type: 'test' + ... +# Subtest: closed schema, evidence pattern, and primary source_rev are enforced +ok 521 - closed schema, evidence pattern, and primary source_rev are enforced + --- + duration_ms: 1031.553341 + type: 'test' + ... +# Subtest: pinned rev equals the blob or tree commit segment +ok 522 - pinned rev equals the blob or tree commit segment + --- + duration_ms: 273.990787 + type: 'test' + ... +# Subtest: carried_forward resolution_url uses the shared comment pattern +ok 523 - carried_forward resolution_url uses the shared comment pattern + --- + duration_ms: 397.825553 + type: 'test' + ... +# Subtest: released_url keeps the owner object and the atlas says released +ok 524 - released_url keeps the owner object and the atlas says released + --- + duration_ms: 135.701309 + type: 'test' + ... +# Subtest: resume projection shows a node-status view and refuses an owner without evidence +ok 525 - resume projection shows a node-status view and refuses an owner without evidence + --- + duration_ms: 537.619572 + type: 'test' + ... +# Subtest: a valid observed_at and source_rev refresh still validates and renders +ok 526 - a valid observed_at and source_rev refresh still validates and renders + --- + duration_ms: 178.725639 + type: 'test' + ... +# Subtest: the atlas resume section passes the published node-status view into resumeProjection +ok 527 - the atlas resume section passes the published node-status view into resumeProjection + --- + duration_ms: 1.447591 + type: 'test' + ... +# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim +ok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim + --- + duration_ms: 149.9403 + type: 'test' + ... +# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs +ok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs + --- + duration_ms: 3.675011 + type: 'test' + ... +# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition +ok 530 - the failed triple explicitly records an attempted placement rather than a valid partition + --- + duration_ms: 0.6854 + type: 'test' + ... +# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink +ok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink + --- + duration_ms: 0.253679 + type: 'test' + ... +# Subtest: malformed selections and noncanonical or false ISO timestamps are refused +ok 532 - malformed selections and noncanonical or false ISO timestamps are refused + --- + duration_ms: 1.241846 + type: 'test' + ... +# Subtest: metadata carries the exact pinned finite source and non-certifying scope +ok 533 - metadata carries the exact pinned finite source and non-certifying scope + --- + duration_ms: 0.471928 + type: 'test' + ... +# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement +ok 534 - plaintext citations identify selected objects, actual empty groups and failed placement + --- + duration_ms: 0.701544 + type: 'test' + ... +# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors +ok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors + --- + duration_ms: 2.156975 + type: 'test' + ... +# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer +ok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer + --- + duration_ms: 17.119862 + type: 'test' + ... +# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused +ok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused + --- + duration_ms: 2.209205 + type: 'test' + ... +# Subtest: the visible footer records the same ISO generation timestamp as export metadata +ok 538 - the visible footer records the same ISO generation timestamp as export metadata + --- + duration_ms: 1.246934 + type: 'test' + ... +# Subtest: inherited native font stacks on actual non-text primitives remain self-contained +ok 539 - inherited native font stacks on actual non-text primitives remain self-contained + --- + duration_ms: 1.067796 + type: 'test' + ... +# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export +ok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export + --- + duration_ms: 2.585505 + type: 'test' + ... +# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities +ok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities + --- + duration_ms: 2.133744 + type: 'test' + ... +# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted +ok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted + --- + duration_ms: 0.883922 + type: 'test' + ... +# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink +ok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink + --- + duration_ms: 0.550045 + type: 'test' + ... +# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings +ok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings + --- + duration_ms: 10.693534 + type: 'test' + ... +# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources +ok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources + --- + duration_ms: 2.921237 + type: 'test' + ... +# Subtest: the visible pin footer records the same ISO generation timestamp as metadata +ok 546 - the visible pin footer records the same ISO generation timestamp as metadata + --- + duration_ms: 1.421048 + type: 'test' + ... +# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection. +# Subtest: SIDE24 always identifies the engineering exhibit before the controls +ok 547 - SIDE24 always identifies the engineering exhibit before the controls + --- + duration_ms: 0.803757 + type: 'test' + ... +# Subtest: count cards and every status row retain their own source context +ok 548 - count cards and every status row retain their own source context + --- + duration_ms: 2.814025 + type: 'test' + ... +# Subtest: repository and path filters combine with search and reset pagination +ok 549 - repository and path filters combine with search and reset pagination + --- + duration_ms: 13.682281 + type: 'test' + ... +# Subtest: query view shows its pin and the local byte-check command without a live ref control +ok 550 - query view shows its pin and the local byte-check command without a live ref control + --- + duration_ms: 0.257559 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 551 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.522155 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 552 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 0.972871 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 553 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.28815 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 554 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 6.807929 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 555 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.51962 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 556 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.577092 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 557 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.832236 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.710808 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 559 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.353962 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 560 - navigation and grids can reflow on small screens + --- + duration_ms: 0.998406 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 561 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.082212 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 562 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.141179 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 8.927187 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 10.470318 + type: 'test' + ... +# Subtest: valid source preserves exact strings +ok 565 - valid source preserves exact strings + --- + duration_ms: 43.634622 + type: 'test' + ... +# Subtest: local pinned data bypasses an older response while still verifying current bytes +ok 566 - local pinned data bypasses an older response while still verifying current bytes + --- + duration_ms: 2.746883 + type: 'test' + ... +# Subtest: digest mismatch refuses data +ok 567 - digest mismatch refuses data + --- + duration_ms: 2.074042 + type: 'test' + ... +# Subtest: byte count mismatch refuses data +ok 568 - byte count mismatch refuses data + --- + duration_ms: 0.403106 + type: 'test' + ... +# Subtest: mutable branch URL refused before request +ok 569 - mutable branch URL refused before request + --- + duration_ms: 0.216513 + type: 'test' + ... +# Subtest: HTTP failure gives no data +ok 570 - HTTP failure gives no data + --- + duration_ms: 0.308542 + type: 'test' + ... +# Subtest: status snapshot counts are selected rows +ok 571 - status snapshot counts are selected rows + --- + duration_ms: 0.84342 + type: 'test' + ... +# Subtest: unknown category refused +ok 572 - unknown category refused + --- + duration_ms: 0.245704 + type: 'test' + ... +# Subtest: changed count refused +ok 573 - changed count refused + --- + duration_ms: 0.150323 + type: 'test' + ... +# Subtest: promotion authority refused +ok 574 - promotion authority refused + --- + duration_ms: 0.12294 + type: 'test' + ... +# Subtest: coefficient endpoints remain distinct exactly +ok 575 - coefficient endpoints remain distinct exactly + --- + duration_ms: 0.227377 + type: 'test' + ... +# Subtest: float endpoints refused +ok 576 - float endpoints refused + --- + duration_ms: 0.165434 + type: 'test' + ... +# Subtest: coefficient acceptance flag cannot be flipped +ok 577 - coefficient acceptance flag cannot be flipped + --- + duration_ms: 0.0981 + type: 'test' + ... +# Subtest: catalog points at immutable public paths +ok 578 - catalog points at immutable public paths + --- + duration_ms: 0.186185 + type: 'test' + ... +# Subtest: catalog rejects private repo and traversal +ok 579 - catalog rejects private repo and traversal + --- + duration_ms: 0.181642 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different commit +ok 580 - correct bytes cannot be attributed to a different commit + --- + duration_ms: 0.266103 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different path +ok 581 - correct bytes cannot be attributed to a different path + --- + duration_ms: 0.204049 + type: 'test' + ... +# Subtest: Home explains the landscape before publication machinery +ok 582 - Home explains the landscape before publication machinery + --- + duration_ms: 1.242102 + type: 'test' + ... +# Subtest: Explore reaches a real local control and result before source publication +ok 583 - Explore reaches a real local control and result before source publication + --- + duration_ms: 0.400594 + type: 'test' + ... +# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive +ok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive + --- + duration_ms: 1.131498 + type: 'test' + ... +# Subtest: Research reading map routes to all four preserved introductory paths +ok 585 - Research reading map routes to all four preserved introductory paths + --- + duration_ms: 1.569011 + type: 'test' + ... +# Subtest: Library routes present-day discovery separately from dated records +ok 586 - Library routes present-day discovery separately from dated records + --- + duration_ms: 0.520127 + type: 'test' + ... +# Subtest: Deep archived fragments reveal every ancestor without focus or history writes +ok 587 - Deep archived fragments reveal every ancestor without focus or history writes + --- + duration_ms: 1.027021 + type: 'test' + ... +# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes +ok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes + --- + duration_ms: 0.536958 + type: 'test' + ... +# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched +ok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched + --- + duration_ms: 0.581348 + type: 'test' + ... +# Subtest: current readers expose consistent native task links with real destinations +ok 590 - current readers expose consistent native task links with real destinations + --- + duration_ms: 10.890447 + type: 'test' + ... +# Subtest: missing and already-enhanced menus receive no extra listeners +ok 591 - missing and already-enhanced menus receive no extra listeners + --- + duration_ms: 0.242504 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 592 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 80.668169 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 593 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 60.405454 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 594 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 44.705313 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 595 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 74.612574 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 596 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 151.827468 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 597 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.108822 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.386732 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.132206 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 600 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 31.560133 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.363913 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.712282 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 603 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.294731 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 27.567708 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 605 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.388553 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 28.427455 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 607 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 30.331015 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 608 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 20.963987 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 609 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 27.558324 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 610 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 26.785191 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 611 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 1.822211 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 612 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 20.315481 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 613 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 23.256278 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 614 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 25.97737 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 615 - a config refusal settles every pending source note + --- + duration_ms: 1.628209 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 616 - a query refusal preserves verified import custody information + --- + duration_ms: 20.010484 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 617 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 24.941301 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 618 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.250984 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 619 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 25.873798 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.332555 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 621 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 21.991888 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 27.845322 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 623 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 44.780007 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 624 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 33.661254 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 625 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 26.674242 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 626 - encoded punctuation stays inert search text + --- + duration_ms: 19.52782 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 627 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 27.494615 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 628 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 5.241463 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 629 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 35.335446 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 630 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 26.096006 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 27.015383 + type: 'test' + ... +# Subtest: every former landing section routes to its preserved workspace section +ok 632 - every former landing section routes to its preserved workspace section + --- + duration_ms: 0.428618 + type: 'test' + ... +# Subtest: new home fragments and untrusted fragments never become redirect destinations +ok 633 - new home fragments and untrusted fragments never become redirect destinations + --- + duration_ms: 0.116836 + type: 'test' + ... +# Subtest: browser entry follows a bookmarked section and future hash changes +ok 634 - browser entry follows a bookmarked section and future hash changes + --- + duration_ms: 0.627555 + type: 'test' + ... +# Subtest: the reader home does not preload the technical inventory or source viewer +ok 635 - the reader home does not preload the technical inventory or source viewer + --- + duration_ms: 0.2414 + type: 'test' + ... +# Subtest: verified source cards become reachable after asynchronous rendering +ok 636 - verified source cards become reachable after asynchronous rendering + --- + duration_ms: 5.658937 + type: 'test' + ... +# Subtest: saved source hands exact fields to the same-site reference builder +ok 637 - saved source hands exact fields to the same-site reference builder + --- + duration_ms: 3.083176 + type: 'test' + ... +# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field +ok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field + --- + duration_ms: 0.884098 + type: 'test' + ... +# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path +ok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path + --- + duration_ms: 0.799701 + type: 'test' + ... +# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal +ok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal + --- + duration_ms: 0.854595 + type: 'test' + ... +# Subtest: queries and malformed or overprivileged imported records cannot become references +ok 641 - queries and malformed or overprivileged imported records cannot become references + --- + duration_ms: 1.096675 + type: 'test' + ... +# Subtest: imported notes refuse raw duplicate schema and source identity keys +ok 642 - imported notes refuse raw duplicate schema and source identity keys + --- + duration_ms: 3.529073 + type: 'test' + ... +# Subtest: source-button identity matches legal filename URI spellings without conflating path segments +ok 643 - source-button identity matches legal filename URI spellings without conflating path segments + --- + duration_ms: 0.399019 + type: 'test' + ... +# Subtest: valid entries retain exact identities and normalize only search whitespace +ok 644 - valid entries retain exact identities and normalize only search whitespace + --- + duration_ms: 1.19096 + type: 'test' + ... +# Subtest: entries require exact plain JSON data records with no inherited or executable fields +ok 645 - entries require exact plain JSON data records with no inherited or executable fields + --- + duration_ms: 0.536878 + type: 'test' + ... +# Subtest: unexpected keys never become imported links, statuses or inferred metadata +ok 646 - unexpected keys never become imported links, statuses or inferred metadata + --- + duration_ms: 0.633122 + type: 'test' + ... +# Subtest: required properties and string types cannot be coerced or defaulted +ok 647 - required properties and string types cannot be coerced or defaulted + --- + duration_ms: 2.110217 + type: 'test' + ... +# Subtest: source repositories and commits must name an allowed owner and exact immutable commit +ok 648 - source repositories and commits must name an allowed owner and exact immutable commit + --- + duration_ms: 0.51739 + type: 'test' + ... +# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments +ok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments + --- + duration_ms: 0.560021 + type: 'test' + ... +# Subtest: dates reject calendar overflow, offsets and invalid timestamp types +ok 650 - dates reject calendar overflow, offsets and invalid timestamp types + --- + duration_ms: 1.270478 + type: 'test' + ... +# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types +ok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types + --- + duration_ms: 2.035771 + type: 'test' + ... +# Subtest: search filters are bounded inert text with collection-specific repositories +ok 652 - search filters are bounded inert text with collection-specific repositories + --- + duration_ms: 0.766526 + type: 'test' + ... +# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding +ok 653 - source links are reconstructed from exact pins with literal raw Git path encoding + --- + duration_ms: 0.361516 + type: 'test' + ... +# Subtest: current search links omit every catalog and unrelated parameter +ok 654 - current search links omit every catalog and unrelated parameter + --- + duration_ms: 0.3789 + type: 'test' + ... +# Subtest: catalog search links omit current parameters and roundtrip all catalog filters +ok 655 - catalog search links omit current parameters and roundtrip all catalog filters + --- + duration_ms: 0.269007 + type: 'test' + ... +# Subtest: blank saved searches restore their collection all-files view +ok 656 - blank saved searches restore their collection all-files view + --- + duration_ms: 0.265591 + type: 'test' + ... +# Subtest: entry identity separates source pins and normalized collection search contexts +ok 657 - entry identity separates source pins and normalized collection search contexts + --- + duration_ms: 0.527974 + type: 'test' + ... +# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields +ok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields + --- + duration_ms: 0.675761 + type: 'test' + ... +# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing +ok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing + --- + duration_ms: 4.905162 + type: 'test' + ... +# Subtest: merge validates every entry before returning and leaves inputs unchanged +ok 660 - merge validates every entry before returning and leaves inputs unchanged + --- + duration_ms: 0.545254 + type: 'test' + ... +# Subtest: deduplication keeps first context and enriches absent identity metadata +ok 661 - deduplication keeps first context and enriches absent identity metadata + --- + duration_ms: 2.960756 + type: 'test' + ... +# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge +ok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge + --- + duration_ms: 0.950904 + type: 'test' + ... +# Subtest: capacity counts unique entries and overflow is atomic +ok 663 - capacity counts unique entries and overflow is atomic + --- + duration_ms: 7.815807 + type: 'test' + ... +# Subtest: exported JSON carries only strict schema data and roundtrips identity types +ok 664 - exported JSON carries only strict schema data and roundtrips identity types + --- + duration_ms: 0.504543 + type: 'test' + ... +# Subtest: export rejects oversized identities instead of creating an unimportable file +ok 665 - export rejects oversized identities instead of creating an unimportable file + --- + duration_ms: 8.507945 + type: 'test' + ... +# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity +ok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity + --- + duration_ms: 7.270658 + type: 'test' + ... +# Subtest: comparison model is implemented +ok 667 - comparison model is implemented + --- + duration_ms: 5.600579 + type: 'test' + ... +# Subtest: literal fields preserve array order and number versus boolean +ok 668 - literal fields preserve array order and number versus boolean + --- + duration_ms: 0.430977 + type: 'test' + ... +# Subtest: real retained archives distinguish pin moves from blob/byte moves +ok 669 - real retained archives distinguish pin moves from blob/byte moves + --- + duration_ms: 332.068096 + type: 'test' + ... +# Subtest: payload integrity refuses byte and digest mismatch +ok 670 - payload integrity refuses byte and digest mismatch + --- + duration_ms: 2.080674 + type: 'test' + ... +# Subtest: unsafe public paths and unsupported versions refuse +ok 671 - unsafe public paths and unsupported versions refuse + --- + duration_ms: 0.614523 + type: 'test' + ... +# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives +ok 672 - duplicate inventory identities refuse; complete edge multiplicity survives + --- + duration_ms: 36.38953 + type: 'test' + ... +# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted +ok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted + --- + duration_ms: 30.119646 + type: 'test' + ... +# Subtest: registry binds selected own descriptors and metadata publication +ok 674 - registry binds selected own descriptors and metadata publication + --- + duration_ms: 3.464843 + type: 'test' + ... +# Subtest: bounded acquisition refuses oversized responses and follows no redirects +ok 675 - bounded acquisition refuses oversized responses and follows no redirects + --- + duration_ms: 17.219162 + type: 'test' + ... +# Subtest: publication acquisition verifies registry hash before admitting choices +ok 676 - publication acquisition verifies registry hash before admitting choices + --- + duration_ms: 46.706678 + type: 'test' + ... +# Subtest: page advertised identity refuses a different publication +ok 677 - page advertised identity refuses a different publication + --- + duration_ms: 4.536462 + type: 'test' + ... +# Subtest: decoded byte identity survives HTTP content encoding +ok 678 - decoded byte identity survives HTTP content encoding + --- + duration_ms: 0.818516 + type: 'test' + ... +# Subtest: raw duplicate node IDs refuse even when exact byte digest matches +ok 679 - raw duplicate node IDs refuse even when exact byte digest matches + --- + duration_ms: 6.985612 + type: 'test' + ... +# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys +ok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys + --- + duration_ms: 0.676137 + type: 'test' + ... +# Subtest: raw duplicate metadata and hash-matching registry keys refuse +ok 681 - raw duplicate metadata and hash-matching registry keys refuse + --- + duration_ms: 8.408692 + type: 'test' + ... +# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections +ok 682 - producer-admitted identical current/archive bytes retain distinct typed selections + --- + duration_ms: 74.569376 + type: 'test' + ... +# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes +ok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes + --- + duration_ms: 0.585909 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 1.173592 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.352052 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 686 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 0.546157 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 687 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.667848 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 688 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 6.10645 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 1.074635 + type: 'test' + ... +# Subtest: builds an immutable repository or file reference without attributing authorship +ok 690 - builds an immutable repository or file reference without attributing authorship + --- + duration_ms: 1.838009 + type: 'test' + ... +# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths +ok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths + --- + duration_ms: 1.424432 + type: 'test' + ... +# Subtest: allows unicode file names and unambiguous encoded URL delimiters +ok 692 - allows unicode file names and unambiguous encoded URL delimiters + --- + duration_ms: 0.247887 + type: 'test' + ... +# Subtest: real form wiring clears stale output and announces a corrected reference +ok 693 - real form wiring clears stale output and announces a corrected reference + --- + duration_ms: 1.130386 + type: 'test' + ... +# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity +ok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity + --- + duration_ms: 0.961536 + type: 'test' + ... +# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math +ok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math + --- + duration_ms: 0.353772 + type: 'test' + ... +# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources +ok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources + --- + duration_ms: 0.243288 + type: 'test' + ... +# Subtest: interval copying locks all formats until the actual write finishes and handles denial +ok 697 - interval copying locks all formats until the actual write finishes and handles denial + --- + duration_ms: 0.72884 + type: 'test' + ... +# Subtest: copy sends exactly the displayed pinned commands and never executes them +ok 698 - copy sends exactly the displayed pinned commands and never executes them + --- + duration_ms: 1.462831 + type: 'test' + ... +# Subtest: clipboard refusal provides manual fallback without success +ok 699 - clipboard refusal provides manual fallback without success + --- + duration_ms: 0.666417 + type: 'test' + ... +# Subtest: unsupported clipboard leaves the command block readable and gives fallback +ok 700 - unsupported clipboard leaves the command block readable and gives fallback + --- + duration_ms: 0.257184 + type: 'test' + ... +# Subtest: reproduction controls have static fallback and an explicit live announcement +ok 701 - reproduction controls have static fallback and an explicit live announcement + --- + duration_ms: 9.939104 + type: 'test' + ... +# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON +ok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON + --- + duration_ms: 0.299334 + type: 'test' + ... +# Subtest: rejects misleading or malformed digest identities +ok 703 - rejects misleading or malformed digest identities + --- + duration_ms: 0.456985 + type: 'test' + ... +# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields +ok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields + --- + duration_ms: 0.810149 + type: 'test' + ... +# Subtest: malformed shared references are refused without partial source identity +ok 705 - malformed shared references are refused without partial source identity + --- + duration_ms: 0.467472 + type: 'test' + ... +# Subtest: reference workflow copies selected representations and invalidates stale outputs +ok 706 - reference workflow copies selected representations and invalidates stale outputs + --- + duration_ms: 0.733335 + type: 'test' + ... +# Subtest: shared reference restoration and Back reject invalid state without publishing old output +ok 707 - shared reference restoration and Back reject invalid state without publishing old output + --- + duration_ms: 0.497456 + type: 'test' + ... +# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded +ok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded + --- + duration_ms: 0.64909 + type: 'test' + ... +# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes +ok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes + --- + duration_ms: 0.313229 + type: 'test' + ... +# Subtest: a pending clipboard operation prevents a newer reference from overtaking it +ok 710 - a pending clipboard operation prevents a newer reference from overtaking it + --- + duration_ms: 0.434089 + type: 'test' + ... +# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest +ok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest + --- + duration_ms: 0.309686 + type: 'test' + ... +# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity +ok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity + --- + duration_ms: 0.260343 + type: 'test' + ... +# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity +ok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity + --- + duration_ms: 0.749319 + type: 'test' + ... +# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success +ok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success + --- + duration_ms: 0.520678 + type: 'test' + ... +# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback +ok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback + --- + duration_ms: 0.507079 + type: 'test' + ... +# Subtest: legal unmatched and nested path braces produce parser-safe literal text +ok 716 - legal unmatched and nested path braces produce parser-safe literal text + --- + duration_ms: 16.743002 + type: 'test' + ... +# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted. +# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata +ok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata + --- + duration_ms: 3.892644 + type: 'test' + ... +# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state +ok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state + --- + duration_ms: 1.187247 + type: 'test' + ... +# Subtest: unsupported resources and unbounded or invisible styles refuse serialization +ok 719 - unsupported resources and unbounded or invisible styles refuse serialization + --- + duration_ms: 2.051563 + type: 'test' + ... +# Subtest: capture reads displayed primitives and their concrete computed styles +ok 720 - capture reads displayed primitives and their concrete computed styles + --- + duration_ms: 1.533477 + type: 'test' + ... +# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children +ok 721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children + --- + duration_ms: 1.117651 + type: 'test' + ... +# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes +ok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes + --- + duration_ms: 1.13865 + type: 'test' + ... +# Subtest: rounded rectangle height requires a matching native used-height witness +ok 723 - rounded rectangle height requires a matching native used-height witness + --- + duration_ms: 0.754367 + type: 'test' + ... +# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion +ok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion + --- + duration_ms: 0.289718 + type: 'test' + ... +# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string +ok 725 - native height equality cannot admit real CSS overrides sharing a rounded string + --- + duration_ms: 1.70943 + type: 'test' + ... +# Subtest: rectangle height witness is finite, bounded and fail-closed +ok 726 - rectangle height witness is finite, bounded and fail-closed + --- + duration_ms: 3.565152 + type: 'test' + ... +# Subtest: native representation check is bounded to positive rectangle height roundoff +ok 727 - native representation check is bounded to positive rectangle height roundoff + --- + duration_ms: 1.745941 + type: 'test' + ... +# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry +ok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry + --- + duration_ms: 0.355556 + type: 'test' + ... +# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles +ok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles + --- + duration_ms: 0.459768 + type: 'test' + ... +# Subtest: capture refuses root opacity that would be lost from the opaque standalone export +ok 730 - capture refuses root opacity that would be lost from the opaque standalone export + --- + duration_ms: 0.474696 + type: 'test' + ... +# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths +ok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths + --- + duration_ms: 1.160681 + type: 'test' + ... +# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes +ok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes + --- + duration_ms: 0.430682 + type: 'test' + ... +# Subtest: pending copies serialize writes and never claim success after control changes +ok 733 - pending copies serialize writes and never claim success after control changes + --- + duration_ms: 0.279126 + type: 'test' + ... +# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text +ok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text + --- + duration_ms: 0.420393 + type: 'test' + ... +# Subtest: current clipboard success and denial report only the current figure state +ok 735 - current clipboard success and denial report only the current figure state + --- + duration_ms: 0.313757 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 736 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 78.676869 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 737 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 49.908657 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 738 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 41.313803 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 739 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 82.312354 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 740 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 136.915884 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 741 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 28.078467 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.032838 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.702573 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 744 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.914761 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.84605 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.093457 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 747 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.260448 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.946977 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 749 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.490133 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.718673 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 751 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 23.037621 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 752 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 20.022804 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 753 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 22.973655 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 754 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 23.471247 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 755 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 1.724102 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 756 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 20.223717 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 757 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 23.135522 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 758 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 24.63244 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 759 - a config refusal settles every pending source note + --- + duration_ms: 1.731638 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 760 - a query refusal preserves verified import custody information + --- + duration_ms: 19.984476 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 761 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 28.439518 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 762 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.285342 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 763 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 23.42992 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.436119 + type: 'test' + ... +1..764 +# tests 764 +# suites 0 +# pass 764 +# fail 0 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 5434.116374 diff --git a/cbz/evidence/cold-start-node/green/arm-result.json b/cbz/evidence/cold-start-node/green/arm-result.json new file mode 100644 index 000000000..c149946e4 --- /dev/null +++ b/cbz/evidence/cold-start-node/green/arm-result.json @@ -0,0 +1,354 @@ +{ + "command": [ + "node", + "--test", + "--test-reporter=tap", + "tests/fixtures/museum_fixture.mjs", + "tests/test_atlas_controls.mjs", + "tests/test_atlas_formal_evidence.mjs", + "tests/test_atlas_formal_source_bridge.mjs", + "tests/test_atlas_reader_experience.mjs", + "tests/test_atlas_relationships.mjs", + "tests/test_atlas_resilience.mjs", + "tests/test_atlas_spatial.mjs", + "tests/test_atlas_spatial_labels.mjs", + "tests/test_brand_identity.mjs", + "tests/test_catalog_query.mjs", + "tests/test_compare_categories.mjs", + "tests/test_compare_source_panel.mjs", + "tests/test_current_inventory_acquisition.mjs", + "tests/test_current_observation_coherence.mjs", + "tests/test_current_site.mjs", + "tests/test_current_site_resume.mjs", + "tests/test_current_site_shell.mjs", + "tests/test_curvature_export.mjs", + "tests/test_dependency_viewer.mjs", + "tests/test_explore_models.mjs", + "tests/test_figure_png.mjs", + "tests/test_library_discovery.mjs", + "tests/test_library_source_search.mjs", + "tests/test_measurement_model.mjs", + "tests/test_museum_conditionals.mjs", + "tests/test_museum_conditionals_cli.mjs", + "tests/test_museum_conditionals_paths.mjs", + "tests/test_museum_conditionals_startup.mjs", + "tests/test_museum_frontend.mjs", + "tests/test_museum_geometry.mjs", + "tests/test_museum_identity.mjs", + "tests/test_node_status_atlas.mjs", + "tests/test_palette_export.mjs", + "tests/test_pin_export.mjs", + "tests/test_public_shop_app.mjs", + "tests/test_public_shop_frontend.mjs", + "tests/test_reader_experience.mjs", + "tests/test_reader_jump.mjs", + "tests/test_reader_navigation.mjs", + "tests/test_reading_list_citation.mjs", + "tests/test_research_desk.mjs", + "tests/test_snapshot_compare.mjs", + "tests/test_source_quote.mjs", + "tests/test_source_reference.mjs", + "tests/test_teaching_export.mjs", + "tests/test_workspace_navigation.mjs" + ], + "final_cbz_certification": false, + "finished_utc": "2026-10-29T20:20:59.662975+00:00", + "fixture_environment": { + "MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", + "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", + "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-" + }, + "fixture_files": 39, + "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", + "fixtures": [ + { + "bytes": 1090, + "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", + "path": "coefficients/side24_v1/ENCLOSURE.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811" + }, + { + "bytes": 10272, + "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", + "path": "coefficients/side24_v1/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769" + }, + { + "bytes": 18262, + "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", + "path": "imports/hardening_ebedb780/MANIFEST.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3" + }, + { + "bytes": 4623, + "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", + "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", + "repository": "d6g8k5htny-coder/query-", + "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828" + }, + { + "bytes": 17734, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a" + }, + { + "bytes": 10272, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "coefficients/side24_v1/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769" + }, + { + "bytes": 18355, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/remote_window_20260924/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7" + }, + { + "bytes": 16948, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05" + }, + { + "bytes": 17646, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b" + }, + { + "bytes": 15902, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d" + }, + { + "bytes": 10858, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/axial_density_20260925/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4" + }, + { + "bytes": 9902, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36" + }, + { + "bytes": 3272, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6" + }, + { + "bytes": 2266, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b" + }, + { + "bytes": 11352, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "frontiers/full_price_20260924/PROOF.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9" + }, + { + "bytes": 12708, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "PROOF_INDEX.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249" + }, + { + "bytes": 16417, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "claims/LANDING_CLAIMS.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e" + }, + { + "bytes": 11331, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c" + }, + { + "bytes": 1090, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "coefficients/side24_v1/ENCLOSURE.json", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811" + }, + { + "bytes": 15925, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f" + }, + { + "bytes": 12741, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d" + }, + { + "bytes": 10073, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574" + }, + { + "bytes": 15615, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53" + }, + { + "bytes": 12510, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c" + }, + { + "bytes": 3723, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717" + }, + { + "bytes": 15569, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7" + }, + { + "bytes": 7655, + "commit": "f2e432ea5c86742e480c66624775bc9103343314", + "path": "STATUS.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3" + }, + { + "bytes": 25057, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537" + }, + { + "bytes": 673, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176" + }, + { + "bytes": 362, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "incoming/side24-identity-replay-20260926/output.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be" + }, + { + "bytes": 61961, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", + "repository": "d6g8k5htny-coder/main", + "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024" + }, + { + "bytes": 1118, + "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", + "path": "incoming/side24-identity-replay-20260926/RESULT.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8" + }, + { + "bytes": 40261, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7" + }, + { + "bytes": 10221, + "commit": "a12c178c0f857a130cf434e9efd44233a038195b", + "path": "incoming/side24-chart-claude-20260926/RESULT.md", + "repository": "d6g8k5htny-coder/main", + "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502" + }, + { + "bytes": 1471, + "commit": "a12c178c0f857a130cf434e9efd44233a038195b", + "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b" + }, + { + "bytes": 1724, + "commit": "a12c178c0f857a130cf434e9efd44233a038195b", + "path": "incoming/side24-chart-claude-20260926/output.json", + "repository": "d6g8k5htny-coder/main", + "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb" + }, + { + "bytes": 23312, + "commit": "82247833b5dd58e04291d55353b52938d73ec614", + "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da" + }, + { + "bytes": 6023, + "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", + "path": "README.md", + "repository": "d6g8k5htny-coder/Math-", + "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730" + } + ], + "log_sha256": "ab9ebb6dbb7c2863371a04841a86bfe4656ac95016dd7e02424b1074addf6656", + "mathematical_certification": false, + "node_exit": 0, + "node_version": "v22.23.4", + "runtime": { + "implementation": "cpython", + "machine": "aarch64", + "platform": "linux", + "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]" + }, + "schema": "cbz.node-regression.v1", + "source_after": "8cde04aedf4edf9e7343ecb6b2ba5a2f844ab767", + "source_before": "8cde04aedf4edf9e7343ecb6b2ba5a2f844ab767", + "started_utc": "2026-10-29T20:20:53.361287+00:00", + "status": "PASS", + "summary": { + "cancelled": 0, + "fail": 0, + "pass": 764, + "skipped": 0, + "tests": 764, + "todo": 0 + } +} diff --git a/cbz/evidence/cold-start-node/green/arm-source-fixtures.log b/cbz/evidence/cold-start-node/green/arm-source-fixtures.log new file mode 100644 index 000000000..6d5a608e5 --- /dev/null +++ b/cbz/evidence/cold-start-node/green/arm-source-fixtures.log @@ -0,0 +1,619 @@ +2026-10-29T20:20:07.1064590Z Current runner version: '2.338.0' +2026-10-29T20:20:07.1096827Z ##[group]Runner Image Provisioner +2026-10-29T20:20:07.1097955Z Hosted Compute Agent +2026-10-29T20:20:07.1098686Z Version: 20261021.618 +2026-10-29T20:20:07.1099711Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:20:07.1100456Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:20:07.1101297Z Worker ID: {1e59bf64-4c27-4f26-9012-4d1529e4fa51} +2026-10-29T20:20:07.1102013Z Region: eastus2 +2026-10-29T20:20:07.1102634Z Cloud: Azure +2026-10-29T20:20:07.1103382Z ##[endgroup] +2026-10-29T20:20:07.1106113Z ##[group]Operating System +2026-10-29T20:20:07.1106949Z Ubuntu +2026-10-29T20:20:07.1107487Z 24.04.5 +2026-10-29T20:20:07.1107982Z LTS +2026-10-29T20:20:07.1109027Z ##[endgroup] +2026-10-29T20:20:07.1109947Z ##[group]Runner Image +2026-10-29T20:20:07.1110663Z Image: ubuntu-24.04-arm +2026-10-29T20:20:07.1111300Z Version: 20261025.165.1 +2026-10-29T20:20:07.1112799Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:20:07.1114480Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:20:07.1115541Z ##[endgroup] +2026-10-29T20:20:07.1116748Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:20:07.1120169Z Contents: read +2026-10-29T20:20:07.1120925Z Metadata: read +2026-10-29T20:20:07.1121498Z ##[endgroup] +2026-10-29T20:20:07.1124432Z Secret source: Actions +2026-10-29T20:20:07.1125446Z Cache mode: write +2026-10-29T20:20:07.1126528Z Prepare workflow directory +2026-10-29T20:20:07.1527743Z Prepare all required actions +2026-10-29T20:20:07.1582790Z Getting action download info +2026-10-29T20:20:07.3827759Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:20:07.4920990Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:20:07.5781061Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:20:07.7547705Z Complete job name: controls-and-prepared +2026-10-29T20:20:07.8573939Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:20:07.8575912Z with: +2026-10-29T20:20:07.8576706Z persist-credentials: false +2026-10-29T20:20:07.8577373Z fetch-depth: 0 +2026-10-29T20:20:07.8578089Z repository: d6g8k5htny-coder/main +2026-10-29T20:20:07.8582497Z token: *** +2026-10-29T20:20:07.8583070Z ssh-strict: true +2026-10-29T20:20:07.8583727Z ssh-user: git +2026-10-29T20:20:07.8584278Z clean: true +2026-10-29T20:20:07.8584937Z sparse-checkout-cone-mode: true +2026-10-29T20:20:07.8585657Z fetch-tags: false +2026-10-29T20:20:07.8586302Z show-progress: true +2026-10-29T20:20:07.8586973Z lfs: false +2026-10-29T20:20:07.8587529Z submodules: false +2026-10-29T20:20:07.8588122Z set-safe-directory: true +2026-10-29T20:20:07.8588996Z allow-unsafe-pr-checkout: false +2026-10-29T20:20:07.8591013Z ##[endgroup] +2026-10-29T20:20:07.9549073Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:20:07.9552363Z ##[group]Getting Git version info +2026-10-29T20:20:07.9553292Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:20:07.9554690Z [command]/usr/bin/git version +2026-10-29T20:20:07.9688566Z git version 2.56.0 +2026-10-29T20:20:07.9708596Z ##[endgroup] +2026-10-29T20:20:07.9721279Z Temporarily overriding HOME='/home/runner/work/_temp/dab76f1b-076e-47c9-82db-f356fe59f7b5' before making global git config changes +2026-10-29T20:20:07.9722763Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:20:07.9729813Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:20:07.9783334Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:20:07.9787323Z ##[group]Determining repository object format +2026-10-29T20:20:07.9789492Z ##[endgroup] +2026-10-29T20:20:07.9790598Z ##[group]Initializing the repository +2026-10-29T20:20:07.9795911Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:20:07.9949030Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:20:07.9950640Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:20:07.9952858Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:20:07.9953995Z hint: call: +2026-10-29T20:20:07.9954857Z hint: +2026-10-29T20:20:07.9955643Z hint: git config --global init.defaultBranch +2026-10-29T20:20:07.9956461Z hint: +2026-10-29T20:20:07.9957226Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:20:07.9958306Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:20:07.9959477Z hint: +2026-10-29T20:20:07.9960058Z hint: git branch -m +2026-10-29T20:20:07.9960748Z hint: +2026-10-29T20:20:07.9961641Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:20:07.9962689Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:20:07.9964847Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:20:08.0019971Z ##[endgroup] +2026-10-29T20:20:08.0021173Z ##[group]Disabling automatic garbage collection +2026-10-29T20:20:08.0023314Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:20:08.0074964Z ##[endgroup] +2026-10-29T20:20:08.0076038Z ##[group]Setting up auth +2026-10-29T20:20:08.0076766Z Removing SSH command configuration +2026-10-29T20:20:08.0079867Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:20:08.0118409Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:20:08.0497256Z Removing HTTP extra header +2026-10-29T20:20:08.0503046Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:20:08.0537909Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:20:08.0759463Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:20:08.0767350Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:20:08.0804665Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:20:08.1040789Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:20:08.1093284Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:08.1136498Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:08.1209855Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:08.1250683Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:08.1287439Z ##[endgroup] +2026-10-29T20:20:08.1288536Z ##[group]Fetching the repository +2026-10-29T20:20:08.1294227Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T20:20:29.3852733Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:20:29.3853636Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:20:29.3854614Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:20:29.3855585Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:20:29.3856636Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:20:29.3857644Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:20:29.3858636Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:20:29.3859756Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:20:29.3860587Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:20:29.3861438Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:20:29.3862311Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:20:29.3863539Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:20:29.3864409Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:20:29.3865276Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:20:29.3866336Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:20:29.3867387Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:20:29.3868784Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:20:29.3870062Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:20:29.3870951Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:20:29.3871912Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:20:29.3872972Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:20:29.3874055Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:20:29.3875041Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:20:29.3875908Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:20:29.3876822Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:20:29.3877676Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:20:29.3878655Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:20:29.3880032Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:20:29.3880947Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:20:29.3882096Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:20:29.3883491Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:20:29.3884428Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:20:29.3885517Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:20:29.3886405Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:20:29.3887338Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:20:29.3888209Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:20:29.3889143Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:20:29.3890342Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:20:29.3891301Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:20:29.3892385Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:20:29.3893384Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:20:29.3894175Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:20:29.3894943Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:20:29.3895688Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:20:29.3896659Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:20:29.3897860Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:20:29.3898796Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:20:29.3899919Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:20:29.3900692Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:20:29.3901565Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:20:29.3902361Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:20:29.3903229Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:20:29.3904130Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:20:29.3904977Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:20:29.3905825Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:20:29.3906739Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:20:29.3907646Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:20:29.3908702Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:20:29.3910003Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:20:29.3911293Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:20:29.3912280Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:20:29.3913137Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:20:29.3914083Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:20:29.3914905Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:20:29.3915794Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:20:29.3916722Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:20:29.3917397Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:20:29.3918212Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:20:29.3919118Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:20:29.3920353Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:20:29.3921190Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:20:29.3921900Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:20:29.3922664Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:20:29.3923443Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:20:29.3924276Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:20:29.3925072Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:20:29.3926119Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:20:29.3927104Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:20:29.3927944Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:20:29.3928732Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:20:29.3929870Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:20:29.3930767Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:20:29.3931776Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:20:29.3932719Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:20:29.3933662Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:20:29.3934695Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:20:29.3935621Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:20:29.3936621Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:20:29.3937555Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:20:29.3938789Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:20:29.3940121Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:20:29.3941078Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:20:29.3942116Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:20:29.3943147Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:20:29.3944037Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:20:29.3945042Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:20:29.3946039Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:20:29.3947099Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:20:29.3947994Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:20:29.3948894Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:20:29.3950026Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:20:29.3951016Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:20:29.3952623Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:20:29.3953920Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:20:29.3954976Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:20:29.3955940Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:20:29.3956951Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:20:29.3957961Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:20:29.3958736Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:20:29.3959989Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:20:29.3961222Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:20:29.3962341Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:20:29.3963528Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:20:29.3964450Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:20:29.3965299Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:20:29.3966216Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:20:29.3967467Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:20:29.3968477Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:20:29.3969608Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:20:29.3970462Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:20:29.3971464Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:20:29.3972311Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:20:29.3973215Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:20:29.3974003Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:20:29.3974862Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:20:29.3976014Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:20:29.3977146Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:20:29.3977983Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:20:29.3978800Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:20:29.3979968Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:20:29.3981020Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:20:29.3982297Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:20:29.3983340Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:20:29.3984257Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:20:29.3985174Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:20:29.3986141Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:20:29.3987227Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:20:29.3988335Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:20:29.3989155Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:20:29.3990158Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:20:29.3991104Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:20:29.3991976Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:20:29.3992871Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:20:29.3993834Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:20:29.3995031Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:20:29.3996064Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:20:29.3996926Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:20:29.3997916Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:20:29.3998992Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:20:29.4000295Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:20:29.4001460Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:20:29.4002336Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:20:29.4003335Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:20:29.4004381Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:20:29.4005255Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:20:29.4006257Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:20:29.4007305Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:20:29.4008381Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:20:29.4009616Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:20:29.4010864Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:20:29.4011908Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:20:29.4012775Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:20:29.4013653Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:20:29.4014582Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:20:29.4015545Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:20:29.4016529Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:20:29.4017427Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:20:29.4018551Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:20:29.4019908Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:20:29.4021042Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:20:29.4022291Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:20:29.4023301Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:20:29.4024714Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:20:29.4025712Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:20:29.4026660Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:20:29.4027628Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:20:29.4028552Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:20:29.4029674Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:20:29.4030862Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:20:29.4031975Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:20:29.4033043Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:20:29.4033857Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:20:29.4034603Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:20:29.4035535Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:20:29.4036525Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:20:29.4037485Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:20:29.4038662Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:20:29.4039830Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:20:29.4040887Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:20:29.4041739Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:20:29.4042684Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:20:29.4043605Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:20:29.4044490Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:20:29.4045618Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:20:29.4046609Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:20:29.4047593Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:20:29.4048415Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:20:29.4049536Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:20:29.4050629Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:20:29.4051537Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:20:29.4052880Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:20:29.4053748Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:20:29.4054569Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:20:29.4055646Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:20:29.4056579Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:20:29.4058003Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:20:29.4058817Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:20:29.4059998Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:20:29.4060945Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:20:29.4061755Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:20:29.4062830Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:20:29.4064043Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:20:29.4065068Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:20:29.4066181Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:20:29.4067116Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:20:29.4068381Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:20:29.4069659Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:20:29.4070537Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:20:29.4071383Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:20:29.4072163Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:20:29.4073061Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:20:29.4073984Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:20:29.4075004Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:20:29.4076037Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:20:29.4076854Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:20:29.4077629Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:20:29.4078377Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:20:29.4079144Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:20:29.4080411Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:20:29.4081609Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:20:29.4082551Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:20:29.4083548Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:20:29.4084376Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:20:29.4085182Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:20:29.4086025Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:20:29.4087056Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:20:29.4088496Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:20:29.4089706Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:20:29.4090743Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:20:29.4091752Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:20:29.4092853Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:20:29.4093830Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:20:29.4094500Z * [new branch] main -> origin/main +2026-10-29T20:20:29.4095329Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:20:29.4096575Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:20:29.4097511Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:20:29.4098469Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:20:29.4099179Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:20:29.4100185Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:20:29.4100762Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:20:29.4101325Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:20:29.4102033Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:20:29.4102617Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:20:29.4103294Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:20:29.4103870Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:20:29.4104409Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:20:29.4106198Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T20:20:29.4106863Z origin/cbz/cold-start-node-20261029 +2026-10-29T20:20:29.4108440Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T20:20:29.4109185Z 8cde04aedf4edf9e7343ecb6b2ba5a2f844ab767 +2026-10-29T20:20:29.4110981Z ##[endgroup] +2026-10-29T20:20:29.4111610Z ##[group]Determining the checkout info +2026-10-29T20:20:29.4112801Z ##[endgroup] +2026-10-29T20:20:29.4113226Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:20:29.4114424Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:20:29.4115753Z ##[group]Checking out the ref +2026-10-29T20:20:29.4116440Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T20:20:29.7186150Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T20:20:29.7191924Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T20:20:29.7221665Z ##[endgroup] +2026-10-29T20:20:29.7268439Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:20:29.7297738Z 8cde04aedf4edf9e7343ecb6b2ba5a2f844ab767 +2026-10-29T20:20:29.7320873Z ##[group]Removing auth +2026-10-29T20:20:29.7321367Z Removing SSH command configuration +2026-10-29T20:20:29.7321988Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:20:29.7344747Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:20:29.7569930Z Removing HTTP extra header +2026-10-29T20:20:29.7572528Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:20:29.7605518Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:20:29.7827421Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:20:29.7828886Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:20:29.7863022Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:20:29.7863812Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:20:29.7864950Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:20:29.7865824Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:20:29.7872183Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:20:29.7897181Z /home/runner/work/_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:29.7905689Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-21e55304\-3fad\-400a\-a936\-3b6f85433556\.config +2026-10-29T20:20:29.7948403Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:20:29.7974413Z /home/runner/work/_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:29.7983045Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-21e55304\-3fad\-400a\-a936\-3b6f85433556\.config +2026-10-29T20:20:29.8054902Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:20:29.8080478Z /github/runner_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:29.8093387Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-21e55304\-3fad\-400a\-a936\-3b6f85433556\.config +2026-10-29T20:20:29.8133100Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:20:29.8160837Z /github/runner_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config +2026-10-29T20:20:29.8163909Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-21e55304\-3fad\-400a\-a936\-3b6f85433556\.config +2026-10-29T20:20:29.8202302Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:20:29.8420281Z Removing credentials config '/home/runner/work/_temp/git-credentials-21e55304-3fad-400a-a936-3b6f85433556.config' +2026-10-29T20:20:29.8426606Z ##[endgroup] +2026-10-29T20:20:29.8714402Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:20:29.8715190Z with: +2026-10-29T20:20:29.8715542Z python-version: 3.11 +2026-10-29T20:20:29.8716230Z check-latest: false +2026-10-29T20:20:29.8719629Z token: *** +2026-10-29T20:20:29.8720032Z update-environment: true +2026-10-29T20:20:29.8720528Z allow-prereleases: false +2026-10-29T20:20:29.8720854Z freethreaded: false +2026-10-29T20:20:29.8721148Z ##[endgroup] +2026-10-29T20:20:29.9719021Z ##[group]Installed versions +2026-10-29T20:20:29.9829368Z Successfully set up CPython (3.11.17) +2026-10-29T20:20:29.9830470Z ##[endgroup] +2026-10-29T20:20:29.9982737Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:20:29.9983921Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:20:30.0203954Z shell: /usr/bin/bash -e {0} +2026-10-29T20:20:30.0204444Z env: +2026-10-29T20:20:30.0204825Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:30.0205476Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:20:30.0206039Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:30.0206527Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:30.0207098Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:30.0207581Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:20:30.0208091Z ##[endgroup] +2026-10-29T20:20:30.2073484Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:20:30.2074804Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:20:30.2081362Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:20:30.2082489Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:20:30.2083694Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:20:30.2084699Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:20:30.2085611Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:20:30.2915245Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:20:30.3148316Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:20:30.5975261Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:20:30.6226322Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:20:30.6413570Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:20:30.6604111Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:20:30.6818652Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:20:30.7078456Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:20:30.8633599Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:20:30.8824945Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:20:30.9087399Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:20:30.9332824Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:20:30.9541578Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:20:30.9760924Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:20:31.0039912Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:20:31.0237466Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:20:31.0498116Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:20:31.0747230Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:20:31.1863950Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:20:31.2070671Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:20:31.2373318Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:20:31.2692407Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:20:31.2971531Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:20:31.3268527Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:20:31.3589147Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:20:31.3894603Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:20:31.4087867Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:20:31.4281952Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:20:31.4654728Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:20:31.4867308Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:20:31.5076528Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:20:34.5356370Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:20:34.8308192Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:20:37.2135719Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:20:37.2136465Z +2026-10-29T20:20:37.2136691Z ---------------------------------------------------------------------- +2026-10-29T20:20:37.2137317Z Ran 41 tests in 7.007s +2026-10-29T20:20:37.2137491Z +2026-10-29T20:20:37.2137585Z OK +2026-10-29T20:20:37.2338172Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:20:37.2338959Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:20:37.2381692Z shell: /usr/bin/bash -e {0} +2026-10-29T20:20:37.2382006Z env: +2026-10-29T20:20:37.2382389Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:37.2382876Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:20:37.2383363Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:37.2383878Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:37.2384305Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:37.2384758Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:20:37.2385141Z ##[endgroup] +2026-10-29T20:20:38.8237824Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:20:38.8239430Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:20:38.8240457Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:20:38.8241541Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:20:38.8242378Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:20:38.8243157Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:20:38.8244057Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:20:39.3767029Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:20:39.4006283Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:20:39.5163349Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:20:39.5406841Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:20:39.5588597Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:20:39.5783925Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:20:39.5981220Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:20:39.6163403Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:20:40.1627546Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:20:40.1824961Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:20:40.2074731Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:20:40.2295136Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:20:40.2534287Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:20:40.2726295Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:20:40.3016748Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:20:40.3211426Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:20:40.3410173Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:20:40.3657197Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:20:40.4718705Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:20:40.4906557Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:20:40.5181274Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:20:40.5473224Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:20:40.5732706Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:20:40.6093390Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:20:40.6419191Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:20:40.6718761Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:20:40.6911369Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:20:40.7197612Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:20:40.7531335Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:20:40.7722008Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:20:40.7922395Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:20:48.8204035Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:20:49.7598338Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:20:51.5846700Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:20:51.5847535Z +2026-10-29T20:20:51.5847771Z ---------------------------------------------------------------------- +2026-10-29T20:20:51.5848160Z Ran 41 tests in 12.761s +2026-10-29T20:20:51.5848317Z +2026-10-29T20:20:51.5848469Z OK +2026-10-29T20:20:51.6057203Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:20:51.6058226Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:20:51.6058992Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:20:51.6094471Z shell: /usr/bin/bash -e {0} +2026-10-29T20:20:51.6094928Z env: +2026-10-29T20:20:51.6095271Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:51.6095812Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:20:51.6096332Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:51.6096765Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:51.6097247Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:51.6097788Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:20:51.6098206Z ##[endgroup] +2026-10-29T20:20:51.6171425Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:20:53.0743040Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:20:53.2946562Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:20:53.2947788Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:20:53.2984165Z shell: /usr/bin/bash -e {0} +2026-10-29T20:20:53.2984487Z env: +2026-10-29T20:20:53.2984854Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:53.2985411Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:20:53.2985866Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:53.2986347Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:53.2986768Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:53.2987343Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:20:53.2987840Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:20:53.2988275Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:20:53.2988575Z ##[endgroup] +2026-10-29T20:20:59.6643698Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:20:59.6811657Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:20:59.6812157Z python -B -S - <<'PY' +2026-10-29T20:20:59.6812520Z import json, os +2026-10-29T20:20:59.6812780Z from pathlib import Path +2026-10-29T20:20:59.6813252Z path = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result/result.json" +2026-10-29T20:20:59.6813838Z print("CBZ_NODE_RESULT_JSON " + json.dumps(json.loads(path.read_text()), sort_keys=True)) +2026-10-29T20:20:59.6814327Z PY +2026-10-29T20:20:59.6848123Z shell: /usr/bin/bash -e {0} +2026-10-29T20:20:59.6848817Z env: +2026-10-29T20:20:59.6849125Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.6850075Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:20:59.6850563Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.6850978Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.6851536Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.6852002Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:20:59.6852409Z ##[endgroup] +2026-10-29T20:20:59.7122624Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:20:59.662975+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "ab9ebb6dbb7c2863371a04841a86bfe4656ac95016dd7e02424b1074addf6656", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "8cde04aedf4edf9e7343ecb6b2ba5a2f844ab767", "source_before": "8cde04aedf4edf9e7343ecb6b2ba5a2f844ab767", "started_utc": "2026-10-29T20:20:53.361287+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:20:59.7270108Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:20:59.7270687Z with: +2026-10-29T20:20:59.7271110Z name: cbz-node-result +2026-10-29T20:20:59.7271438Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:20:59.7271809Z if-no-files-found: error +2026-10-29T20:20:59.7272090Z compression-level: 6 +2026-10-29T20:20:59.7272366Z overwrite: false +2026-10-29T20:20:59.7272711Z include-hidden-files: false +2026-10-29T20:20:59.7272983Z archive: true +2026-10-29T20:20:59.7273204Z env: +2026-10-29T20:20:59.7273552Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.7274018Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:20:59.7274602Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.7275027Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.7275572Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:20:59.7276007Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:20:59.7276392Z ##[endgroup] +2026-10-29T20:20:59.9058883Z With the provided path, there will be 41 files uploaded +2026-10-29T20:20:59.9059712Z Artifact name is valid! +2026-10-29T20:20:59.9060036Z Root directory input is valid! +2026-10-29T20:21:00.1114933Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:21:00.1145730Z Beginning upload of artifact content to blob storage +2026-10-29T20:21:00.4955588Z Uploaded bytes 504900 +2026-10-29T20:21:00.5347210Z Finished uploading artifact content to blob storage! +2026-10-29T20:21:00.5347867Z SHA256 digest of uploaded artifact is 53f9100d6e312f9e6a916ed3a7a26cb7e2888a930f744f5836ec2d9be822c173 +2026-10-29T20:21:00.5348709Z Finalizing artifact upload +2026-10-29T20:21:00.9756472Z Artifact cbz-node-result successfully finalized. Artifact ID 12930576417 +2026-10-29T20:21:00.9757288Z Artifact cbz-node-result has been successfully uploaded! Final size is 504900 bytes. Artifact ID is 12930576417 +2026-10-29T20:21:00.9761874Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40947737439/artifacts/12930576417 +2026-10-29T20:21:00.9961828Z Post job cleanup. +2026-10-29T20:21:01.1232683Z Post job cleanup. +2026-10-29T20:21:01.2005930Z [command]/usr/bin/git version +2026-10-29T20:21:01.2047651Z git version 2.56.0 +2026-10-29T20:21:01.2091165Z Temporarily overriding HOME='/home/runner/work/_temp/c58c356f-1465-4bc1-aa8a-101cc04aec60' before making global git config changes +2026-10-29T20:21:01.2092008Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:21:01.2094957Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:21:01.2135943Z Removing SSH command configuration +2026-10-29T20:21:01.2142573Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:21:01.2177718Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:21:01.2420762Z Removing HTTP extra header +2026-10-29T20:21:01.2427692Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:21:01.2475525Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:21:01.2770843Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:21:01.2777305Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:21:01.2815252Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:21:01.3231419Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/green/b3-normal.log b/cbz/evidence/cold-start-node/green/b3-normal.log new file mode 100644 index 000000000..e2bcdd02d --- /dev/null +++ b/cbz/evidence/cold-start-node/green/b3-normal.log @@ -0,0 +1,479 @@ +2026-10-29T19:47:08.4161856Z Current runner version: '2.338.0' +2026-10-29T19:47:08.4189589Z ##[group]Runner Image Provisioner +2026-10-29T19:47:08.4190547Z Hosted Compute Agent +2026-10-29T19:47:08.4191182Z Version: 20261021.618 +2026-10-29T19:47:08.4192258Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:47:08.4193044Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:47:08.4193814Z Worker ID: {1bc91660-a990-4e93-8530-74e47785a22a} +2026-10-29T19:47:08.4194663Z Region: northcentralus +2026-10-29T19:47:08.4195293Z Cloud: Azure +2026-10-29T19:47:08.4195912Z ##[endgroup] +2026-10-29T19:47:08.4197479Z ##[group]Operating System +2026-10-29T19:47:08.4198167Z Ubuntu +2026-10-29T19:47:08.4198836Z 24.04.5 +2026-10-29T19:47:08.4199407Z LTS +2026-10-29T19:47:08.4199992Z ##[endgroup] +2026-10-29T19:47:08.4200614Z ##[group]Runner Image +2026-10-29T19:47:08.4201284Z Image: ubuntu-24.04 +2026-10-29T19:47:08.4202306Z Version: 20261025.353.1 +2026-10-29T19:47:08.4203690Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:47:08.4205352Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:47:08.4206407Z ##[endgroup] +2026-10-29T19:47:08.4208270Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:47:08.4210647Z Contents: read +2026-10-29T19:47:08.4211698Z Metadata: read +2026-10-29T19:47:08.4212434Z ##[endgroup] +2026-10-29T19:47:08.4215507Z Secret source: Actions +2026-10-29T19:47:08.4216541Z Cache mode: write +2026-10-29T19:47:08.4217698Z Prepare workflow directory +2026-10-29T19:47:08.4574860Z Prepare all required actions +2026-10-29T19:47:08.4625326Z Getting action download info +2026-10-29T19:47:08.7143634Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:47:08.8414543Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:47:09.0364009Z Complete job name: controls (0) +2026-10-29T19:47:09.1264525Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:47:09.1265583Z with: +2026-10-29T19:47:09.1266057Z persist-credentials: false +2026-10-29T19:47:09.1266571Z fetch-depth: 0 +2026-10-29T19:47:09.1267036Z repository: d6g8k5htny-coder/main +2026-10-29T19:47:09.1271281Z token: *** +2026-10-29T19:47:09.1272007Z ssh-strict: true +2026-10-29T19:47:09.1272469Z ssh-user: git +2026-10-29T19:47:09.1272898Z clean: true +2026-10-29T19:47:09.1273361Z sparse-checkout-cone-mode: true +2026-10-29T19:47:09.1273898Z fetch-tags: false +2026-10-29T19:47:09.1274354Z show-progress: true +2026-10-29T19:47:09.1274809Z lfs: false +2026-10-29T19:47:09.1275235Z submodules: false +2026-10-29T19:47:09.1275702Z set-safe-directory: true +2026-10-29T19:47:09.1276214Z allow-unsafe-pr-checkout: false +2026-10-29T19:47:09.1276953Z ##[endgroup] +2026-10-29T19:47:09.4113720Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:47:09.4116549Z ##[group]Getting Git version info +2026-10-29T19:47:09.4117584Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:47:09.4119332Z [command]/usr/bin/git version +2026-10-29T19:47:09.4208160Z git version 2.56.0 +2026-10-29T19:47:09.4233964Z ##[endgroup] +2026-10-29T19:47:09.4258404Z Temporarily overriding HOME='/home/runner/work/_temp/9ae2c054-2978-4960-93a4-7b6a194b8ce6' before making global git config changes +2026-10-29T19:47:09.4262178Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:47:09.4264833Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:47:09.4312154Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:47:09.4323509Z ##[group]Determining repository object format +2026-10-29T19:47:09.4335497Z ##[endgroup] +2026-10-29T19:47:09.4337046Z ##[group]Initializing the repository +2026-10-29T19:47:09.4338956Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:47:09.4457582Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:47:09.4459850Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:47:09.4461883Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:47:09.4463382Z hint: call: +2026-10-29T19:47:09.4464214Z hint: +2026-10-29T19:47:09.4465235Z hint: git config --global init.defaultBranch +2026-10-29T19:47:09.4466466Z hint: +2026-10-29T19:47:09.4467622Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:47:09.4469527Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:47:09.4470999Z hint: +2026-10-29T19:47:09.4472002Z hint: git branch -m +2026-10-29T19:47:09.4473060Z hint: +2026-10-29T19:47:09.4475705Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:47:09.4477863Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:47:09.4490416Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:47:09.4581801Z ##[endgroup] +2026-10-29T19:47:09.4584000Z ##[group]Disabling automatic garbage collection +2026-10-29T19:47:09.4585657Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:47:09.4623928Z ##[endgroup] +2026-10-29T19:47:09.4625696Z ##[group]Setting up auth +2026-10-29T19:47:09.4627241Z Removing SSH command configuration +2026-10-29T19:47:09.4628916Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:47:09.4691810Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:47:09.5204552Z Removing HTTP extra header +2026-10-29T19:47:09.5209834Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:47:09.5261934Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:47:09.5543028Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:47:09.5553513Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:47:09.5612779Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:47:09.5904675Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:47:09.5960457Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:09.6007513Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:09.6061143Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:09.6109386Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:09.6161796Z ##[endgroup] +2026-10-29T19:47:09.6162700Z ##[group]Fetching the repository +2026-10-29T19:47:09.6164172Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T19:47:20.6125478Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:47:20.6126580Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T19:47:20.6128274Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T19:47:20.6129451Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T19:47:20.6130728Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T19:47:20.6132003Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T19:47:20.6132837Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T19:47:20.6133675Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T19:47:20.6134448Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.6135218Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T19:47:20.6135999Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T19:47:20.6136770Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T19:47:20.6137555Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T19:47:20.6138386Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T19:47:20.6139333Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T19:47:20.6140322Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T19:47:20.6141783Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T19:47:20.6142687Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T19:47:20.6143495Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T19:47:20.6144305Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T19:47:20.6145448Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T19:47:20.6146600Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T19:47:20.6147443Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T19:47:20.6148959Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T19:47:20.6150071Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T19:47:20.6151207Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T19:47:20.6153137Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T19:47:20.6154318Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T19:47:20.6155570Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T19:47:20.6157145Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T19:47:20.6158569Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T19:47:20.6160501Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T19:47:20.6162392Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T19:47:20.6163909Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T19:47:20.6164734Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T19:47:20.6165545Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T19:47:20.6166398Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T19:47:20.6167215Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T19:47:20.6168271Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T19:47:20.6169359Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T19:47:20.6170375Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T19:47:20.6171163Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T19:47:20.6172316Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T19:47:20.6173305Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T19:47:20.6174157Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T19:47:20.6175397Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T19:47:20.6176368Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T19:47:20.6177154Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T19:47:20.6177947Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T19:47:20.6178742Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T19:47:20.6179539Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T19:47:20.6180351Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T19:47:20.6181152Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T19:47:20.6182208Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T19:47:20.6183127Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T19:47:20.6184022Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T19:47:20.6184965Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T19:47:20.6185861Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T19:47:20.6186638Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T19:47:20.6187526Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T19:47:20.6188468Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T19:47:20.6189563Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T19:47:20.6190475Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T19:47:20.6191267Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T19:47:20.6192455Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T19:47:20.6193355Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T19:47:20.6194140Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T19:47:20.6194893Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T19:47:20.6195875Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T19:47:20.6196782Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T19:47:20.6197585Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T19:47:20.6198333Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T19:47:20.6199042Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T19:47:20.6199818Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T19:47:20.6200625Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T19:47:20.6201516Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T19:47:20.6202594Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T19:47:20.6203530Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T19:47:20.6204388Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T19:47:20.6205167Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T19:47:20.6206044Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T19:47:20.6207032Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T19:47:20.6208012Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T19:47:20.6208986Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T19:47:20.6209939Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T19:47:20.6210879Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T19:47:20.6212122Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T19:47:20.6213080Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T19:47:20.6214020Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T19:47:20.6214959Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T19:47:20.6216108Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T19:47:20.6217089Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T19:47:20.6218118Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T19:47:20.6219143Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T19:47:20.6220077Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T19:47:20.6221166Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T19:47:20.6223115Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T19:47:20.6224477Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T19:47:20.6225781Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T19:47:20.6227144Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T19:47:20.6228570Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T19:47:20.6230083Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T19:47:20.6231291Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T19:47:20.6233021Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T19:47:20.6234522Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T19:47:20.6235652Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T19:47:20.6236578Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T19:47:20.6237384Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T19:47:20.6238420Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T19:47:20.6239665Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T19:47:20.6240849Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T19:47:20.6242242Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T19:47:20.6243182Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T19:47:20.6244005Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T19:47:20.6244973Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T19:47:20.6245901Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T19:47:20.6246861Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T19:47:20.6248179Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T19:47:20.6249083Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T19:47:20.6249979Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T19:47:20.6250869Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T19:47:20.6251821Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T19:47:20.6252657Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T19:47:20.6253537Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T19:47:20.6254775Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T19:47:20.6256020Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T19:47:20.6256854Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T19:47:20.6257736Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T19:47:20.6259074Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T19:47:20.6260178Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T19:47:20.6261573Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T19:47:20.6262967Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T19:47:20.6264124Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T19:47:20.6265258Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T19:47:20.6266476Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T19:47:20.6267622Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T19:47:20.6268670Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T19:47:20.6269501Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T19:47:20.6270303Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T19:47:20.6271197Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T19:47:20.6272300Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T19:47:20.6273208Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T19:47:20.6274182Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T19:47:20.6275124Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T19:47:20.6276195Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T19:47:20.6277480Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T19:47:20.6278838Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T19:47:20.6279974Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T19:47:20.6281238Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T19:47:20.6283070Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T19:47:20.6284218Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T19:47:20.6285294Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T19:47:20.6286458Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T19:47:20.6287466Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T19:47:20.6288538Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T19:47:20.6289918Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T19:47:20.6291143Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T19:47:20.6292515Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T19:47:20.6293529Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T19:47:20.6294742Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T19:47:20.6295619Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T19:47:20.6296502Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T19:47:20.6297488Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T19:47:20.6298517Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T19:47:20.6299418Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T19:47:20.6300355Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T19:47:20.6301579Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T19:47:20.6302709Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T19:47:20.6303891Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T19:47:20.6305233Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T19:47:20.6306273Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T19:47:20.6307278Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T19:47:20.6308296Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T19:47:20.6309394Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T19:47:20.6310346Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T19:47:20.6311302Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T19:47:20.6312623Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T19:47:20.6313635Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T19:47:20.6314744Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T19:47:20.6315771Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T19:47:20.6316609Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T19:47:20.6317409Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T19:47:20.6318283Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T19:47:20.6319225Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T19:47:20.6320156Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T19:47:20.6321062Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T19:47:20.6322355Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T19:47:20.6323652Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T19:47:20.6324770Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T19:47:20.6325918Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T19:47:20.6327132Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T19:47:20.6328077Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T19:47:20.6329038Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T19:47:20.6330160Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T19:47:20.6331135Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T19:47:20.6332303Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T19:47:20.6333260Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T19:47:20.6334162Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T19:47:20.6335073Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T19:47:20.6336019Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T19:47:20.6336897Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T19:47:20.6338022Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T19:47:20.6339049Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T19:47:20.6340035Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T19:47:20.6340892Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T19:47:20.6341894Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T19:47:20.6440499Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T19:47:20.6442124Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T19:47:20.6443486Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T19:47:20.6445051Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T19:47:20.6446349Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T19:47:20.6447547Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T19:47:20.6448607Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T19:47:20.6449570Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T19:47:20.6450588Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T19:47:20.6452288Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T19:47:20.6453200Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T19:47:20.6453986Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T19:47:20.6454830Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T19:47:20.6455744Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T19:47:20.6456668Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T19:47:20.6457655Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T19:47:20.6458712Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T19:47:20.6459566Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T19:47:20.6460313Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T19:47:20.6461084Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T19:47:20.6462119Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T19:47:20.6462978Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T19:47:20.6463898Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T19:47:20.6464838Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T19:47:20.6466021Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T19:47:20.6467220Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T19:47:20.6468286Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T19:47:20.6469174Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T19:47:20.6470174Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T19:47:20.6471238Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T19:47:20.6472432Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T19:47:20.6473406Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T19:47:20.6474449Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T19:47:20.6475496Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T19:47:20.6476423Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T19:47:20.6477086Z * [new branch] main -> origin/main +2026-10-29T19:47:20.6477914Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T19:47:20.6479129Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T19:47:20.6480100Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T19:47:20.6480917Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T19:47:20.6481758Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T19:47:20.6482406Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T19:47:20.6482969Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T19:47:20.6483547Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T19:47:20.6484106Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T19:47:20.6484685Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T19:47:20.6485275Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T19:47:20.6485850Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T19:47:20.6486424Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T19:47:20.6487852Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.6488550Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.6489594Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.6490127Z b3eacf768fc402ad65c9bf41e3b6b8d3c670342c +2026-10-29T19:47:20.6491177Z ##[endgroup] +2026-10-29T19:47:20.6491931Z ##[group]Determining the checkout info +2026-10-29T19:47:20.6492536Z ##[endgroup] +2026-10-29T19:47:20.6492916Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:47:20.6494075Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:47:20.6495155Z ##[group]Checking out the ref +2026-10-29T19:47:20.6496058Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:21.0938087Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:47:21.0941998Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:47:21.0977669Z ##[endgroup] +2026-10-29T19:47:21.1049175Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:47:21.1102970Z b3eacf768fc402ad65c9bf41e3b6b8d3c670342c +2026-10-29T19:47:21.1115658Z ##[group]Removing auth +2026-10-29T19:47:21.1116146Z Removing SSH command configuration +2026-10-29T19:47:21.1122517Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:47:21.1185571Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:47:21.1502332Z Removing HTTP extra header +2026-10-29T19:47:21.1507437Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:47:21.1564852Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:47:21.1859835Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:47:21.1863332Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:47:21.1913423Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:47:21.1914567Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:47:21.1915490Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:47:21.1916308Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:47:21.1925117Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:47:21.1974017Z /home/runner/work/_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:21.1987466Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-d941f47a\-4cbc\-4fef\-918c\-605e8a4e715e\.config +2026-10-29T19:47:21.2050369Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:47:21.2097531Z /home/runner/work/_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:21.2110988Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-d941f47a\-4cbc\-4fef\-918c\-605e8a4e715e\.config +2026-10-29T19:47:21.2178894Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:47:21.2229360Z /github/runner_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:21.2240180Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-d941f47a\-4cbc\-4fef\-918c\-605e8a4e715e\.config +2026-10-29T19:47:21.2301227Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:47:21.2344833Z /github/runner_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config +2026-10-29T19:47:21.2354424Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-d941f47a\-4cbc\-4fef\-918c\-605e8a4e715e\.config +2026-10-29T19:47:21.2411635Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:47:21.2712431Z Removing credentials config '/home/runner/work/_temp/git-credentials-d941f47a-4cbc-4fef-918c-605e8a4e715e.config' +2026-10-29T19:47:21.2714238Z ##[endgroup] +2026-10-29T19:47:21.3004339Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:47:21.3004784Z with: +2026-10-29T19:47:21.3005029Z python-version: 3.11 +2026-10-29T19:47:21.3005286Z check-latest: false +2026-10-29T19:47:21.3007980Z token: *** +2026-10-29T19:47:21.3008212Z update-environment: true +2026-10-29T19:47:21.3008475Z allow-prereleases: false +2026-10-29T19:47:21.3008714Z freethreaded: false +2026-10-29T19:47:21.3008944Z ##[endgroup] +2026-10-29T19:47:21.4406177Z ##[group]Installed versions +2026-10-29T19:47:21.4497856Z Successfully set up CPython (3.11.17) +2026-10-29T19:47:21.4498613Z ##[endgroup] +2026-10-29T19:47:21.4699094Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:47:21.4699816Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:47:21.4744185Z shell: /usr/bin/bash -e {0} +2026-10-29T19:47:21.4744632Z env: +2026-10-29T19:47:21.4745104Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.4745899Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:47:21.4746632Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.4747345Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.4747787Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.4748180Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:47:21.4748517Z PYTHONOPTIMIZE: 0 +2026-10-29T19:47:21.4748769Z ##[endgroup] +2026-10-29T19:47:21.6393362Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T19:47:21.6394772Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T19:47:21.6396156Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T19:47:21.6397169Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T19:47:21.6397950Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T19:47:21.6398705Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T19:47:21.7878969Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:47:21.8199120Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:47:21.8418865Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:47:21.8643827Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:47:21.8881275Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:47:21.9197573Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:47:21.9479423Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:47:21.9710650Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:47:21.9967035Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:47:22.0333301Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:47:22.0580782Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:47:22.0947833Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:47:22.1268231Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:47:22.4220338Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:47:22.4460468Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:47:22.4856041Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:47:22.5213500Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:47:22.5573959Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:47:22.5955978Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:47:22.6322810Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:47:22.6557060Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:47:22.6794064Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:47:22.7025892Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:47:22.7283320Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:47:25.0451197Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T19:47:25.3318555Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T19:47:26.2307023Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T19:47:26.2307950Z +2026-10-29T19:47:26.2308199Z ---------------------------------------------------------------------- +2026-10-29T19:47:26.2308800Z Ran 33 tests in 4.592s +2026-10-29T19:47:26.2309020Z +2026-10-29T19:47:26.2309150Z OK +2026-10-29T19:47:26.2617092Z Post job cleanup. +2026-10-29T19:47:26.4138005Z Post job cleanup. +2026-10-29T19:47:26.5168597Z [command]/usr/bin/git version +2026-10-29T19:47:26.5258972Z git version 2.56.0 +2026-10-29T19:47:26.5302387Z Temporarily overriding HOME='/home/runner/work/_temp/42e3ba7c-2d76-4801-b65d-eab58a3e305e' before making global git config changes +2026-10-29T19:47:26.5303350Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:47:26.5309243Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:47:26.5359271Z Removing SSH command configuration +2026-10-29T19:47:26.5369330Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:47:26.5422040Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:47:26.5824884Z Removing HTTP extra header +2026-10-29T19:47:26.5826587Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:47:26.5907111Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:47:26.6257580Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:47:26.6265002Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:47:26.6322042Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:47:26.6790228Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/green/b3-optimized.log b/cbz/evidence/cold-start-node/green/b3-optimized.log new file mode 100644 index 000000000..48ea9d3df --- /dev/null +++ b/cbz/evidence/cold-start-node/green/b3-optimized.log @@ -0,0 +1,479 @@ +2026-10-29T19:47:08.5532163Z Current runner version: '2.338.0' +2026-10-29T19:47:08.5554603Z ##[group]Runner Image Provisioner +2026-10-29T19:47:08.5555448Z Hosted Compute Agent +2026-10-29T19:47:08.5555966Z Version: 20261021.618 +2026-10-29T19:47:08.5556503Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:47:08.5557158Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:47:08.5557789Z Worker ID: {852e1417-c6eb-4ae7-8bbd-de31899c158f} +2026-10-29T19:47:08.5558377Z Region: westus3 +2026-10-29T19:47:08.5559017Z Cloud: Azure +2026-10-29T19:47:08.5559481Z ##[endgroup] +2026-10-29T19:47:08.5560876Z ##[group]Operating System +2026-10-29T19:47:08.5561458Z Ubuntu +2026-10-29T19:47:08.5561919Z 24.04.5 +2026-10-29T19:47:08.5562445Z LTS +2026-10-29T19:47:08.5562891Z ##[endgroup] +2026-10-29T19:47:08.5563387Z ##[group]Runner Image +2026-10-29T19:47:08.5563930Z Image: ubuntu-24.04 +2026-10-29T19:47:08.5564543Z Version: 20261025.353.1 +2026-10-29T19:47:08.5565651Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:47:08.5566932Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:47:08.5567767Z ##[endgroup] +2026-10-29T19:47:08.5569039Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:47:08.5570809Z Contents: read +2026-10-29T19:47:08.5571312Z Metadata: read +2026-10-29T19:47:08.5571878Z ##[endgroup] +2026-10-29T19:47:08.5573676Z Secret source: Actions +2026-10-29T19:47:08.5574859Z Cache mode: write +2026-10-29T19:47:08.5575633Z Prepare workflow directory +2026-10-29T19:47:08.5877758Z Prepare all required actions +2026-10-29T19:47:08.5926558Z Getting action download info +2026-10-29T19:47:08.8778338Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:47:08.9791446Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:47:09.3321873Z Complete job name: controls (1) +2026-10-29T19:47:09.4043428Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:47:09.4044413Z with: +2026-10-29T19:47:09.4044788Z persist-credentials: false +2026-10-29T19:47:09.4045202Z fetch-depth: 0 +2026-10-29T19:47:09.4045584Z repository: d6g8k5htny-coder/main +2026-10-29T19:47:09.4048975Z token: *** +2026-10-29T19:47:09.4049349Z ssh-strict: true +2026-10-29T19:47:09.4049721Z ssh-user: git +2026-10-29T19:47:09.4050082Z clean: true +2026-10-29T19:47:09.4050451Z sparse-checkout-cone-mode: true +2026-10-29T19:47:09.4050882Z fetch-tags: false +2026-10-29T19:47:09.4051253Z show-progress: true +2026-10-29T19:47:09.4051623Z lfs: false +2026-10-29T19:47:09.4051980Z submodules: false +2026-10-29T19:47:09.4052368Z set-safe-directory: true +2026-10-29T19:47:09.4052776Z allow-unsafe-pr-checkout: false +2026-10-29T19:47:09.4053361Z ##[endgroup] +2026-10-29T19:47:10.1653004Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:47:10.1655618Z ##[group]Getting Git version info +2026-10-29T19:47:10.1656314Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:47:10.1657476Z [command]/usr/bin/git version +2026-10-29T19:47:10.1746582Z git version 2.56.0 +2026-10-29T19:47:10.1762857Z ##[endgroup] +2026-10-29T19:47:10.1771832Z Temporarily overriding HOME='/home/runner/work/_temp/9e2d56cc-14f3-4607-ae0b-79b8da950cf2' before making global git config changes +2026-10-29T19:47:10.1773752Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:47:10.1777514Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:47:10.1834351Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:47:10.1837434Z ##[group]Determining repository object format +2026-10-29T19:47:10.1838766Z ##[endgroup] +2026-10-29T19:47:10.1839669Z ##[group]Initializing the repository +2026-10-29T19:47:10.1842363Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:47:10.1934603Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:47:10.1936156Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:47:10.1937477Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:47:10.1938482Z hint: call: +2026-10-29T19:47:10.1939084Z hint: +2026-10-29T19:47:10.1939872Z hint: git config --global init.defaultBranch +2026-10-29T19:47:10.1940717Z hint: +2026-10-29T19:47:10.1941512Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:47:10.1942769Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:47:10.1943777Z hint: +2026-10-29T19:47:10.1944519Z hint: git branch -m +2026-10-29T19:47:10.1945240Z hint: +2026-10-29T19:47:10.1946112Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:47:10.1947349Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:47:10.1958014Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:47:10.2006786Z ##[endgroup] +2026-10-29T19:47:10.2007450Z ##[group]Disabling automatic garbage collection +2026-10-29T19:47:10.2010655Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:47:10.2049770Z ##[endgroup] +2026-10-29T19:47:10.2051080Z ##[group]Setting up auth +2026-10-29T19:47:10.2051754Z Removing SSH command configuration +2026-10-29T19:47:10.2056934Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:47:10.2092842Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:47:10.2477602Z Removing HTTP extra header +2026-10-29T19:47:10.2482480Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:47:10.2522914Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:47:10.2729564Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:47:10.2733938Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:47:10.2781120Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:47:10.2994890Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:47:10.3040995Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:47:10.3081303Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:47:10.3121661Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:47:10.3161804Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:47:10.3197953Z ##[endgroup] +2026-10-29T19:47:10.3198600Z ##[group]Fetching the repository +2026-10-29T19:47:10.3205609Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T19:50:25.5170083Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:50:25.5171050Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T19:50:25.5177770Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T19:50:25.5178709Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T19:50:25.5179715Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T19:50:25.5180720Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T19:50:25.5181633Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T19:50:25.5182518Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T19:50:25.5183350Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:50:25.5184106Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T19:50:25.5185151Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T19:50:25.5185755Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T19:50:25.5186268Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T19:50:25.5186809Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T19:50:25.5187477Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T19:50:25.5188163Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T19:50:25.5189240Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T19:50:25.5190251Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T19:50:25.5191188Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T19:50:25.5192074Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T19:50:25.5193035Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T19:50:25.5194151Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T19:50:25.5195243Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T19:50:25.5196337Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T19:50:25.5197283Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T19:50:25.5198205Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T19:50:25.5199154Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T19:50:25.5200059Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T19:50:25.5201017Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T19:50:25.5202131Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T19:50:25.5203106Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T19:50:25.5204377Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T19:50:25.5205410Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T19:50:25.5205982Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T19:50:25.5206544Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T19:50:25.5207101Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T19:50:25.5207682Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T19:50:25.5208238Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T19:50:25.5208858Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T19:50:25.5209564Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T19:50:25.5210241Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T19:50:25.5210756Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T19:50:25.5211217Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T19:50:25.5211716Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T19:50:25.5212265Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T19:50:25.5213026Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T19:50:25.5213653Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T19:50:25.5214164Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T19:50:25.5214869Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T19:50:25.5215400Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T19:50:25.5215910Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T19:50:25.5216606Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T19:50:25.5217411Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T19:50:25.5218294Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T19:50:25.5218946Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T19:50:25.5219528Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T19:50:25.5220148Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T19:50:25.5220716Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T19:50:25.5221241Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T19:50:25.5221797Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T19:50:25.5222408Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T19:50:25.5223154Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T19:50:25.5223740Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T19:50:25.5224418Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T19:50:25.5225018Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T19:50:25.5225592Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T19:50:25.5226071Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T19:50:25.5226531Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T19:50:25.5227130Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T19:50:25.5227705Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T19:50:25.5228207Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T19:50:25.5228684Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T19:50:25.5229135Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T19:50:25.5229622Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T19:50:25.5230130Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T19:50:25.5230665Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T19:50:25.5231310Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T19:50:25.5231901Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T19:50:25.5232441Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T19:50:25.5232924Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T19:50:25.5233497Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T19:50:25.5234108Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T19:50:25.5234901Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T19:50:25.5235525Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T19:50:25.5236135Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T19:50:25.5236739Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T19:50:25.5237326Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T19:50:25.5237918Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T19:50:25.5238506Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T19:50:25.5239099Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T19:50:25.5239828Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T19:50:25.5240444Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T19:50:25.5241087Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T19:50:25.5241749Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T19:50:25.5242348Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T19:50:25.5242954Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T19:50:25.5243601Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T19:50:25.5244180Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T19:50:25.5244900Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T19:50:25.5245473Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T19:50:25.5246073Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T19:50:25.5246707Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T19:50:25.5247343Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T19:50:25.5248061Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T19:50:25.5248699Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T19:50:25.5249855Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T19:50:25.5250613Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T19:50:25.5251464Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T19:50:25.5252555Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T19:50:25.5253911Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T19:50:25.5255451Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T19:50:25.5256667Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T19:50:25.5257792Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T19:50:25.5258589Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T19:50:25.5259290Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T19:50:25.5259976Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T19:50:25.5260584Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T19:50:25.5261161Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T19:50:25.5261890Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T19:50:25.5262451Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T19:50:25.5263003Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T19:50:25.5263521Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T19:50:25.5264039Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T19:50:25.5264777Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T19:50:25.5265505Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T19:50:25.5266220Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T19:50:25.5266730Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T19:50:25.5267267Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T19:50:25.5267935Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T19:50:25.5268566Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T19:50:25.5269176Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T19:50:25.5270075Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T19:50:25.5270760Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T19:50:25.5271362Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T19:50:25.5271939Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T19:50:25.5272672Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T19:50:25.5273350Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T19:50:25.5273865Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T19:50:25.5274515Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T19:50:25.5275073Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T19:50:25.5275604Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T19:50:25.5276163Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T19:50:25.5276778Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T19:50:25.5277363Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T19:50:25.5277953Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T19:50:25.5278508Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T19:50:25.5279243Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T19:50:25.5279962Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T19:50:25.5280625Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T19:50:25.5281296Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T19:50:25.5281849Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T19:50:25.5282484Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T19:50:25.5283191Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T19:50:25.5353905Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T19:50:25.5365646Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T19:50:25.5366770Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T19:50:25.5367977Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T19:50:25.5369154Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T19:50:25.5370232Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T19:50:25.5371508Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T19:50:25.5372432Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T19:50:25.5373292Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T19:50:25.5374030Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T19:50:25.5375048Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T19:50:25.5375656Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T19:50:25.5376257Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T19:50:25.5376981Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T19:50:25.5377697Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T19:50:25.5378450Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T19:50:25.5379166Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T19:50:25.5379816Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T19:50:25.5380490Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T19:50:25.5381141Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T19:50:25.5381912Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T19:50:25.5382507Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T19:50:25.5383125Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T19:50:25.5383719Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T19:50:25.5384573Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T19:50:25.5385313Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T19:50:25.5385982Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T19:50:25.5386520Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T19:50:25.5387119Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T19:50:25.5387940Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T19:50:25.5388724Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T19:50:25.5389302Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T19:50:25.5389862Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T19:50:25.5390627Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T19:50:25.5391221Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T19:50:25.5391727Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T19:50:25.5392237Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T19:50:25.5392842Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T19:50:25.5393432Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T19:50:25.5394025Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T19:50:25.5394975Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T19:50:25.5395583Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T19:50:25.5396125Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T19:50:25.5396715Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T19:50:25.5397359Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T19:50:25.5397928Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T19:50:25.5398535Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T19:50:25.5399088Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T19:50:25.5399767Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T19:50:25.5400442Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T19:50:25.5401080Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T19:50:25.5401619Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T19:50:25.5402122Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T19:50:25.5402880Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T19:50:25.5403600Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T19:50:25.5404163Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T19:50:25.5405065Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T19:50:25.5405882Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T19:50:25.5406600Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T19:50:25.5407593Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T19:50:25.5408296Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T19:50:25.5408932Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T19:50:25.5409744Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T19:50:25.5410296Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T19:50:25.5410769Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T19:50:25.5411280Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T19:50:25.5411844Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T19:50:25.5412448Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T19:50:25.5413085Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T19:50:25.5413710Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T19:50:25.5414416Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T19:50:25.5414953Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T19:50:25.5415422Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T19:50:25.5415871Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T19:50:25.5416393Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T19:50:25.5416973Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T19:50:25.5417572Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T19:50:25.5418474Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T19:50:25.5419006Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T19:50:25.5419482Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T19:50:25.5420031Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T19:50:25.5420654Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T19:50:25.5421337Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T19:50:25.5421953Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T19:50:25.5422552Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T19:50:25.5423211Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T19:50:25.5423878Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T19:50:25.5424632Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T19:50:25.5425055Z * [new branch] main -> origin/main +2026-10-29T19:50:25.5425550Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T19:50:25.5426315Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T19:50:25.5426933Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T19:50:25.5427448Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T19:50:25.5427892Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T19:50:25.5428300Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T19:50:25.5428636Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T19:50:25.5428956Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T19:50:25.5429290Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T19:50:25.5429646Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T19:50:25.5430000Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T19:50:25.5430342Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T19:50:25.5430665Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T19:50:25.5431795Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:50:25.5432237Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:50:25.5432868Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:50:25.5433206Z b3eacf768fc402ad65c9bf41e3b6b8d3c670342c +2026-10-29T19:50:25.5433823Z ##[endgroup] +2026-10-29T19:50:25.5434140Z ##[group]Determining the checkout info +2026-10-29T19:50:25.5434654Z ##[endgroup] +2026-10-29T19:50:25.5434856Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:50:25.5435468Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:50:25.5436129Z ##[group]Checking out the ref +2026-10-29T19:50:25.5436594Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:50:25.8899351Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:50:25.8903246Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:50:25.8933432Z ##[endgroup] +2026-10-29T19:50:25.8988782Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:50:25.9023096Z b3eacf768fc402ad65c9bf41e3b6b8d3c670342c +2026-10-29T19:50:25.9034927Z ##[group]Removing auth +2026-10-29T19:50:25.9035191Z Removing SSH command configuration +2026-10-29T19:50:25.9036738Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:50:25.9077738Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:50:25.9291734Z Removing HTTP extra header +2026-10-29T19:50:25.9295281Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:50:25.9333455Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:50:25.9548709Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:50:25.9551304Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:50:25.9587840Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:50:25.9588308Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:50:25.9588644Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:50:25.9588933Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:50:25.9597100Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:50:25.9631690Z /home/runner/work/_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:50:25.9641144Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-a558b979\-a634\-4a67\-8e3b\-1c21a380fe20\.config +2026-10-29T19:50:25.9682305Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:50:25.9712487Z /home/runner/work/_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:50:25.9719544Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-a558b979\-a634\-4a67\-8e3b\-1c21a380fe20\.config +2026-10-29T19:50:25.9761990Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:50:25.9793770Z /github/runner_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:50:25.9800483Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-a558b979\-a634\-4a67\-8e3b\-1c21a380fe20\.config +2026-10-29T19:50:25.9839912Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:50:25.9870483Z /github/runner_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config +2026-10-29T19:50:25.9876439Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-a558b979\-a634\-4a67\-8e3b\-1c21a380fe20\.config +2026-10-29T19:50:25.9915911Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:50:26.0130310Z Removing credentials config '/home/runner/work/_temp/git-credentials-a558b979-a634-4a67-8e3b-1c21a380fe20.config' +2026-10-29T19:50:26.0136463Z ##[endgroup] +2026-10-29T19:50:26.0355594Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:50:26.0355925Z with: +2026-10-29T19:50:26.0356104Z python-version: 3.11 +2026-10-29T19:50:26.0356294Z check-latest: false +2026-10-29T19:50:26.0358433Z token: *** +2026-10-29T19:50:26.0358607Z update-environment: true +2026-10-29T19:50:26.0358814Z allow-prereleases: false +2026-10-29T19:50:26.0358996Z freethreaded: false +2026-10-29T19:50:26.0359174Z ##[endgroup] +2026-10-29T19:50:26.1379552Z ##[group]Installed versions +2026-10-29T19:50:26.1689460Z Successfully set up CPython (3.11.17) +2026-10-29T19:50:26.1690137Z ##[endgroup] +2026-10-29T19:50:26.1863738Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:50:26.1864513Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:50:26.2039980Z shell: /usr/bin/bash -e {0} +2026-10-29T19:50:26.2040479Z env: +2026-10-29T19:50:26.2040996Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:50:26.2041755Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:50:26.2042479Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:50:26.2043116Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:50:26.2043745Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:50:26.2044553Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:50:26.2045077Z PYTHONOPTIMIZE: 1 +2026-10-29T19:50:26.2045331Z ##[endgroup] +2026-10-29T19:50:28.6361020Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T19:50:28.6362047Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T19:50:28.6362774Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T19:50:28.6363395Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T19:50:28.6363966Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T19:50:28.6364869Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T19:50:29.7060146Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:50:29.7815607Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:50:29.7986250Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:50:29.8152007Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:50:29.8315615Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:50:29.8535480Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:50:29.8730490Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:50:29.8898254Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:50:29.9073714Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:50:29.9318040Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:50:29.9482338Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:50:29.9740666Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:50:29.9931983Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:50:30.2627037Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:50:30.2797752Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:50:30.3058832Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:50:30.3299416Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:50:30.3558994Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:50:30.4016486Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:50:30.4271972Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:50:30.4436396Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:50:30.4693509Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:50:30.4853659Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:50:30.5028134Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:50:35.4353617Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T19:50:36.1200046Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T19:50:37.2653325Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T19:50:37.2653814Z +2026-10-29T19:50:37.2653956Z ---------------------------------------------------------------------- +2026-10-29T19:50:37.2654456Z Ran 33 tests in 8.629s +2026-10-29T19:50:37.2654582Z +2026-10-29T19:50:37.2654653Z OK +2026-10-29T19:50:37.2859666Z Post job cleanup. +2026-10-29T19:50:37.3989998Z Post job cleanup. +2026-10-29T19:50:37.4713288Z [command]/usr/bin/git version +2026-10-29T19:50:37.4759859Z git version 2.56.0 +2026-10-29T19:50:37.4791544Z Temporarily overriding HOME='/home/runner/work/_temp/dbc640c3-3437-44a8-ae67-d5881e052159' before making global git config changes +2026-10-29T19:50:37.4792466Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:50:37.4796196Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:50:37.4843334Z Removing SSH command configuration +2026-10-29T19:50:37.4844888Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:50:37.4880978Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:50:37.5126622Z Removing HTTP extra header +2026-10-29T19:50:37.5127384Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:50:37.5157120Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:50:37.5388154Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:50:37.5395659Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:50:37.5439491Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:50:37.5812804Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/green/b3-prepared.log b/cbz/evidence/cold-start-node/green/b3-prepared.log new file mode 100644 index 000000000..e25e269a0 --- /dev/null +++ b/cbz/evidence/cold-start-node/green/b3-prepared.log @@ -0,0 +1,847 @@ +2026-10-29T19:47:07.9101244Z Current runner version: '2.338.0' +2026-10-29T19:47:07.9129745Z ##[group]Runner Image Provisioner +2026-10-29T19:47:07.9130789Z Hosted Compute Agent +2026-10-29T19:47:07.9131579Z Version: 20261021.618 +2026-10-29T19:47:07.9132400Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:47:07.9133263Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:47:07.9134356Z Worker ID: {02cd0c0c-87bc-424b-9795-9119b7687884} +2026-10-29T19:47:07.9135234Z Region: eastus +2026-10-29T19:47:07.9135973Z Cloud: Azure +2026-10-29T19:47:07.9136700Z ##[endgroup] +2026-10-29T19:47:07.9138288Z ##[group]Operating System +2026-10-29T19:47:07.9139172Z Ubuntu +2026-10-29T19:47:07.9139871Z 24.04.5 +2026-10-29T19:47:07.9140567Z LTS +2026-10-29T19:47:07.9141248Z ##[endgroup] +2026-10-29T19:47:07.9141873Z ##[group]Runner Image +2026-10-29T19:47:07.9143165Z Image: ubuntu-24.04 +2026-10-29T19:47:07.9144035Z Version: 20261025.353.1 +2026-10-29T19:47:07.9145741Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:47:07.9147788Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:47:07.9149055Z ##[endgroup] +2026-10-29T19:47:07.9150498Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:47:07.9152896Z Contents: read +2026-10-29T19:47:07.9153596Z Metadata: read +2026-10-29T19:47:07.9154552Z ##[endgroup] +2026-10-29T19:47:07.9156986Z Secret source: Actions +2026-10-29T19:47:07.9158201Z Cache mode: write +2026-10-29T19:47:07.9159364Z Prepare workflow directory +2026-10-29T19:47:07.9529938Z Prepare all required actions +2026-10-29T19:47:07.9585756Z Getting action download info +2026-10-29T19:47:08.1330662Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:47:08.2278822Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:47:08.3579497Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T19:47:08.5569804Z Complete job name: prepared +2026-10-29T19:47:08.6312787Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:47:08.6313614Z with: +2026-10-29T19:47:08.6314228Z persist-credentials: false +2026-10-29T19:47:08.6314638Z fetch-depth: 0 +2026-10-29T19:47:08.6315006Z repository: d6g8k5htny-coder/main +2026-10-29T19:47:08.6318131Z token: *** +2026-10-29T19:47:08.6318556Z ssh-strict: true +2026-10-29T19:47:08.6318907Z ssh-user: git +2026-10-29T19:47:08.6319245Z clean: true +2026-10-29T19:47:08.6319598Z sparse-checkout-cone-mode: true +2026-10-29T19:47:08.6320009Z fetch-tags: false +2026-10-29T19:47:08.6320363Z show-progress: true +2026-10-29T19:47:08.6320719Z lfs: false +2026-10-29T19:47:08.6321041Z submodules: false +2026-10-29T19:47:08.6321392Z set-safe-directory: true +2026-10-29T19:47:08.6321795Z allow-unsafe-pr-checkout: false +2026-10-29T19:47:08.6322413Z ##[endgroup] +2026-10-29T19:47:08.8746741Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:47:08.8749385Z ##[group]Getting Git version info +2026-10-29T19:47:08.8750331Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:47:08.8751767Z [command]/usr/bin/git version +2026-10-29T19:47:08.8830291Z git version 2.56.0 +2026-10-29T19:47:08.8849709Z ##[endgroup] +2026-10-29T19:47:08.8868532Z Temporarily overriding HOME='/home/runner/work/_temp/37967788-c839-4572-b154-5c348ecdfb33' before making global git config changes +2026-10-29T19:47:08.8870863Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:47:08.8876390Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:47:08.8923466Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:47:08.8927224Z ##[group]Determining repository object format +2026-10-29T19:47:08.8928581Z ##[endgroup] +2026-10-29T19:47:08.8930267Z ##[group]Initializing the repository +2026-10-29T19:47:08.8934210Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:47:08.9063423Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:47:08.9064928Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:47:08.9066048Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:47:08.9067127Z hint: call: +2026-10-29T19:47:08.9067712Z hint: +2026-10-29T19:47:08.9068415Z hint: git config --global init.defaultBranch +2026-10-29T19:47:08.9069244Z hint: +2026-10-29T19:47:08.9069994Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:47:08.9070831Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:47:08.9071703Z hint: +2026-10-29T19:47:08.9072297Z hint: git branch -m +2026-10-29T19:47:08.9072957Z hint: +2026-10-29T19:47:08.9073951Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:47:08.9074937Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:47:08.9081638Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:47:08.9139048Z ##[endgroup] +2026-10-29T19:47:08.9140292Z ##[group]Disabling automatic garbage collection +2026-10-29T19:47:08.9142930Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:47:08.9188836Z ##[endgroup] +2026-10-29T19:47:08.9190649Z ##[group]Setting up auth +2026-10-29T19:47:08.9206161Z Removing SSH command configuration +2026-10-29T19:47:08.9236602Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:47:08.9268418Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:47:08.9672292Z Removing HTTP extra header +2026-10-29T19:47:08.9678161Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:47:08.9720007Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:47:08.9938416Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:47:08.9941690Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:47:08.9996711Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:47:09.0224008Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:47:09.0274950Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:09.0317302Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:09.0359186Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:09.0401901Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:09.0442710Z ##[endgroup] +2026-10-29T19:47:09.0443401Z ##[group]Fetching the repository +2026-10-29T19:47:09.0449340Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T19:47:20.4391115Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:47:20.4391992Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T19:47:20.4392860Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T19:47:20.4393458Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T19:47:20.4394608Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T19:47:20.4395519Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T19:47:20.4396411Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T19:47:20.4397287Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T19:47:20.4398155Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.4398976Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T19:47:20.4399824Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T19:47:20.4400656Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T19:47:20.4401486Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T19:47:20.4402407Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T19:47:20.4403439Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T19:47:20.4404734Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T19:47:20.4406236Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T19:47:20.4407377Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T19:47:20.4408374Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T19:47:20.4409329Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T19:47:20.4410325Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T19:47:20.4411397Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T19:47:20.4412395Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T19:47:20.4413247Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T19:47:20.4414323Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T19:47:20.4415315Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T19:47:20.4416364Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T19:47:20.4417373Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T19:47:20.4418391Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T19:47:20.4419526Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T19:47:20.4420782Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T19:47:20.4421722Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T19:47:20.4422991Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T19:47:20.4423598Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T19:47:20.4424403Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T19:47:20.4425002Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T19:47:20.4425641Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T19:47:20.4426285Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T19:47:20.4426960Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T19:47:20.4427702Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T19:47:20.4428424Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T19:47:20.4428995Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T19:47:20.4429507Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T19:47:20.4430043Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T19:47:20.4430710Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T19:47:20.4431526Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T19:47:20.4432190Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T19:47:20.4432741Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T19:47:20.4433458Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T19:47:20.4434396Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T19:47:20.4435235Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T19:47:20.4435965Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T19:47:20.4436555Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T19:47:20.4437144Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T19:47:20.4437728Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T19:47:20.4438350Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T19:47:20.4439013Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T19:47:20.4439630Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T19:47:20.4440187Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T19:47:20.4440789Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T19:47:20.4441644Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T19:47:20.4442286Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T19:47:20.4442920Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T19:47:20.4443471Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T19:47:20.4444261Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T19:47:20.4444885Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T19:47:20.4445425Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T19:47:20.4445942Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T19:47:20.4446603Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T19:47:20.4447233Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T19:47:20.4447785Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T19:47:20.4448311Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T19:47:20.4448805Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T19:47:20.4449344Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T19:47:20.4449903Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T19:47:20.4450420Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T19:47:20.4451105Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T19:47:20.4451741Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T19:47:20.4452322Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T19:47:20.4452862Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T19:47:20.4453462Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T19:47:20.4454261Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T19:47:20.4454923Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T19:47:20.4455575Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T19:47:20.4456221Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T19:47:20.4456868Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T19:47:20.4457520Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T19:47:20.4458174Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T19:47:20.4458823Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T19:47:20.4459594Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T19:47:20.4460254Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T19:47:20.4460902Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T19:47:20.4461596Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T19:47:20.4462298Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T19:47:20.4462945Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T19:47:20.4463594Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T19:47:20.4464470Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T19:47:20.4465099Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T19:47:20.4465756Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T19:47:20.4466736Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T19:47:20.4467398Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T19:47:20.4468491Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T19:47:20.4469625Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T19:47:20.4470901Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T19:47:20.4472065Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T19:47:20.4473239Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T19:47:20.4474516Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T19:47:20.4475306Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T19:47:20.4476031Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T19:47:20.4476925Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T19:47:20.4477883Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T19:47:20.4478682Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T19:47:20.4548479Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T19:47:20.4549362Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T19:47:20.4550311Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T19:47:20.4551234Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T19:47:20.4552488Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T19:47:20.4553403Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T19:47:20.4554550Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T19:47:20.4555539Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T19:47:20.4556527Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T19:47:20.4557452Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T19:47:20.4558403Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T19:47:20.4559358Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T19:47:20.4560688Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T19:47:20.4561917Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T19:47:20.4562728Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T19:47:20.4563336Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T19:47:20.4564313Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T19:47:20.4564990Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T19:47:20.4565659Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T19:47:20.4566529Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T19:47:20.4567232Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T19:47:20.4568221Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T19:47:20.4569219Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T19:47:20.4570461Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T19:47:20.4571537Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T19:47:20.4572499Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T19:47:20.4573468Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T19:47:20.4574639Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T19:47:20.4575587Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T19:47:20.4576593Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T19:47:20.4577737Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T19:47:20.4578979Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T19:47:20.4580051Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T19:47:20.4581221Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T19:47:20.4582319Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T19:47:20.4583536Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T19:47:20.4584882Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T19:47:20.4586091Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T19:47:20.4587087Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T19:47:20.4588199Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T19:47:20.4589449Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T19:47:20.4590442Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T19:47:20.4591400Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T19:47:20.4592644Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T19:47:20.4593386Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T19:47:20.4594323Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T19:47:20.4595019Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T19:47:20.4595790Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T19:47:20.4596387Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T19:47:20.4596978Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T19:47:20.4597645Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T19:47:20.4598349Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T19:47:20.4598961Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T19:47:20.4599599Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T19:47:20.4600339Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T19:47:20.4601098Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T19:47:20.4601886Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T19:47:20.4602874Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T19:47:20.4604103Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T19:47:20.4605246Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T19:47:20.4606143Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T19:47:20.4606783Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T19:47:20.4607410Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T19:47:20.4608063Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T19:47:20.4608703Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T19:47:20.4609374Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T19:47:20.4610118Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T19:47:20.4610815Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T19:47:20.4611372Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T19:47:20.4611885Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T19:47:20.4612461Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T19:47:20.4613092Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T19:47:20.4613883Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T19:47:20.4614507Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T19:47:20.4615205Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T19:47:20.4616009Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T19:47:20.4616928Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T19:47:20.4617832Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T19:47:20.4618888Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T19:47:20.4620030Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T19:47:20.4621127Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T19:47:20.4622407Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T19:47:20.4623560Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T19:47:20.4624827Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T19:47:20.4625985Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T19:47:20.4626972Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T19:47:20.4627969Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T19:47:20.4629005Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T19:47:20.4630228Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T19:47:20.4631200Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T19:47:20.4632337Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T19:47:20.4633442Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T19:47:20.4634618Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T19:47:20.4635507Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T19:47:20.4636357Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T19:47:20.4637287Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T19:47:20.4638156Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T19:47:20.4638897Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T19:47:20.4639744Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T19:47:20.4640542Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T19:47:20.4641224Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T19:47:20.4641865Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T19:47:20.4642533Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T19:47:20.4643381Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T19:47:20.4644473Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T19:47:20.4645219Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T19:47:20.4646041Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T19:47:20.4646655Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T19:47:20.4647292Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T19:47:20.4648384Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T19:47:20.4649514Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T19:47:20.4650168Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T19:47:20.4650680Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T19:47:20.4651188Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T19:47:20.4651690Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T19:47:20.4652253Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T19:47:20.4652859Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T19:47:20.4653663Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T19:47:20.4654557Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T19:47:20.4655130Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T19:47:20.4655645Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T19:47:20.4656243Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T19:47:20.4656909Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T19:47:20.4657648Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T19:47:20.4658323Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T19:47:20.4658965Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T19:47:20.4659670Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T19:47:20.4660386Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T19:47:20.4661023Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T19:47:20.4661480Z * [new branch] main -> origin/main +2026-10-29T19:47:20.4662020Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T19:47:20.4662847Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T19:47:20.4663499Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T19:47:20.4664194Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T19:47:20.4664693Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T19:47:20.4665161Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T19:47:20.4665536Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T19:47:20.4665908Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T19:47:20.4666277Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T19:47:20.4666661Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T19:47:20.4667060Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T19:47:20.4667555Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T19:47:20.4667988Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T19:47:20.4669269Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.4669744Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.4670471Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.4670921Z b3eacf768fc402ad65c9bf41e3b6b8d3c670342c +2026-10-29T19:47:20.4671689Z ##[endgroup] +2026-10-29T19:47:20.4672041Z ##[group]Determining the checkout info +2026-10-29T19:47:20.4672499Z ##[endgroup] +2026-10-29T19:47:20.4672736Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:47:20.4673481Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:47:20.4674693Z ##[group]Checking out the ref +2026-10-29T19:47:20.4675215Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:47:20.8028047Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:47:20.8031268Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:47:20.8062933Z ##[endgroup] +2026-10-29T19:47:20.8118011Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:47:20.8153594Z b3eacf768fc402ad65c9bf41e3b6b8d3c670342c +2026-10-29T19:47:20.8162313Z ##[group]Removing auth +2026-10-29T19:47:20.8162682Z Removing SSH command configuration +2026-10-29T19:47:20.8166817Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:47:20.8210478Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:47:20.8430403Z Removing HTTP extra header +2026-10-29T19:47:20.8433592Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:47:20.8475693Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:47:20.8694916Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:47:20.8704651Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:47:20.8743592Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:47:20.8744877Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:47:20.8745623Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:47:20.8746301Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:47:20.8753164Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:47:20.8787874Z /home/runner/work/_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:20.8798713Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-94b44e1b\-5c57\-4bb6\-aa82\-489df530557d\.config +2026-10-29T19:47:20.8845507Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:47:20.8878437Z /home/runner/work/_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:20.8888418Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-94b44e1b\-5c57\-4bb6\-aa82\-489df530557d\.config +2026-10-29T19:47:20.8941497Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:47:20.8977546Z /github/runner_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:20.8985957Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-94b44e1b\-5c57\-4bb6\-aa82\-489df530557d\.config +2026-10-29T19:47:20.9028822Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:47:20.9059053Z /github/runner_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config +2026-10-29T19:47:20.9064932Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-94b44e1b\-5c57\-4bb6\-aa82\-489df530557d\.config +2026-10-29T19:47:20.9107570Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:47:20.9332565Z Removing credentials config '/home/runner/work/_temp/git-credentials-94b44e1b-5c57-4bb6-aa82-489df530557d.config' +2026-10-29T19:47:20.9340948Z ##[endgroup] +2026-10-29T19:47:20.9568688Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:47:20.9569004Z with: +2026-10-29T19:47:20.9569172Z python-version: 3.11 +2026-10-29T19:47:20.9569354Z check-latest: false +2026-10-29T19:47:20.9571181Z token: *** +2026-10-29T19:47:20.9571359Z update-environment: true +2026-10-29T19:47:20.9571572Z allow-prereleases: false +2026-10-29T19:47:20.9571755Z freethreaded: false +2026-10-29T19:47:20.9571934Z ##[endgroup] +2026-10-29T19:47:21.0576529Z ##[group]Installed versions +2026-10-29T19:47:21.0646364Z Successfully set up CPython (3.11.17) +2026-10-29T19:47:21.0646965Z ##[endgroup] +2026-10-29T19:47:21.0804520Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T19:47:21.0805511Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T19:47:21.0806388Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T19:47:21.0844193Z shell: /usr/bin/bash -e {0} +2026-10-29T19:47:21.0844522Z env: +2026-10-29T19:47:21.0844859Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.0845431Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:47:21.0845973Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.0846444Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.0846918Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:21.0847444Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:47:21.0847852Z ##[endgroup] +2026-10-29T19:47:21.0965063Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T19:47:23.7884607Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T19:47:25.0012077Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T19:47:25.0012899Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T19:47:25.0032036Z shell: /usr/bin/bash -e {0} +2026-10-29T19:47:25.0032247Z env: +2026-10-29T19:47:25.0032469Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:25.0032821Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:47:25.0033152Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:25.0033451Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:25.0033924Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:25.0034221Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:47:25.0034524Z ##[endgroup] +2026-10-29T19:47:32.1206728Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T19:47:32.1342666Z ##[group]Run python -B -S - <<'PY' +2026-10-29T19:47:32.1342958Z python -B -S - <<'PY' +2026-10-29T19:47:32.1343184Z import json, os +2026-10-29T19:47:32.1343385Z from pathlib import Path +2026-10-29T19:47:32.1343854Z path = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result/result.json" +2026-10-29T19:47:32.1344292Z print("CBZ_NODE_RESULT_JSON " + path.read_text().strip()) +2026-10-29T19:47:32.1344569Z PY +2026-10-29T19:47:32.1362488Z shell: /usr/bin/bash -e {0} +2026-10-29T19:47:32.1362692Z env: +2026-10-29T19:47:32.1362913Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1363265Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:47:32.1363597Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1364350Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1364687Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1364984Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:47:32.1365245Z ##[endgroup] +2026-10-29T19:47:32.1567859Z CBZ_NODE_RESULT_JSON { +2026-10-29T19:47:32.1568159Z "command": [ +2026-10-29T19:47:32.1568401Z "node", +2026-10-29T19:47:32.1568626Z "--test", +2026-10-29T19:47:32.1568881Z "--test-reporter=tap", +2026-10-29T19:47:32.1569204Z "tests/fixtures/museum_fixture.mjs", +2026-10-29T19:47:32.1569554Z "tests/test_atlas_controls.mjs", +2026-10-29T19:47:32.1569887Z "tests/test_atlas_formal_evidence.mjs", +2026-10-29T19:47:32.1587262Z "tests/test_atlas_formal_source_bridge.mjs", +2026-10-29T19:47:32.1587631Z "tests/test_atlas_reader_experience.mjs", +2026-10-29T19:47:32.1587987Z "tests/test_atlas_relationships.mjs", +2026-10-29T19:47:32.1588358Z "tests/test_atlas_resilience.mjs", +2026-10-29T19:47:32.1588714Z "tests/test_atlas_spatial.mjs", +2026-10-29T19:47:32.1589047Z "tests/test_atlas_spatial_labels.mjs", +2026-10-29T19:47:32.1589389Z "tests/test_brand_identity.mjs", +2026-10-29T19:47:32.1589710Z "tests/test_catalog_query.mjs", +2026-10-29T19:47:32.1590017Z "tests/test_compare_categories.mjs", +2026-10-29T19:47:32.1590237Z "tests/test_compare_source_panel.mjs", +2026-10-29T19:47:32.1590470Z "tests/test_current_inventory_acquisition.mjs", +2026-10-29T19:47:32.1590734Z "tests/test_current_observation_coherence.mjs", +2026-10-29T19:47:32.1590988Z "tests/test_current_site.mjs", +2026-10-29T19:47:32.1591206Z "tests/test_current_site_resume.mjs", +2026-10-29T19:47:32.1591428Z "tests/test_current_site_shell.mjs", +2026-10-29T19:47:32.1591646Z "tests/test_curvature_export.mjs", +2026-10-29T19:47:32.1591864Z "tests/test_dependency_viewer.mjs", +2026-10-29T19:47:32.1592079Z "tests/test_explore_models.mjs", +2026-10-29T19:47:32.1592294Z "tests/test_figure_png.mjs", +2026-10-29T19:47:32.1592496Z "tests/test_library_discovery.mjs", +2026-10-29T19:47:32.1592715Z "tests/test_library_source_search.mjs", +2026-10-29T19:47:32.1592937Z "tests/test_measurement_model.mjs", +2026-10-29T19:47:32.1593156Z "tests/test_museum_conditionals.mjs", +2026-10-29T19:47:32.1593380Z "tests/test_museum_conditionals_cli.mjs", +2026-10-29T19:47:32.1593618Z "tests/test_museum_conditionals_paths.mjs", +2026-10-29T19:47:32.1594064Z "tests/test_museum_conditionals_startup.mjs", +2026-10-29T19:47:32.1594303Z "tests/test_museum_frontend.mjs", +2026-10-29T19:47:32.1594513Z "tests/test_museum_geometry.mjs", +2026-10-29T19:47:32.1594722Z "tests/test_museum_identity.mjs", +2026-10-29T19:47:32.1594928Z "tests/test_node_status_atlas.mjs", +2026-10-29T19:47:32.1595139Z "tests/test_palette_export.mjs", +2026-10-29T19:47:32.1595350Z "tests/test_pin_export.mjs", +2026-10-29T19:47:32.1595564Z "tests/test_public_shop_app.mjs", +2026-10-29T19:47:32.1595788Z "tests/test_public_shop_frontend.mjs", +2026-10-29T19:47:32.1596009Z "tests/test_reader_experience.mjs", +2026-10-29T19:47:32.1596538Z "tests/test_reader_jump.mjs", +2026-10-29T19:47:32.1596749Z "tests/test_reader_navigation.mjs", +2026-10-29T19:47:32.1596969Z "tests/test_reading_list_citation.mjs", +2026-10-29T19:47:32.1597194Z "tests/test_research_desk.mjs", +2026-10-29T19:47:32.1597467Z "tests/test_snapshot_compare.mjs", +2026-10-29T19:47:32.1597767Z "tests/test_source_quote.mjs", +2026-10-29T19:47:32.1598060Z "tests/test_source_reference.mjs", +2026-10-29T19:47:32.1598375Z "tests/test_teaching_export.mjs", +2026-10-29T19:47:32.1598704Z "tests/test_workspace_navigation.mjs" +2026-10-29T19:47:32.1599034Z ], +2026-10-29T19:47:32.1599285Z "final_cbz_certification": false, +2026-10-29T19:47:32.1599635Z "finished_utc": "2026-10-29T19:47:32.119259+00:00", +2026-10-29T19:47:32.1600030Z "fixture_environment": { +2026-10-29T19:47:32.1600502Z "MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", +2026-10-29T19:47:32.1601482Z "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", +2026-10-29T19:47:32.1601945Z "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-" +2026-10-29T19:47:32.1602248Z }, +2026-10-29T19:47:32.1602396Z "fixtures": [ +2026-10-29T19:47:32.1602555Z { +2026-10-29T19:47:32.1602704Z "bytes": 1090, +2026-10-29T19:47:32.1602916Z "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", +2026-10-29T19:47:32.1603196Z "path": "coefficients/side24_v1/ENCLOSURE.json", +2026-10-29T19:47:32.1603453Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1603924Z "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811" +2026-10-29T19:47:32.1604226Z }, +2026-10-29T19:47:32.1604370Z { +2026-10-29T19:47:32.1604518Z "bytes": 10272, +2026-10-29T19:47:32.1604735Z "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", +2026-10-29T19:47:32.1605008Z "path": "coefficients/side24_v1/PROOF.md", +2026-10-29T19:47:32.1605253Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1605570Z "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769" +2026-10-29T19:47:32.1605864Z }, +2026-10-29T19:47:32.1606001Z { +2026-10-29T19:47:32.1606141Z "bytes": 18262, +2026-10-29T19:47:32.1606339Z "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", +2026-10-29T19:47:32.1606610Z "path": "imports/hardening_ebedb780/MANIFEST.json", +2026-10-29T19:47:32.1606868Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1607167Z "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3" +2026-10-29T19:47:32.1607458Z }, +2026-10-29T19:47:32.1607597Z { +2026-10-29T19:47:32.1607738Z "bytes": 4623, +2026-10-29T19:47:32.1607942Z "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", +2026-10-29T19:47:32.1608222Z "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", +2026-10-29T19:47:32.1608494Z "repository": "d6g8k5htny-coder/query-", +2026-10-29T19:47:32.1608795Z "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828" +2026-10-29T19:47:32.1609076Z }, +2026-10-29T19:47:32.1609223Z { +2026-10-29T19:47:32.1609369Z "bytes": 17734, +2026-10-29T19:47:32.1609566Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1609853Z "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", +2026-10-29T19:47:32.1610137Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1610437Z "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a" +2026-10-29T19:47:32.1610721Z }, +2026-10-29T19:47:32.1610858Z { +2026-10-29T19:47:32.1611003Z "bytes": 10272, +2026-10-29T19:47:32.1611194Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1611447Z "path": "coefficients/side24_v1/PROOF.md", +2026-10-29T19:47:32.1611682Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1612121Z "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769" +2026-10-29T19:47:32.1612421Z }, +2026-10-29T19:47:32.1612561Z { +2026-10-29T19:47:32.1612705Z "bytes": 18355, +2026-10-29T19:47:32.1612905Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1613172Z "path": "frontiers/remote_window_20260924/PROOF.md", +2026-10-29T19:47:32.1613423Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1613909Z "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7" +2026-10-29T19:47:32.1614213Z }, +2026-10-29T19:47:32.1614356Z { +2026-10-29T19:47:32.1614503Z "bytes": 16948, +2026-10-29T19:47:32.1614698Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1614977Z "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", +2026-10-29T19:47:32.1615233Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1615648Z "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05" +2026-10-29T19:47:32.1615958Z }, +2026-10-29T19:47:32.1616102Z { +2026-10-29T19:47:32.1616260Z "bytes": 17646, +2026-10-29T19:47:32.1616464Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1616770Z "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", +2026-10-29T19:47:32.1617061Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1617365Z "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b" +2026-10-29T19:47:32.1617652Z }, +2026-10-29T19:47:32.1617799Z { +2026-10-29T19:47:32.1617950Z "bytes": 15902, +2026-10-29T19:47:32.1618157Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1618456Z "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", +2026-10-29T19:47:32.1618749Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1619065Z "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d" +2026-10-29T19:47:32.1619351Z }, +2026-10-29T19:47:32.1619497Z { +2026-10-29T19:47:32.1619645Z "bytes": 10858, +2026-10-29T19:47:32.1619842Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1620106Z "path": "frontiers/axial_density_20260925/PROOF.md", +2026-10-29T19:47:32.1620370Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1620680Z "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4" +2026-10-29T19:47:32.1620969Z }, +2026-10-29T19:47:32.1621110Z { +2026-10-29T19:47:32.1621307Z "bytes": 9902, +2026-10-29T19:47:32.1621509Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1621836Z "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", +2026-10-29T19:47:32.1622147Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1622450Z "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36" +2026-10-29T19:47:32.1622734Z }, +2026-10-29T19:47:32.1622870Z { +2026-10-29T19:47:32.1623017Z "bytes": 3272, +2026-10-29T19:47:32.1623206Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1623535Z "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", +2026-10-29T19:47:32.1624016Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1624318Z "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6" +2026-10-29T19:47:32.1624609Z }, +2026-10-29T19:47:32.1624749Z { +2026-10-29T19:47:32.1624890Z "bytes": 2266, +2026-10-29T19:47:32.1625076Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1625365Z "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", +2026-10-29T19:47:32.1625648Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1625944Z "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b" +2026-10-29T19:47:32.1626236Z }, +2026-10-29T19:47:32.1626377Z { +2026-10-29T19:47:32.1626629Z "bytes": 11352, +2026-10-29T19:47:32.1626828Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1627084Z "path": "frontiers/full_price_20260924/PROOF.md", +2026-10-29T19:47:32.1627321Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1627621Z "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9" +2026-10-29T19:47:32.1627897Z }, +2026-10-29T19:47:32.1628033Z { +2026-10-29T19:47:32.1628173Z "bytes": 12708, +2026-10-29T19:47:32.1628362Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1628597Z "path": "PROOF_INDEX.md", +2026-10-29T19:47:32.1628807Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1629121Z "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249" +2026-10-29T19:47:32.1629516Z }, +2026-10-29T19:47:32.1629660Z { +2026-10-29T19:47:32.1629808Z "bytes": 16417, +2026-10-29T19:47:32.1630013Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1630264Z "path": "claims/LANDING_CLAIMS.json", +2026-10-29T19:47:32.1630491Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1630802Z "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e" +2026-10-29T19:47:32.1631096Z }, +2026-10-29T19:47:32.1631231Z { +2026-10-29T19:47:32.1631368Z "bytes": 11331, +2026-10-29T19:47:32.1631559Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1631886Z "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", +2026-10-29T19:47:32.1632163Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1632453Z "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c" +2026-10-29T19:47:32.1632735Z }, +2026-10-29T19:47:32.1632874Z { +2026-10-29T19:47:32.1633019Z "bytes": 1090, +2026-10-29T19:47:32.1633210Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1633475Z "path": "coefficients/side24_v1/ENCLOSURE.json", +2026-10-29T19:47:32.1633860Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1634224Z "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811" +2026-10-29T19:47:32.1634522Z }, +2026-10-29T19:47:32.1634662Z { +2026-10-29T19:47:32.1634805Z "bytes": 15925, +2026-10-29T19:47:32.1635008Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1635307Z "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", +2026-10-29T19:47:32.1635593Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1635898Z "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f" +2026-10-29T19:47:32.1636178Z }, +2026-10-29T19:47:32.1636316Z { +2026-10-29T19:47:32.1636459Z "bytes": 12741, +2026-10-29T19:47:32.1636731Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1637034Z "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", +2026-10-29T19:47:32.1637316Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1637617Z "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d" +2026-10-29T19:47:32.1637905Z }, +2026-10-29T19:47:32.1638045Z { +2026-10-29T19:47:32.1638198Z "bytes": 10073, +2026-10-29T19:47:32.1638386Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1638682Z "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", +2026-10-29T19:47:32.1638964Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1639270Z "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574" +2026-10-29T19:47:32.1639554Z }, +2026-10-29T19:47:32.1639688Z { +2026-10-29T19:47:32.1639824Z "bytes": 15615, +2026-10-29T19:47:32.1640014Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1640397Z "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", +2026-10-29T19:47:32.1640664Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1640964Z "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53" +2026-10-29T19:47:32.1641245Z }, +2026-10-29T19:47:32.1641383Z { +2026-10-29T19:47:32.1641526Z "bytes": 12510, +2026-10-29T19:47:32.1641713Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1642008Z "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", +2026-10-29T19:47:32.1642291Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1642585Z "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c" +2026-10-29T19:47:32.1642872Z }, +2026-10-29T19:47:32.1643008Z { +2026-10-29T19:47:32.1643147Z "bytes": 3723, +2026-10-29T19:47:32.1643341Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1643868Z "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", +2026-10-29T19:47:32.1644152Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1644452Z "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717" +2026-10-29T19:47:32.1644728Z }, +2026-10-29T19:47:32.1644887Z { +2026-10-29T19:47:32.1645029Z "bytes": 15569, +2026-10-29T19:47:32.1645225Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1645496Z "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", +2026-10-29T19:47:32.1645762Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1646064Z "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7" +2026-10-29T19:47:32.1646350Z }, +2026-10-29T19:47:32.1646488Z { +2026-10-29T19:47:32.1646631Z "bytes": 7655, +2026-10-29T19:47:32.1646835Z "commit": "f2e432ea5c86742e480c66624775bc9103343314", +2026-10-29T19:47:32.1647082Z "path": "STATUS.md", +2026-10-29T19:47:32.1647281Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1647589Z "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3" +2026-10-29T19:47:32.1647866Z }, +2026-10-29T19:47:32.1648005Z { +2026-10-29T19:47:32.1648147Z "bytes": 25057, +2026-10-29T19:47:32.1648349Z "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", +2026-10-29T19:47:32.1648629Z "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", +2026-10-29T19:47:32.1648890Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1649192Z "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537" +2026-10-29T19:47:32.1649473Z }, +2026-10-29T19:47:32.1649658Z { +2026-10-29T19:47:32.1649802Z "bytes": 673, +2026-10-29T19:47:32.1649995Z "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", +2026-10-29T19:47:32.1650290Z "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", +2026-10-29T19:47:32.1650574Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1650874Z "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176" +2026-10-29T19:47:32.1651161Z }, +2026-10-29T19:47:32.1651297Z { +2026-10-29T19:47:32.1651437Z "bytes": 362, +2026-10-29T19:47:32.1651630Z "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", +2026-10-29T19:47:32.1651929Z "path": "incoming/side24-identity-replay-20260926/output.json", +2026-10-29T19:47:32.1652201Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1652489Z "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be" +2026-10-29T19:47:32.1652767Z }, +2026-10-29T19:47:32.1652902Z { +2026-10-29T19:47:32.1653038Z "bytes": 61961, +2026-10-29T19:47:32.1653228Z "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", +2026-10-29T19:47:32.1653505Z "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", +2026-10-29T19:47:32.1653958Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1654382Z "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024" +2026-10-29T19:47:32.1654679Z }, +2026-10-29T19:47:32.1654817Z { +2026-10-29T19:47:32.1654960Z "bytes": 1118, +2026-10-29T19:47:32.1655161Z "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", +2026-10-29T19:47:32.1655456Z "path": "incoming/side24-identity-replay-20260926/RESULT.md", +2026-10-29T19:47:32.1655726Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1656028Z "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8" +2026-10-29T19:47:32.1656319Z }, +2026-10-29T19:47:32.1656455Z { +2026-10-29T19:47:32.1656594Z "bytes": 40261, +2026-10-29T19:47:32.1656796Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1657118Z "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", +2026-10-29T19:47:32.1657587Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1657905Z "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7" +2026-10-29T19:47:32.1658196Z }, +2026-10-29T19:47:32.1658332Z { +2026-10-29T19:47:32.1658475Z "bytes": 10221, +2026-10-29T19:47:32.1658672Z "commit": "a12c178c0f857a130cf434e9efd44233a038195b", +2026-10-29T19:47:32.1658954Z "path": "incoming/side24-chart-claude-20260926/RESULT.md", +2026-10-29T19:47:32.1659220Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1659514Z "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502" +2026-10-29T19:47:32.1659789Z }, +2026-10-29T19:47:32.1659922Z { +2026-10-29T19:47:32.1660062Z "bytes": 1471, +2026-10-29T19:47:32.1660255Z "commit": "a12c178c0f857a130cf434e9efd44233a038195b", +2026-10-29T19:47:32.1660535Z "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", +2026-10-29T19:47:32.1660804Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1661109Z "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b" +2026-10-29T19:47:32.1661400Z }, +2026-10-29T19:47:32.1661536Z { +2026-10-29T19:47:32.1661680Z "bytes": 1724, +2026-10-29T19:47:32.1661866Z "commit": "a12c178c0f857a130cf434e9efd44233a038195b", +2026-10-29T19:47:32.1662140Z "path": "incoming/side24-chart-claude-20260926/output.json", +2026-10-29T19:47:32.1662393Z "repository": "d6g8k5htny-coder/main", +2026-10-29T19:47:32.1662671Z "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb" +2026-10-29T19:47:32.1662940Z }, +2026-10-29T19:47:32.1663073Z { +2026-10-29T19:47:32.1663208Z "bytes": 23312, +2026-10-29T19:47:32.1663402Z "commit": "82247833b5dd58e04291d55353b52938d73ec614", +2026-10-29T19:47:32.1663814Z "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", +2026-10-29T19:47:32.1664119Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1664428Z "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da" +2026-10-29T19:47:32.1664711Z }, +2026-10-29T19:47:32.1664854Z { +2026-10-29T19:47:32.1665007Z "bytes": 6023, +2026-10-29T19:47:32.1665201Z "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", +2026-10-29T19:47:32.1665431Z "path": "README.md", +2026-10-29T19:47:32.1665621Z "repository": "d6g8k5htny-coder/Math-", +2026-10-29T19:47:32.1665914Z "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730" +2026-10-29T19:47:32.1666202Z } +2026-10-29T19:47:32.1666339Z ], +2026-10-29T19:47:32.1666591Z "log_sha256": "c644a9e64da171421fb6fbc64b2b747a372085eba7c7266f8f7f566e3e6ebe36", +2026-10-29T19:47:32.1666909Z "mathematical_certification": false, +2026-10-29T19:47:32.1667115Z "node_exit": 0, +2026-10-29T19:47:32.1667291Z "node_version": "v22.23.4", +2026-10-29T19:47:32.1667494Z "schema": "cbz.node-regression.v1", +2026-10-29T19:47:32.1667744Z "source_after": "b3eacf768fc402ad65c9bf41e3b6b8d3c670342c", +2026-10-29T19:47:32.1668044Z "source_before": "b3eacf768fc402ad65c9bf41e3b6b8d3c670342c", +2026-10-29T19:47:32.1668435Z "started_utc": "2026-10-29T19:47:25.264685+00:00", +2026-10-29T19:47:32.1668671Z "status": "PASS", +2026-10-29T19:47:32.1668832Z "summary": { +2026-10-29T19:47:32.1668992Z "cancelled": 0, +2026-10-29T19:47:32.1669146Z "fail": 0, +2026-10-29T19:47:32.1669295Z "pass": 764, +2026-10-29T19:47:32.1669452Z "skipped": 0, +2026-10-29T19:47:32.1669605Z "tests": 764, +2026-10-29T19:47:32.1669755Z "todo": 0 +2026-10-29T19:47:32.1669909Z } +2026-10-29T19:47:32.1670061Z } +2026-10-29T19:47:32.1741304Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T19:47:32.1741637Z with: +2026-10-29T19:47:32.1741804Z name: cbz-node-result +2026-10-29T19:47:32.1742018Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T19:47:32.1742265Z if-no-files-found: error +2026-10-29T19:47:32.1742456Z compression-level: 6 +2026-10-29T19:47:32.1742765Z overwrite: false +2026-10-29T19:47:32.1742943Z include-hidden-files: false +2026-10-29T19:47:32.1743135Z archive: true +2026-10-29T19:47:32.1743293Z env: +2026-10-29T19:47:32.1743504Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1744023Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:47:32.1744353Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1744645Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1744948Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:47:32.1745267Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:47:32.1745528Z ##[endgroup] +2026-10-29T19:47:32.3105533Z With the provided path, there will be 41 files uploaded +2026-10-29T19:47:32.3109863Z Artifact name is valid! +2026-10-29T19:47:32.3110220Z Root directory input is valid! +2026-10-29T19:47:32.5394325Z Uploading artifact: cbz-node-result.zip +2026-10-29T19:47:32.5423141Z Beginning upload of artifact content to blob storage +2026-10-29T19:47:32.7255925Z Uploaded bytes 504763 +2026-10-29T19:47:32.7408499Z Finished uploading artifact content to blob storage! +2026-10-29T19:47:32.7409222Z SHA256 digest of uploaded artifact is 92f051e5e08108296ca870bb989744b6877d9651ec513f1fca175abce4568e04 +2026-10-29T19:47:32.7409831Z Finalizing artifact upload +2026-10-29T19:47:33.2105136Z Artifact cbz-node-result successfully finalized. Artifact ID 12927692357 +2026-10-29T19:47:33.2106007Z Artifact cbz-node-result has been successfully uploaded! Final size is 504763 bytes. Artifact ID is 12927692357 +2026-10-29T19:47:33.2108472Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40943173611/artifacts/12927692357 +2026-10-29T19:47:33.2277100Z Post job cleanup. +2026-10-29T19:47:33.3410416Z Post job cleanup. +2026-10-29T19:47:33.4192474Z [command]/usr/bin/git version +2026-10-29T19:47:33.4255314Z git version 2.56.0 +2026-10-29T19:47:33.4306405Z Temporarily overriding HOME='/home/runner/work/_temp/31debed5-1ed7-4fb3-929a-3e6415a59756' before making global git config changes +2026-10-29T19:47:33.4307329Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:47:33.4307996Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:47:33.4357629Z Removing SSH command configuration +2026-10-29T19:47:33.4367309Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:47:33.4419940Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:47:33.4746955Z Removing HTTP extra header +2026-10-29T19:47:33.4753488Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:47:33.4845922Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:47:33.5086436Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:47:33.5096163Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:47:33.5170201Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:47:33.5551111Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/green/db7-hosted-job.log b/cbz/evidence/cold-start-node/green/db7-hosted-job.log new file mode 100644 index 000000000..2b4c55846 --- /dev/null +++ b/cbz/evidence/cold-start-node/green/db7-hosted-job.log @@ -0,0 +1,715 @@ +2026-10-29T20:47:40.8084892Z Current runner version: '2.338.0' +2026-10-29T20:47:40.8115649Z ##[group]Runner Image Provisioner +2026-10-29T20:47:40.8116631Z Hosted Compute Agent +2026-10-29T20:47:40.8117391Z Version: 20261021.618 +2026-10-29T20:47:40.8118080Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:47:40.8118799Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:47:40.8119617Z Worker ID: {61eca1d2-0d90-461f-ba20-894b5f575a73} +2026-10-29T20:47:40.8120783Z Region: centralus +2026-10-29T20:47:40.8121732Z Cloud: Azure +2026-10-29T20:47:40.8122378Z ##[endgroup] +2026-10-29T20:47:40.8124736Z ##[group]Operating System +2026-10-29T20:47:40.8125640Z Ubuntu +2026-10-29T20:47:40.8126237Z 24.04.5 +2026-10-29T20:47:40.8126824Z LTS +2026-10-29T20:47:40.8127391Z ##[endgroup] +2026-10-29T20:47:40.8127991Z ##[group]Runner Image +2026-10-29T20:47:40.8128729Z Image: ubuntu-24.04-arm +2026-10-29T20:47:40.8129413Z Version: 20261025.165.1 +2026-10-29T20:47:40.8130963Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:47:40.8132919Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:47:40.8134028Z ##[endgroup] +2026-10-29T20:47:40.8135258Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:47:40.8138158Z Contents: read +2026-10-29T20:47:40.8138838Z Metadata: read +2026-10-29T20:47:40.8139539Z ##[endgroup] +2026-10-29T20:47:40.8142737Z Secret source: Actions +2026-10-29T20:47:40.8143721Z Cache mode: write +2026-10-29T20:47:40.8144902Z Prepare workflow directory +2026-10-29T20:47:40.8564569Z Prepare all required actions +2026-10-29T20:47:40.8619677Z Getting action download info +2026-10-29T20:47:41.1173574Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:47:41.2589360Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:47:41.3570237Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:47:41.5546127Z Complete job name: controls-and-prepared +2026-10-29T20:47:41.6634733Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:47:41.6636335Z with: +2026-10-29T20:47:41.6637108Z persist-credentials: false +2026-10-29T20:47:41.6637743Z fetch-depth: 0 +2026-10-29T20:47:41.6638333Z repository: d6g8k5htny-coder/main +2026-10-29T20:47:41.6642631Z token: *** +2026-10-29T20:47:41.6643214Z ssh-strict: true +2026-10-29T20:47:41.6644197Z ssh-user: git +2026-10-29T20:47:41.6644752Z clean: true +2026-10-29T20:47:41.6645433Z sparse-checkout-cone-mode: true +2026-10-29T20:47:41.6646124Z fetch-tags: false +2026-10-29T20:47:41.6646689Z show-progress: true +2026-10-29T20:47:41.6647362Z lfs: false +2026-10-29T20:47:41.6647909Z submodules: false +2026-10-29T20:47:41.6648552Z set-safe-directory: true +2026-10-29T20:47:41.6649354Z allow-unsafe-pr-checkout: false +2026-10-29T20:47:41.6650746Z ##[endgroup] +2026-10-29T20:47:41.7575177Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:47:41.7578082Z ##[group]Getting Git version info +2026-10-29T20:47:41.7579018Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:47:41.7580432Z [command]/usr/bin/git version +2026-10-29T20:47:41.7658953Z git version 2.56.0 +2026-10-29T20:47:41.7687272Z ##[endgroup] +2026-10-29T20:47:41.7695527Z Temporarily overriding HOME='/home/runner/work/_temp/0fc32570-1782-4137-b8bb-4138f6130105' before making global git config changes +2026-10-29T20:47:41.7697390Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:47:41.7699148Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:47:41.7749274Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:47:41.7754119Z ##[group]Determining repository object format +2026-10-29T20:47:41.7756384Z ##[endgroup] +2026-10-29T20:47:41.7759936Z ##[group]Initializing the repository +2026-10-29T20:47:41.7761489Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:47:41.7887530Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:47:41.7889111Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:47:41.7890683Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:47:41.7891823Z hint: call: +2026-10-29T20:47:41.7892502Z hint: +2026-10-29T20:47:41.7893221Z hint: git config --global init.defaultBranch +2026-10-29T20:47:41.7894024Z hint: +2026-10-29T20:47:41.7894798Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:47:41.7895811Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:47:41.7896769Z hint: +2026-10-29T20:47:41.7897386Z hint: git branch -m +2026-10-29T20:47:41.7898086Z hint: +2026-10-29T20:47:41.7898905Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:47:41.7900060Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:47:41.7906341Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:47:41.7961476Z ##[endgroup] +2026-10-29T20:47:41.7962668Z ##[group]Disabling automatic garbage collection +2026-10-29T20:47:41.7964802Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:47:41.8005052Z ##[endgroup] +2026-10-29T20:47:41.8006131Z ##[group]Setting up auth +2026-10-29T20:47:41.8006825Z Removing SSH command configuration +2026-10-29T20:47:41.8013450Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:47:41.8051952Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:47:41.8422803Z Removing HTTP extra header +2026-10-29T20:47:41.8423940Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:47:41.8448749Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:47:41.8672856Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:47:41.8677003Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:47:41.8714401Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:47:41.8958022Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:47:41.9000525Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:41.9039514Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:41.9079559Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:41.9119459Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:41.9157280Z ##[endgroup] +2026-10-29T20:47:41.9158256Z ##[group]Fetching the repository +2026-10-29T20:47:41.9164491Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +fc874d3d6da55276180937bae8e239ab395570f8:refs/remotes/pull/707/merge +2026-10-29T20:47:53.6490279Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:47:53.6493052Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:47:53.6496112Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:47:53.6498915Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:47:53.6502174Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:47:53.6505362Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:47:53.6508374Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:47:53.6512674Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:47:53.6515734Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:47:53.6518496Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:47:53.6522007Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:47:53.6524704Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T20:47:53.6527615Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:47:53.6530520Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:47:53.6533593Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:47:53.6537081Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:47:53.6539968Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:47:53.6543277Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:47:53.6545754Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:47:53.6548281Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:47:53.6551319Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:47:53.6554235Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:47:53.6557295Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:47:53.6560160Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:47:53.6563164Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:47:53.6565941Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:47:53.6568749Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:47:53.6572105Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:47:53.6575462Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:47:53.6578120Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:47:53.6580888Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:47:53.6583821Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:47:53.6586463Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:47:53.6588891Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:47:53.6591597Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:47:53.6594602Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:47:53.6597252Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:47:53.6599897Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:47:53.6602656Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:47:53.6605237Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:47:53.6607887Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:47:53.6610371Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:47:53.6613261Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:47:53.6616259Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:47:53.6619496Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:47:53.6622772Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:47:53.6625655Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:47:53.6628003Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:47:53.6630164Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:47:53.6632575Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:47:53.6635065Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:47:53.6637613Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:47:53.6640206Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:47:53.6642603Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:47:53.6644793Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:47:53.6647095Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:47:53.6649270Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:47:53.6652093Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:47:53.6654653Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:47:53.6656921Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:47:53.6659212Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:47:53.6661753Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:47:53.6664198Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:47:53.6666705Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:47:53.6668927Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:47:53.6671628Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:47:53.6674080Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:47:53.6676400Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:47:53.6678979Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:47:53.6681271Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:47:53.6683763Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:47:53.6686109Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:47:53.6688073Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:47:53.6690600Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:47:53.6693459Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:47:53.6696061Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:47:53.6698216Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:47:53.6700272Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:47:53.6702584Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:47:53.6704778Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:47:53.6707029Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:47:53.6709142Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:47:53.6711445Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:47:53.6713872Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:47:53.6716064Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:47:53.6718177Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:47:53.6720790Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:47:53.6723525Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:47:53.6726187Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:47:53.6728640Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:47:53.6731279Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:47:53.6733792Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:47:53.6736280Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:47:53.6738840Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:47:53.6741435Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:47:53.6743952Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:47:53.6746371Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:47:53.6748772Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:47:53.6751649Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:47:53.6754231Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:47:53.6756673Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:47:53.6759504Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:47:53.6762214Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:47:53.6764627Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:47:53.6766841Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:47:53.6769150Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:47:53.6771758Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:47:53.6774291Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:47:53.6776775Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T20:47:53.6778980Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:47:53.6781578Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:47:53.6784042Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:47:53.6786455Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:47:53.6789135Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:47:53.6792165Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:47:53.6794389Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:47:53.6796928Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:47:53.6799908Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:47:53.6803118Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:47:53.6805848Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:47:53.6808192Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:47:53.6810416Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:47:53.6812888Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:47:53.6815275Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:47:53.6817459Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:47:53.6819605Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:47:53.6821996Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:47:53.6824237Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:47:53.6826903Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:47:53.6829047Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:47:53.6831439Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:47:53.6833781Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:47:53.6836455Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:47:53.6839243Z * [new branch] codex/public-intake-discovery-20261029 -> origin/codex/public-intake-discovery-20261029 +2026-10-29T20:47:53.6841746Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:47:53.6843864Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:47:53.6846088Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:47:53.6848561Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:47:53.6850981Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:47:53.6853584Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:47:53.6855909Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:47:53.6858796Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:47:53.6861345Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:47:53.6863673Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:47:53.6866434Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:47:53.6868972Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:47:53.6871267Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:47:53.6873289Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:47:53.6875487Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:47:53.6877629Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:47:53.6879763Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:47:53.6882397Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:47:53.6884672Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:47:53.6887027Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:47:53.6889275Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:47:53.6891948Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:47:53.6895048Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:47:53.6897603Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:47:53.6900222Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:47:53.6902686Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:47:53.6905112Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:47:53.6907815Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:47:53.6910129Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:47:53.6912627Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:47:53.6915024Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:47:53.6917516Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:47:53.6920125Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:47:53.6922683Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:47:53.6925636Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:47:53.6927796Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:47:53.6929912Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:47:53.6932826Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:47:53.6935257Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:47:53.6937549Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:47:53.6939809Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:47:53.6942518Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:47:53.6945273Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:47:53.6948019Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:47:53.6950673Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:47:53.6953412Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:47:53.6955829Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:47:53.6958300Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:47:53.6960931Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:47:53.6963471Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:47:53.6965931Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:47:53.6968202Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:47:53.6970599Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:47:53.6973433Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:47:53.6975854Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:47:53.6978015Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:47:53.6979950Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:47:53.6982236Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:47:53.6984527Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:47:53.6986884Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:47:53.6989163Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:47:53.6991491Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:47:53.6994200Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:47:53.6996250Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:47:53.6998229Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:47:53.7000578Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:47:53.7003008Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:47:53.7005329Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:47:53.7007733Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:47:53.7010014Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:47:53.7012322Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:47:53.7014538Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:47:53.7016799Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:47:53.7018916Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:47:53.7021350Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:47:53.7023603Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:47:53.7026280Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:47:53.7028924Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:47:53.7031450Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:47:53.7033513Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:47:53.7035610Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:47:53.7037515Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:47:53.7039520Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:47:53.7041906Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:47:53.7044441Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:47:53.7047424Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:47:53.7049948Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:47:53.7052556Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:47:53.7054854Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:47:53.7057543Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:47:53.7060091Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:47:53.7062549Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:47:53.7064513Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:47:53.7066485Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:47:53.7068596Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:47:53.7070815Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:47:53.7073460Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:47:53.7075829Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:47:53.7077839Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:47:53.7079677Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:47:53.7081784Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:47:53.7083664Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:47:53.7085710Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:47:53.7087929Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:47:53.7090478Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:47:53.7093110Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:47:53.7095300Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:47:53.7097265Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:47:53.7099358Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:47:53.7101771Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:47:53.7104321Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:47:53.7106668Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:47:53.7108955Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:47:53.7111644Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:47:53.7114105Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:47:53.7116493Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:47:53.7118148Z * [new branch] main -> origin/main +2026-10-29T20:47:53.7119967Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:47:53.7123090Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:47:53.7125315Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:47:53.7127478Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:47:53.7129240Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:47:53.7130863Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:47:53.7132672Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:47:53.7134238Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:47:53.7135860Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:47:53.7137403Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:47:53.7138960Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:47:53.7140563Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:47:53.7142272Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:47:53.7143908Z * [new ref] fc874d3d6da55276180937bae8e239ab395570f8 -> pull/707/merge +2026-10-29T20:47:53.7146939Z ##[endgroup] +2026-10-29T20:47:53.7148215Z ##[group]Determining the checkout info +2026-10-29T20:47:53.7149797Z ##[endgroup] +2026-10-29T20:47:53.7150611Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:47:53.7153612Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:47:53.7156550Z ##[group]Checking out the ref +2026-10-29T20:47:53.7157711Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T20:47:53.9321442Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T20:47:53.9322778Z +2026-10-29T20:47:53.9323101Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T20:47:53.9323739Z changes and commit them, and you can discard any commits you make in this +2026-10-29T20:47:53.9324439Z state without impacting any branches by switching back to a branch. +2026-10-29T20:47:53.9324755Z +2026-10-29T20:47:53.9325059Z If you want to create a new branch to retain commits you create, you may +2026-10-29T20:47:53.9325604Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T20:47:53.9325966Z +2026-10-29T20:47:53.9326145Z git switch -c +2026-10-29T20:47:53.9326383Z +2026-10-29T20:47:53.9326556Z Or undo this operation with: +2026-10-29T20:47:53.9326809Z +2026-10-29T20:47:53.9326999Z git switch - +2026-10-29T20:47:53.9327224Z +2026-10-29T20:47:53.9327601Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T20:47:53.9327984Z +2026-10-29T20:47:53.9328412Z HEAD is now at fc874d3d Merge db7d4a9cef29f2927333b9979032200b144e29e7 into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T20:47:53.9361468Z ##[endgroup] +2026-10-29T20:47:53.9406477Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:47:53.9435403Z fc874d3d6da55276180937bae8e239ab395570f8 +2026-10-29T20:47:53.9443163Z ##[group]Removing auth +2026-10-29T20:47:53.9443949Z Removing SSH command configuration +2026-10-29T20:47:53.9446874Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:47:53.9480579Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:47:53.9702404Z Removing HTTP extra header +2026-10-29T20:47:53.9704600Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:47:53.9737180Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:47:53.9942683Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:47:53.9945183Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:47:53.9971719Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:47:53.9972437Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:47:53.9973191Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:47:53.9973748Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:47:53.9980034Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:47:54.0004481Z /home/runner/work/_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:54.0013633Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-2fbd4419\-f5ba\-4f73\-b775\-6883c5c0f1be\.config +2026-10-29T20:47:54.0052858Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:47:54.0076760Z /home/runner/work/_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:54.0084351Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-2fbd4419\-f5ba\-4f73\-b775\-6883c5c0f1be\.config +2026-10-29T20:47:54.0122245Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:47:54.0145369Z /github/runner_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:54.0152555Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-2fbd4419\-f5ba\-4f73\-b775\-6883c5c0f1be\.config +2026-10-29T20:47:54.0188994Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:47:54.0213537Z /github/runner_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config +2026-10-29T20:47:54.0222833Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-2fbd4419\-f5ba\-4f73\-b775\-6883c5c0f1be\.config +2026-10-29T20:47:54.0258468Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:47:54.0491589Z Removing credentials config '/home/runner/work/_temp/git-credentials-2fbd4419-f5ba-4f73-b775-6883c5c0f1be.config' +2026-10-29T20:47:54.0493343Z ##[endgroup] +2026-10-29T20:47:54.0799456Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:47:54.0800323Z with: +2026-10-29T20:47:54.0800701Z python-version: 3.11 +2026-10-29T20:47:54.0801031Z check-latest: false +2026-10-29T20:47:54.0804142Z token: *** +2026-10-29T20:47:54.0804539Z update-environment: true +2026-10-29T20:47:54.0805055Z allow-prereleases: false +2026-10-29T20:47:54.0805395Z freethreaded: false +2026-10-29T20:47:54.0805697Z ##[endgroup] +2026-10-29T20:47:54.1835523Z ##[group]Installed versions +2026-10-29T20:47:54.1934676Z Successfully set up CPython (3.11.17) +2026-10-29T20:47:54.1935637Z ##[endgroup] +2026-10-29T20:47:54.2091404Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:47:54.2092429Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:47:54.2379953Z shell: /usr/bin/bash -e {0} +2026-10-29T20:47:54.2380812Z env: +2026-10-29T20:47:54.2381808Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:47:54.2382401Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:47:54.2383045Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:47:54.2383554Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:47:54.2384042Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:47:54.2384618Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:47:54.2385039Z ##[endgroup] +2026-10-29T20:47:55.9385054Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:47:55.9391369Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:47:55.9392464Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:47:55.9394300Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:47:55.9395607Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:47:55.9396643Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:47:55.9397659Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:47:55.9398484Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:47:55.9399368Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:47:55.9400304Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:47:55.9401499Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:47:55.9402629Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:47:55.9403532Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:47:56.2999456Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:47:56.3227821Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:47:56.6105400Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:47:56.6380140Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:47:56.6593108Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:47:56.6811976Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:47:56.7052538Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:47:56.7263268Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:47:56.9086038Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:47:56.9337293Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:47:56.9698917Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:47:56.9990316Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:47:57.0244159Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:47:57.0525724Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:47:57.0896235Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:47:57.1124703Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:47:57.1329258Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:47:57.1557654Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:47:57.2754201Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:47:57.2954855Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:47:57.3255152Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:47:57.3560061Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:47:57.3838082Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:47:57.4126405Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:47:57.4645004Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:47:57.4952570Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:47:57.5153087Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:47:57.5350988Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:47:57.5696385Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:47:57.5894728Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:47:57.6110491Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:48:00.6821343Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:48:01.3907111Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:48:02.5916549Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:48:02.5917175Z +2026-10-29T20:48:02.5917395Z ---------------------------------------------------------------------- +2026-10-29T20:48:02.5918013Z Ran 47 tests in 6.654s +2026-10-29T20:48:02.5918174Z +2026-10-29T20:48:02.5918290Z OK +2026-10-29T20:48:02.6139468Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:48:02.6140216Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:48:02.6194422Z shell: /usr/bin/bash -e {0} +2026-10-29T20:48:02.6194795Z env: +2026-10-29T20:48:02.6195102Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:02.6195656Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:48:02.6196183Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:02.6196649Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:02.6197087Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:02.6197513Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:48:02.6197931Z ##[endgroup] +2026-10-29T20:48:06.0813746Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:48:06.0821335Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:48:06.0822300Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:48:06.0824199Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:48:06.0825491Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:48:06.0826489Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:48:06.0827501Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:48:06.0828328Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:48:06.0829234Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:48:06.0830173Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:48:06.0831210Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:48:06.0832362Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:48:06.0833263Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:48:07.1923681Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:48:07.2490702Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:48:07.4241671Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:48:07.5088388Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:48:07.7364179Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:48:07.7678245Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:48:07.8228909Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:48:07.9628929Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:48:08.6210987Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:48:08.8232773Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:48:09.0849562Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:48:09.1168168Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:48:09.1460502Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:48:09.1668171Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:48:09.1982185Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:48:09.2219988Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:48:09.2426446Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:48:09.2673553Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:48:09.3767545Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:48:09.3959613Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:48:09.4289885Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:48:09.4597691Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:48:09.4884990Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:48:09.5184511Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:48:09.5490658Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:48:09.5794873Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:48:09.5991921Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:48:09.6189324Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:48:09.6524791Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:48:09.6720128Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:48:09.6928527Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:48:18.0996570Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:48:20.2503611Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:48:22.0579134Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:48:22.0579758Z +2026-10-29T20:48:22.0580575Z ---------------------------------------------------------------------- +2026-10-29T20:48:22.0581058Z Ran 47 tests in 15.977s +2026-10-29T20:48:22.0581566Z +2026-10-29T20:48:22.0581753Z OK +2026-10-29T20:48:22.0792461Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:48:22.0793398Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:48:22.0794230Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:48:22.0841819Z shell: /usr/bin/bash -e {0} +2026-10-29T20:48:22.0842159Z env: +2026-10-29T20:48:22.0842518Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:22.0843083Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:48:22.0843619Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:22.0844075Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:22.0844517Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:22.0845130Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:48:22.0845507Z ##[endgroup] +2026-10-29T20:48:22.0930937Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:48:23.9753819Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:48:24.3543039Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:48:24.3544449Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:48:24.3592466Z shell: /usr/bin/bash -e {0} +2026-10-29T20:48:24.3592795Z env: +2026-10-29T20:48:24.3593090Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:24.3593624Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:48:24.3594142Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:24.3594677Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:24.3595116Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:24.3595697Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:48:24.3596225Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:48:24.3597004Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:48:24.3597942Z ##[endgroup] +2026-10-29T20:48:30.9693794Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:48:30.9879553Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:48:30.9880189Z python -B -S - <<'PY' +2026-10-29T20:48:30.9880516Z import hashlib, json, os +2026-10-29T20:48:30.9880858Z from pathlib import Path +2026-10-29T20:48:30.9881552Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T20:48:30.9882030Z record = json.loads((root / "result.json").read_text()) +2026-10-29T20:48:30.9882568Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T20:48:30.9883098Z raw = (root / "node.tap").read_bytes() +2026-10-29T20:48:30.9883425Z def verify_log(value): +2026-10-29T20:48:30.9883847Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T20:48:30.9884356Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T20:48:30.9884838Z verify_log(raw) +2026-10-29T20:48:30.9885221Z try: +2026-10-29T20:48:30.9885514Z  verify_log(raw + b"\0") +2026-10-29T20:48:30.9885810Z except ValueError: +2026-10-29T20:48:30.9886109Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T20:48:30.9886504Z else: +2026-10-29T20:48:30.9886832Z  raise SystemExit("modified transcript was admitted") +2026-10-29T20:48:30.9887229Z text = raw.decode("utf-8") +2026-10-29T20:48:30.9887608Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T20:48:30.9888022Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T20:48:30.9888436Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T20:48:30.9888907Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T20:48:30.9889341Z for number, chunk in enumerate(chunks): +2026-10-29T20:48:30.9889846Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T20:48:30.9890249Z PY +2026-10-29T20:48:30.9924260Z shell: /usr/bin/bash -e {0} +2026-10-29T20:48:30.9924776Z env: +2026-10-29T20:48:30.9925099Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:30.9925593Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:48:30.9926188Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:30.9926625Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:30.9927105Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:30.9927529Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:48:30.9927884Z ##[endgroup] +2026-10-29T20:48:31.0250166Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:48:30.967591+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "380c35cb9c274ec44a63d373eb635b886cc2ab3c1f29258a707873da86255066", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "fc874d3d6da55276180937bae8e239ab395570f8", "source_before": "fc874d3d6da55276180937bae8e239ab395570f8", "started_utc": "2026-10-29T20:48:24.423490+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:48:31.0290407Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T20:48:31.0291781Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T20:48:31.0292124Z CBZ_NODE_TAP_GIT_BLOB d73c8c6dc9ccb53ab39c629a3f14231a4f5bf071 +2026-10-29T20:48:31.0305586Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 31.093285\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 48.429486\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.819107\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 3.660831\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.179631\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.586296\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.61327\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.26653\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.58544\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.721016\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.541674\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.091628\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.979298\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.461127\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 4.053433\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.84761\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.664195\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.143564\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.061334\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.625038\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit brid" +2026-10-29T20:48:31.0332294Z CBZ_NODE_TAP_JSON 1 "ge\n ---\n duration_ms: 0.615846\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.285209\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.558601\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.821659\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.612806\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.14413\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.901439\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.945276\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.403411\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.054366\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.019928\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.855921\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.87432\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 4.583884\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 1.854578\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.309655\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.334621\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.339493\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.350365\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.212204\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot remain" +2026-10-29T20:48:31.0358790Z CBZ_NODE_TAP_JSON 2 "s a visible reading action\n ---\n duration_ms: 0.126737\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.18235\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.408571\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.28624\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.163407\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 1.989522\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.792172\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 1.055438\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.219893\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 0.935813\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 1.011201\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 1.530084\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.685547\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.460542\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.722394\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.382516\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.425185\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.228428\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are determi" +2026-10-29T20:48:31.0384989Z CBZ_NODE_TAP_JSON 3 "nistic and inputs remain unchanged\n ---\n duration_ms: 1.087468\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.316319\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.242379\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 2.280699\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.883666\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.967292\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.32495\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.12815\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 3.789376\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.656036\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.980698\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 4.957688\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.446497\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.092668\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.288009\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.163687\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 11.665928\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 10.201528\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 1037.8673\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history state; s" +2026-10-29T20:48:31.0411213Z CBZ_NODE_TAP_JSON 4 "hare link only includes filters\n ---\n duration_ms: 37.837147\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 51.337078\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 40.502562\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 26.868646\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 27.950858\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 29.552378\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 5.799466\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 25.310091\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 25.161803\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 26.747869\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 24.868355\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 9.429738\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 10.390782\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 5.71991\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.960435\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 11.445676\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.936829\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.402755\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.795628\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers use " +2026-10-29T20:48:31.0437597Z CBZ_NODE_TAP_JSON 5 "distinct identities and ordinary, non-live count spans\n ---\n duration_ms: 7.533362\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 13.18122\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.274642\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.143866\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.432753\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.347654\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.798933\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 1.121354\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.898127\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 2.535901\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.252795\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 0.968331\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.661732\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.741191\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.76911\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.895375\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 0.723793\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.733392\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.669131\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.762246\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 1.736873\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 1.039295\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 1.559603\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 1.279122\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 0.501692\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid range" +2026-10-29T20:48:31.0464165Z CBZ_NODE_TAP_JSON 6 "\n ---\n duration_ms: 0.528995\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.452567\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 0.599103\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.150976\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 0.877536\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.601319\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 3.793608\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 1.122642\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.599679\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 0.780653\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.700705\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.591152\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 1.355125\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.565577\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.486702\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.582368\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.640485\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.909566\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.902495\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 1.065789\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.845875\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 9.54834\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort s" +2026-10-29T20:48:31.0490428Z CBZ_NODE_TAP_JSON 7 "ignal\n ---\n duration_ms: 1.789806\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.39902\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.362421\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.560834\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.309439\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 3.300219\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 1.108107\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 1.018616\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.903166\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.667348\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 12.124783\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 2.230533\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 11.687967\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 3.658823\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.616806\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.335253\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 2.817165\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 1.117818\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.884752\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.897415\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can" +2026-10-29T20:48:31.0516530Z CBZ_NODE_TAP_JSON 8 " construct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.620654\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.792805\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.342741\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.248154\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.582568\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.511644\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.203724\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.29356\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.160903\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.677403\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 195.487576\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.430352\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.399954\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.397332\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.641309\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.523931\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.360692\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewri" +2026-10-29T20:48:31.0542920Z CBZ_NODE_TAP_JSON 9 "ting the address\n ---\n duration_ms: 0.350452\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.877544\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.565841\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.494124\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.387155\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.260562\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.40925\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.236211\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.602983\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.359988\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.562817\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.346836\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.727816\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 9.061262\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 0.968523\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.700313\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.003921\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.809876\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration" +2026-10-29T20:48:31.0569149Z CBZ_NODE_TAP_JSON 10 "_ms: 0.618614\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 0.623662\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.620366\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.786749\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.659428\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.615463\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.598535\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.64658\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.608399\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.584496\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.645245\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.58432\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.491085\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.75555\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.60835\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.61331\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.588984\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.477494\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.556945\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 0.736375\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.572337\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.634029\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.173758\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 2.408772\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.663436\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 0.649732\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.622278\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 1.430962\n type: 'test'\n ...\n# Subtest: acquisition: i" +2026-10-29T20:48:31.0595449Z CBZ_NODE_TAP_JSON 11 "ndependent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.983027\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.62563\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.663915\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.60827\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.647005\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.541994\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.570953\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.594079\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 1.752559\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 1.092628\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 1.145322\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.416059\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.772029\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.091667\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.159031\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.479526\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.195254\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.426312\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 2.866091\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 2.443898\n type: 'test'\n ...\n# Subtest: eq" +2026-10-29T20:48:31.0621995Z CBZ_NODE_TAP_JSON 12 "uation and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.227395\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.100818\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.6663\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 14.669228\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.623582\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.201461\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.256849\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.312087\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 4.991134\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.585144\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 4.045074\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.362884\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 1.433129\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.356788\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 16.29261\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 5.290438\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 4.624538\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_" +2026-10-29T20:48:31.0648266Z CBZ_NODE_TAP_JSON 13 "ms: 6.656242\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 12.156381\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 33.135117\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 18.88242\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 15.797205\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 3.057352\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.239091\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.562113\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.445512\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 58.1758\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 3.875835\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 4.99243\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.213991\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.527083\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.271665\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.490069\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.753567\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.208181\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - onl" +2026-10-29T20:48:31.0674407Z CBZ_NODE_TAP_JSON 14 "y exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.460679\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.192901\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.040031\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 203.872413\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.247124\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.434584\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 2.104292\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.630246\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.547138\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.380531\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.448608\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 1.906535\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.794205\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 1.058182\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.431632\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.234491\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.321654\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.4396\n type: 'test'\n ...\n# Subtest:" +2026-10-29T20:48:31.0700636Z CBZ_NODE_TAP_JSON 15 " widening the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.477318\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.342237\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.472606\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.328398\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.273402\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 5.233033\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 6.480684\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 4.214761\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.607615\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.438592\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.455768\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 2.570843\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.771342\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.11821\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.166536\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 2.796367\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 4.036907\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---\n" +2026-10-29T20:48:31.0727078Z CBZ_NODE_TAP_JSON 16 " duration_ms: 0.36126\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.25873\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.309455\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.247994\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.420233\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.236275\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 2.6244\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.598727\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 20.350227\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 1.732329\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.239165\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.155937\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 1.677324\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 2.205759\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 3.004716\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 55.519305\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 172.693219\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-ev" +2026-10-29T20:48:31.0753528Z CBZ_NODE_TAP_JSON 17 "idence after 0 ms digest delay\n ---\n duration_ms: 13.347684\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 166.278395\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 33.066057\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 165.289138\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 13.22257\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 170.52713\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 3.252374\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 1.64759\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 2.522758\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.813915\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 1.843155\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 1.149153\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 2.03456\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 4.416229\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 2.636592\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 0.272577\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 3.409229\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 1.950829\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and labels th" +2026-10-29T20:48:31.0779765Z CBZ_NODE_TAP_JSON 18 "e snapshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 0.783973\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 1.689667\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.503086\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 1.481287\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 2.29269\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 1.752112\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 1.739001\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 0.892919\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 6.922956\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.569033\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 0.939765\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 1.637454\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.331365\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.508276\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.787101\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 2.465545\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 0.312119\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - inv" +2026-10-29T20:48:31.0806107Z CBZ_NODE_TAP_JSON 19 "alid choices cannot invent regions or objects\n ---\n duration_ms: 0.679731\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.958644\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.610015\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.165231\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 4.273949\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 2.185528\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 1.750296\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 2.968998\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 1.118762\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.472486\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.281178\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.55613\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.936333\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 2.432066\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.384875\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.496541\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.784061\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.175184\n type: 'test'\n ...\n#" +2026-10-29T20:48:31.0832614Z CBZ_NODE_TAP_JSON 20 " Subtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 10.482081\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.797157\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.599599\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.396114\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.228027\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.255635\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.336709\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.333109\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 3.825382\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.453927\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.32915\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.395978\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.426745\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.938453\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.547922\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.499805\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.66914\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.400939\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.4" +2026-10-29T20:48:31.0858715Z CBZ_NODE_TAP_JSON 21 "44945\n type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 10.57298\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.597512\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 1.366957\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 1.836963\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 3.780456\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.408401\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.441912\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.482749\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 1.005841\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 5.181812\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.612103\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 5.45994\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 6.874743\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 2.087381\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.589431\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.47591\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 2.707571\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.473735\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 94.308936\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 37.217885\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 75.602971\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 127.310502\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and mal" +2026-10-29T20:48:31.0884398Z CBZ_NODE_TAP_JSON 22 "formed hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 110.059704\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 64.405281\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 31.374166\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.362429\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.601015\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 1.252059\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 4.479506\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 39.295563\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 15.022112\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 5.091648\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 7.267113\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 3.164355\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 2.167361\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.648316\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 6.350644\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 9.154018\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.450778\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.348406\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms:" +2026-10-29T20:48:31.0910181Z CBZ_NODE_TAP_JSON 23 " 8.159537\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 9.529749\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 3.508008\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 3.449874\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 3.10171\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.826189\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.99333\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.663668\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.889343\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.677915\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.396115\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 9.333904\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.679084\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 1.252723\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 4.467523\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.709971\n type: 'test" +2026-10-29T20:48:31.0936803Z CBZ_NODE_TAP_JSON 24 "'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.617686\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.720698\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.841579\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 9.66103\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.112403\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.355732\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 58.108555\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.00546\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 13.137335\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 16.937039\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 10.310074\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 10.826326\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.678119\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.374413\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 1.110243\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.922342\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.556386\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified " +2026-10-29T20:48:31.0963140Z CBZ_NODE_TAP_JSON 25 "replay source\n ---\n duration_ms: 3.981454\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.82641\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.420777\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 3.838973\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 1.066654\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 15.20603\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 0.642988\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.167064\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 1.356053\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.167432\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 5.740693\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 6.858336\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.973739\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.357582\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 5.988007\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 4.703726\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 5.651514\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.436273\n ty" +2026-10-29T20:48:31.0989133Z CBZ_NODE_TAP_JSON 26 "pe: 'test'\n ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 16.801086\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.589842\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 17.317345\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 4.179898\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 5.721086\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 9.030752\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 8.398435\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 8.627262\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 8.097652\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 2.086526\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.497813\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.43868\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.570401\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.635917\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 3.503512\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.736224\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.785508\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.92695\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view" +2026-10-29T20:48:31.1015397Z CBZ_NODE_TAP_JSON 27 " through 3D, 2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 4.495561\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.409539\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 7.464926\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 39.784881\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 177.867983\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 355.967177\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1064.958134\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 322.337591\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 434.816651\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 149.434319\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 573.274426\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 191.503961\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.467385\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 155.072824\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 4.136701\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.725936\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.281608\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.709626\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n " +2026-10-29T20:48:31.1041873Z CBZ_NODE_TAP_JSON 28 " duration_ms: 0.559785\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.772574\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.234765\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 19.194947\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 2.266459\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.610104\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 1.74404\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 5.28227\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 2.423619\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 1.024144\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.600927\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 11.99087\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 3.147963\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.517773\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.874048\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 2.801774\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 24.707892\n type: 'test'\n ...\n" +2026-10-29T20:48:31.1067965Z CBZ_NODE_TAP_JSON 29 "# Subtest: query view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 2.360406\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.791623\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.061574\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.328478\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 6.971633\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.606808\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.562033\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.913662\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.750631\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.172232\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.426426\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.146009\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.129145\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 14.174462\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 19.398263\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 41.21717\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 2.308698\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 2.140347\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.419217\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.18135\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.367771\n type: 'test'\n ...\n# Subt" +2026-10-29T20:48:31.1094428Z CBZ_NODE_TAP_JSON 30 "est: status snapshot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 0.840426\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.259882\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.152903\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.098747\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.237651\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.190758\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.108034\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.214972\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.197469\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.229419\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.312247\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.475287\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.523852\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.291009\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.800614\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.634469\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.367461\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.616911\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.680363\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 13.6287\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.251842\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 85.25641\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only th" +2026-10-29T20:48:31.1120840Z CBZ_NODE_TAP_JSON 31 "rough pagination and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 63.310933\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 48.106656\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 84.955882\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 161.043178\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.83112\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.644666\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.849096\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 33.01914\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.335642\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.427472\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.856372\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.479019\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.2576\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.5791\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 27.230842\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 20.903797\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 25.080576\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 26.508746\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused co" +2026-10-29T20:48:31.1147122Z CBZ_NODE_TAP_JSON 32 "nfiguration still reveals the requested unavailable section\n ---\n duration_ms: 1.896248\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 21.47487\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 26.116767\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 26.545751\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.998466\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 21.810875\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 27.37161\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.318551\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 29.74808\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.586273\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 22.656253\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 30.202487\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 37.683516\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 31.916344\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 26.64233\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 20.936635\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 28.020902\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 5.016692\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 29.638637\n type: 'test'\n ." +2026-10-29T20:48:31.1173501Z CBZ_NODE_TAP_JSON 33 "..\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 26.959408\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 23.963452\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.531371\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.136112\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 0.758591\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.297192\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.950037\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 3.35188\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.966563\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.900662\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.976914\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.177456\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.443099\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.482045\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.296537\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.640285\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.608054\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 2.279883\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable " +2026-10-29T20:48:31.1200029Z CBZ_NODE_TAP_JSON 34 "commit\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.561257\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.736351\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.425506\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.479703\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.799684\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.42372\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.403522\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.242947\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.302279\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.53353\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.762662\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 6.629324\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.652652\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 0.621893\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 1.063645\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 7.35174\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.577873\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 1.706282\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 12.578613\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - compa" +2026-10-29T20:48:31.1226421Z CBZ_NODE_TAP_JSON 35 "rison model is implemented\n ---\n duration_ms: 6.813106\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.504413\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 333.790667\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 2.017609\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.607951\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 37.915687\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 22.92955\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 8.332111\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 18.471075\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 53.219727\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 4.486881\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.906686\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 6.945739\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 1.000465\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 8.695962\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 79.153368\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.510292\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.399371\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.484445\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, enco" +2026-10-29T20:48:31.1253077Z CBZ_NODE_TAP_JSON 36 "ded traversal and malformed identities stay literal\n ---\n duration_ms: 0.634213\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.982779\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 7.628349\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.262139\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 2.790215\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.563371\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.298256\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.233212\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 1.055638\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.427937\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.25613\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.858089\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 0.754231\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 0.83665\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.286992\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 14.869744\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.350572\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.541874\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields" +2026-10-29T20:48:31.1279464Z CBZ_NODE_TAP_JSON 37 "\n ---\n duration_ms: 0.863672\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.547354\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.709985\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.575488\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.740863\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.36638\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.438448\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.390354\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.579232\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.987186\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.626454\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.557105\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 13.435214\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 4.33473\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.269123\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 2.330776\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.791606\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok " +2026-10-29T20:48:31.1306180Z CBZ_NODE_TAP_JSON 38 "721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.207806\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.245852\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.836339\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.331566\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.92275\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 4.631954\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.881313\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.354941\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.492973\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.466375\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.656605\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.490397\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.289184\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.468527\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.384819\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 83.567262\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 72.583809\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 33." +2026-10-29T20:48:31.1333035Z CBZ_NODE_TAP_JSON 39 "932354\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 74.60045\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 148.820921\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 30.469968\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.596083\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.719026\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.198224\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.031354\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.172567\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.005243\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.189537\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.233067\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.866363\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 24.346431\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 21.175606\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 25.222984\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 24.532238\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 2.026857\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 20.820417\n type: 'test'\n ...\n# Subtest: reader movement between source settlem" +2026-10-29T20:48:31.1352205Z CBZ_NODE_TAP_JSON 40 "ent and final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 24.459306\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 28.162694\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 2.053063\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 21.656548\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 29.857249\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.32071\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 24.914752\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.617583\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5639.22272\n" +2026-10-29T20:48:31.1603089Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:48:31.1603528Z with: +2026-10-29T20:48:31.1603704Z name: cbz-node-result +2026-10-29T20:48:31.1603930Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:48:31.1604199Z if-no-files-found: error +2026-10-29T20:48:31.1604408Z compression-level: 6 +2026-10-29T20:48:31.1604596Z overwrite: false +2026-10-29T20:48:31.1604783Z include-hidden-files: false +2026-10-29T20:48:31.1605313Z archive: true +2026-10-29T20:48:31.1605477Z env: +2026-10-29T20:48:31.1605706Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:31.1606108Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:48:31.1606510Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:31.1606866Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:31.1607276Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:48:31.1607645Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:48:31.1607944Z ##[endgroup] +2026-10-29T20:48:31.3079168Z With the provided path, there will be 41 files uploaded +2026-10-29T20:48:31.3084281Z Artifact name is valid! +2026-10-29T20:48:31.3085000Z Root directory input is valid! +2026-10-29T20:48:31.5854630Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:48:31.5887477Z Beginning upload of artifact content to blob storage +2026-10-29T20:48:32.0869255Z Uploaded bytes 504928 +2026-10-29T20:48:32.1362725Z Finished uploading artifact content to blob storage! +2026-10-29T20:48:32.1363304Z SHA256 digest of uploaded artifact is 0a20f98d3ca7834b6cd23e44b1c86ae4b017cdc9f3479901314961766503b305 +2026-10-29T20:48:32.1363768Z Finalizing artifact upload +2026-10-29T20:48:32.6382293Z Artifact cbz-node-result successfully finalized. Artifact ID 12931318397 +2026-10-29T20:48:32.6383009Z Artifact cbz-node-result has been successfully uploaded! Final size is 504928 bytes. Artifact ID is 12931318397 +2026-10-29T20:48:32.6386257Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40951498618/artifacts/12931318397 +2026-10-29T20:48:32.6590398Z Post job cleanup. +2026-10-29T20:48:32.7765034Z Post job cleanup. +2026-10-29T20:48:32.8517524Z [command]/usr/bin/git version +2026-10-29T20:48:32.8571008Z git version 2.56.0 +2026-10-29T20:48:32.8607535Z Temporarily overriding HOME='/home/runner/work/_temp/ad82300b-1d82-4662-961b-da5bcdffdaf5' before making global git config changes +2026-10-29T20:48:32.8608466Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:48:32.8612952Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:48:32.8653118Z Removing SSH command configuration +2026-10-29T20:48:32.8661011Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:48:32.8701370Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:48:32.8982578Z Removing HTTP extra header +2026-10-29T20:48:32.8983290Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:48:32.9025671Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:48:32.9280314Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:48:32.9280849Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:48:32.9322632Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:48:32.9698569Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/green/db7-node.tap b/cbz/evidence/cold-start-node/green/db7-node.tap new file mode 100644 index 000000000..d73c8c6dc --- /dev/null +++ b/cbz/evidence/cold-start-node/green/db7-node.tap @@ -0,0 +1,4596 @@ +TAP version 13 +# Subtest: tests/fixtures/museum_fixture.mjs +ok 1 - tests/fixtures/museum_fixture.mjs + --- + duration_ms: 31.093285 + type: 'test' + ... +# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats +ok 2 - only the current query is announced after 500ms of quiet, even if its count repeats + --- + duration_ms: 48.429486 + type: 'test' + ... +# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results +ok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results + --- + duration_ms: 0.819107 + type: 'test' + ... +# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion +ok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion + --- + duration_ms: 3.660831 + type: 'test' + ... +# Subtest: Source-identical documents at another recorded revision retain their actual current pin +ok 5 - Source-identical documents at another recorded revision retain their actual current pin + --- + duration_ms: 1.179631 + type: 'test' + ... +# Subtest: changed scope leaves the mapping unavailable +ok 6 - changed scope leaves the mapping unavailable + --- + duration_ms: 0.586296 + type: 'test' + ... +# Subtest: extra graph field leaves the mapping unavailable +ok 7 - extra graph field leaves the mapping unavailable + --- + duration_ms: 0.61327 + type: 'test' + ... +# Subtest: changed source blob leaves the mapping unavailable +ok 8 - changed source blob leaves the mapping unavailable + --- + duration_ms: 1.26653 + type: 'test' + ... +# Subtest: changed source size leaves the mapping unavailable +ok 9 - changed source size leaves the mapping unavailable + --- + duration_ms: 0.58544 + type: 'test' + ... +# Subtest: changed fingerprint leaves the mapping unavailable +ok 10 - changed fingerprint leaves the mapping unavailable + --- + duration_ms: 0.721016 + type: 'test' + ... +# Subtest: missing source leaves the mapping unavailable +ok 11 - missing source leaves the mapping unavailable + --- + duration_ms: 0.541674 + type: 'test' + ... +# Subtest: changed formal manifest leaves the mapping unavailable +ok 12 - changed formal manifest leaves the mapping unavailable + --- + duration_ms: 1.091628 + type: 'test' + ... +# Subtest: An equal-looking different node ID is never inferred to be covered +ok 13 - An equal-looking different node ID is never inferred to be covered + --- + duration_ms: 0.979298 + type: 'test' + ... +# Subtest: Other actual claims keep missing mappings explicit +ok 14 - Other actual claims keep missing mappings explicit + --- + duration_ms: 0.461127 + type: 'test' + ... +# Subtest: The actual older committed observation has a different manifest and remains unmapped +ok 15 - The actual older committed observation has a different manifest and remains unmapped + --- + duration_ms: 4.053433 + type: 'test' + ... +# Subtest: An execution for another revision cannot attach to the artifact +ok 16 - An execution for another revision cannot attach to the artifact + --- + duration_ms: 0.84761 + type: 'test' + ... +# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record +ok 17 - A fabricated accepted alignment cannot replace the pinned adverse record + --- + duration_ms: 0.664195 + type: 'test' + ... +# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review +ok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review + --- + duration_ms: 3.143564 + type: 'test' + ... +# Subtest: an unknown manifest cannot use the explicit bridge +ok 19 - an unknown manifest cannot use the explicit bridge + --- + duration_ms: 1.061334 + type: 'test' + ... +# Subtest: a wrong manifest size cannot use the explicit bridge +ok 20 - a wrong manifest size cannot use the explicit bridge + --- + duration_ms: 0.625038 + type: 'test' + ... +# Subtest: duplicate formal inventory cannot use the explicit bridge +ok 21 - duplicate formal inventory cannot use the explicit bridge + --- + duration_ms: 0.615846 + type: 'test' + ... +# Subtest: changed claim scope cannot use the explicit bridge +ok 22 - changed claim scope cannot use the explicit bridge + --- + duration_ms: 1.285209 + type: 'test' + ... +# Subtest: an extra claim coverage field cannot use the explicit bridge +ok 23 - an extra claim coverage field cannot use the explicit bridge + --- + duration_ms: 0.558601 + type: 'test' + ... +# Subtest: another declaration cannot replace the pinned evidence +ok 24 - another declaration cannot replace the pinned evidence + --- + duration_ms: 0.821659 + type: 'test' + ... +# Subtest: a forged receipt with the same commit cannot replace the pinned evidence +ok 25 - a forged receipt with the same commit cannot replace the pinned evidence + --- + duration_ms: 0.612806 + type: 'test' + ... +# Subtest: a fabricated accepted review cannot replace the pinned evidence +ok 26 - a fabricated accepted review cannot replace the pinned evidence + --- + duration_ms: 1.14413 + type: 'test' + ... +# Subtest: An equally named different claim and prototype key remain unmapped +ok 27 - An equally named different claim and prototype key remain unmapped + --- + duration_ms: 0.901439 + type: 'test' + ... +# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment +ok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment + --- + duration_ms: 0.945276 + type: 'test' + ... +# Subtest: original refuses identical duplicate proof-source entries +ok 29 - original refuses identical duplicate proof-source entries + --- + duration_ms: 1.403411 + type: 'test' + ... +# Subtest: original refuses conflicting duplicate proof-source entries +ok 30 - original refuses conflicting duplicate proof-source entries + --- + duration_ms: 1.054366 + type: 'test' + ... +# Subtest: 8228 refuses identical duplicate proof-source entries +ok 31 - 8228 refuses identical duplicate proof-source entries + --- + duration_ms: 1.019928 + type: 'test' + ... +# Subtest: 8228 refuses conflicting duplicate proof-source entries +ok 32 - 8228 refuses conflicting duplicate proof-source entries + --- + duration_ms: 0.855921 + type: 'test' + ... +# Subtest: a22f refuses identical duplicate proof-source entries +ok 33 - a22f refuses identical duplicate proof-source entries + --- + duration_ms: 0.87432 + type: 'test' + ... +# Subtest: a22f refuses conflicting duplicate proof-source entries +ok 34 - a22f refuses conflicting duplicate proof-source entries + --- + duration_ms: 4.583884 + type: 'test' + ... +# Subtest: Atlas begins with its task and working search before the source inventory +ok 35 - Atlas begins with its task and working search before the source inventory + --- + duration_ms: 1.854578 + type: 'test' + ... +# Subtest: The selector is the sole view switch while controller compatibility stays present +ok 36 - The selector is the sole view switch while controller compatibility stays present + --- + duration_ms: 0.309655 + type: 'test' + ... +# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope +ok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope + --- + duration_ms: 0.334621 + type: 'test' + ... +# Subtest: Neighborhood coverage stays available without delaying the useful graph or list +ok 38 - Neighborhood coverage stays available without delaying the useful graph or list + --- + duration_ms: 0.339493 + type: 'test' + ... +# Subtest: The historical viewer is explicitly archived with preserved entry fragments +ok 39 - The historical viewer is explicitly archived with preserved entry fragments + --- + duration_ms: 0.350365 + type: 'test' + ... +# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark +ok 40 - A closed historical archive cannot conceal a failed source or refused bookmark + --- + duration_ms: 0.212204 + type: 'test' + ... +# Subtest: Sharing the selected source snapshot remains a visible reading action +ok 41 - Sharing the selected source snapshot remains a visible reading action + --- + duration_ms: 0.126737 + type: 'test' + ... +# Subtest: Atlas layout loads after current styles without replacing the shared brand +ok 42 - Atlas layout loads after current styles without replacing the shared brand + --- + duration_ms: 0.18235 + type: 'test' + ... +# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction +ok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction + --- + duration_ms: 1.408571 + type: 'test' + ... +# Subtest: an admitted isolated node has two explicit empty groups +ok 44 - an admitted isolated node has two explicit empty groups + --- + duration_ms: 0.28624 + type: 'test' + ... +# Subtest: missing and prototype names cannot acquire inferred connections +ok 45 - missing and prototype names cannot acquire inferred connections + --- + duration_ms: 0.163407 + type: 'test' + ... +# Subtest: late optional data patches the currently selected node rather than its request-time selection +ok 46 - late optional data patches the currently selected node rather than its request-time selection + --- + duration_ms: 1.989522 + type: 'test' + ... +# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort +ok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort + --- + duration_ms: 0.792172 + type: 'test' + ... +# Subtest: focused operational evidence is retained until focus leaves its section +ok 48 - focused operational evidence is retained until focus leaves its section + --- + duration_ms: 1.055438 + type: 'test' + ... +# Subtest: a refused or no-longer-known selection receives no late substituted resume +ok 49 - a refused or no-longer-known selection receives no late substituted resume + --- + duration_ms: 1.219893 + type: 'test' + ... +# Subtest: pagehide aborts the request and suppresses an uncooperative late response +ok 50 - pagehide aborts the request and suppresses an uncooperative late response + --- + duration_ms: 0.935813 + type: 'test' + ... +# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback +ok 51 - a persisted pageshow acquires current optional records once and preserves null fallback + --- + duration_ms: 1.011201 + type: 'test' + ... +# Subtest: missing cancellation platform does not prevent primary reading or late status coordination +ok 52 - missing cancellation platform does not prevent primary reading or late status coordination + --- + duration_ms: 1.530084 + type: 'test' + ... +# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence +ok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence + --- + duration_ms: 1.685547 + type: 'test' + ... +# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies +ok 54 - dependency focus retains only selected dependent and its recorded direct dependencies + --- + duration_ms: 0.460542 + type: 'test' + ... +# Subtest: empty/filtered selection and ceiling never invent source nodes +ok 55 - empty/filtered selection and ceiling never invent source nodes + --- + duration_ms: 1.722394 + type: 'test' + ... +# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap +ok 56 - actual wrapped label sizes stay inside the viewport and do not overlap + --- + duration_ms: 1.382516 + type: 'test' + ... +# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers +ok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers + --- + duration_ms: 0.425185 + type: 'test' + ... +# Subtest: labels leave a distinct unselected node clear for actual canvas picking +ok 58 - labels leave a distinct unselected node clear for actual canvas picking + --- + duration_ms: 1.228428 + type: 'test' + ... +# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged +ok 59 - camera-depth order and identifier ties are deterministic and inputs remain unchanged + --- + duration_ms: 1.087468 + type: 'test' + ... +# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles +ok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles + --- + duration_ms: 0.316319 + type: 'test' + ... +# Subtest: edge anchors retain an in-bounds readable label when space permits +ok 61 - edge anchors retain an in-bounds readable label when space permits + --- + duration_ms: 0.242379 + type: 'test' + ... +# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits +ok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits + --- + duration_ms: 2.280699 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 63 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.883666 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 64 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 1.967292 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 65 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.32495 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 66 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 4.12815 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 67 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 3.789376 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 68 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.656036 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 69 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.980698 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 4.957688 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 71 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.446497 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 72 - navigation and grids can reflow on small screens + --- + duration_ms: 1.092668 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 73 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.288009 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 74 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.163687 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 11.665928 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 10.201528 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 77 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 1037.8673 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 78 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 37.837147 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 79 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 51.337078 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 80 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 40.502562 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 81 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 26.868646 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 82 - encoded punctuation stays inert search text + --- + duration_ms: 27.950858 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 83 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 29.552378 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 84 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 5.799466 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 85 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 25.310091 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 86 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 25.161803 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 26.747869 + type: 'test' + ... +# Subtest: verified category counts expose content and references directly without changing the source selection +ok 88 - verified category counts expose content and references directly without changing the source selection + --- + duration_ms: 24.868355 + type: 'test' + ... +# Subtest: changing categories resets both pagers and retains native selector focus +ok 89 - changing categories resets both pagers and retains native selector focus + --- + duration_ms: 9.429738 + type: 'test' + ... +# Subtest: All preserves ordered overlapping categories and complete edge multiplicity +ok 90 - All preserves ordered overlapping categories and complete edge multiplicity + --- + duration_ms: 10.390782 + type: 'test' + ... +# Subtest: an empty category reports zero results with both pagers hidden +ok 91 - an empty category reports zero results with both pagers hidden + --- + duration_ms: 5.71991 + type: 'test' + ... +# Subtest: selection changes clear category state and ignore an older in-flight comparison +ok 92 - selection changes clear category state and ignore an older in-flight comparison + --- + duration_ms: 7.960435 + type: 'test' + ... +# Subtest: payload refusal and malformed history discard category results and announcements +ok 93 - payload refusal and malformed history discard category results and announcements + --- + duration_ms: 11.445676 + type: 'test' + ... +# Subtest: Compare source panel demand loader exists +ok 94 - Compare source panel demand loader exists + --- + duration_ms: 0.936829 + type: 'test' + ... +# Subtest: An explicit current-source query requests even the empty source search +ok 95 - An explicit current-source query requests even the empty source search + --- + duration_ms: 1.402755 + type: 'test' + ... +# Subtest: Only a target in the actual source panel requests its verifier +ok 96 - Only a target in the actual source panel requests its verifier + --- + duration_ms: 0.795628 + type: 'test' + ... +# Subtest: Both pagers use distinct identities and ordinary, non-live count spans +ok 97 - Both pagers use distinct identities and ordinary, non-live count spans + --- + duration_ms: 7.533362 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 13.18122 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 99 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 1.274642 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 100 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 1.143866 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 101 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 1.432753 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 102 - acquisition: identical inventory duplicate + --- + duration_ms: 1.347654 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 103 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.798933 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 104 - acquisition: graph blob conflict + --- + duration_ms: 1.121354 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 105 - acquisition: graph bytes conflict + --- + duration_ms: 0.898127 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 106 - acquisition: graph missing exact inventory + --- + duration_ms: 2.535901 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 107 - acquisition: graph incorrect pin + --- + duration_ms: 1.252795 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 108 - acquisition: reference blob conflict + --- + duration_ms: 0.968331 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 109 - acquisition: reference bytes conflict + --- + duration_ms: 0.661732 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 110 - acquisition: reference missing exact inventory + --- + duration_ms: 0.741191 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 111 - acquisition: reference incorrect pin + --- + duration_ms: 0.76911 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 112 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.895375 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 113 - acquisition: graph reference overlap + --- + duration_ms: 0.723793 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 114 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.733392 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 115 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.669131 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 116 - acquisition: excerpt duplicate id + --- + duration_ms: 0.762246 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 117 - acquisition: excerpt duplicate span + --- + duration_ms: 1.736873 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 118 - acquisition: excerpt digest mismatch + --- + duration_ms: 1.039295 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 119 - acquisition: excerpt lone surrogate + --- + duration_ms: 1.559603 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 120 - acquisition: excerpt boolean line + --- + duration_ms: 1.279122 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 121 - acquisition: excerpt empty id + --- + duration_ms: 0.501692 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 122 - acquisition: excerpt invalid range + --- + duration_ms: 0.528995 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 123 - acquisition: excerpt unsafe path + --- + duration_ms: 0.452567 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 124 - acquisition: malformed references collection + --- + duration_ms: 0.599103 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 125 - acquisition: malformed equations collection + --- + duration_ms: 0.150976 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 126 - acquisition: malformed sources collection + --- + duration_ms: 0.877536 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 127 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.601319 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 128 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 3.793608 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 129 - acquisition: graph points at Main + --- + duration_ms: 1.122642 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 130 - acquisition: invalid inventory repository + --- + duration_ms: 0.599679 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 131 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 0.780653 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 132 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.700705 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 133 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.591152 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 134 - acquisition: unsafe encoded inventory path + --- + duration_ms: 1.355125 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 135 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.565577 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 136 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.486702 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 137 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.582368 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.640485 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 139 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 0.909566 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 140 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 0.902495 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 141 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 1.065789 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 142 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.845875 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 143 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 9.54834 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 144 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 1.789806 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 145 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 1.39902 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 1.362421 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 147 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.560834 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 148 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.309439 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 149 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 3.300219 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 150 - fallback HTTP refusal remains unavailable + --- + duration_ms: 1.108107 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 151 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 1.018616 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 152 - aborted acquisition makes no recovery request + --- + duration_ms: 0.903166 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 153 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.667348 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 154 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 12.124783 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 155 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 2.230533 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 156 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 11.687967 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 3.658823 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 158 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.616806 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 159 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.335253 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 160 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 2.817165 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 161 - fallback HTTP refusal remains unavailable + --- + duration_ms: 1.117818 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 162 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.884752 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 163 - aborted acquisition makes no recovery request + --- + duration_ms: 0.897415 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 164 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.620654 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 165 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 0.792805 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.342741 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.248154 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 168 - missing fields stay explicitly not recorded + --- + duration_ms: 0.582568 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 169 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.511644 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 170 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.203724 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 171 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.29356 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 172 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.160903 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 173 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 0.677403 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 174 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 195.487576 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 175 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 0.430352 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.399954 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 1.397332 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.641309 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.523931 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 180 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.360692 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 181 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.350452 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 182 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 0.877544 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 183 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.565841 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 184 - modified browse clicks retain native open-link behavior + --- + duration_ms: 0.494124 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 185 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.387155 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 186 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.260562 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 187 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.40925 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 188 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.236211 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 189 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.602983 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 190 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.359988 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 191 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.562817 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.346836 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 193 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 0.727816 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 9.061262 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 195 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 0.968523 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 196 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 0.700313 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 197 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 1.003921 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 198 - acquisition: identical inventory duplicate + --- + duration_ms: 0.809876 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 199 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.618614 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 200 - acquisition: graph blob conflict + --- + duration_ms: 0.623662 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 201 - acquisition: graph bytes conflict + --- + duration_ms: 0.620366 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 202 - acquisition: graph missing exact inventory + --- + duration_ms: 0.786749 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 203 - acquisition: graph incorrect pin + --- + duration_ms: 0.659428 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 204 - acquisition: reference blob conflict + --- + duration_ms: 0.615463 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 205 - acquisition: reference bytes conflict + --- + duration_ms: 0.598535 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 206 - acquisition: reference missing exact inventory + --- + duration_ms: 0.64658 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 207 - acquisition: reference incorrect pin + --- + duration_ms: 0.608399 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 208 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.584496 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 209 - acquisition: graph reference overlap + --- + duration_ms: 0.645245 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 210 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.58432 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 211 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.491085 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 212 - acquisition: excerpt duplicate id + --- + duration_ms: 0.75555 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 213 - acquisition: excerpt duplicate span + --- + duration_ms: 0.60835 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 214 - acquisition: excerpt digest mismatch + --- + duration_ms: 0.61331 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 215 - acquisition: excerpt lone surrogate + --- + duration_ms: 0.588984 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 216 - acquisition: excerpt boolean line + --- + duration_ms: 0.477494 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 217 - acquisition: excerpt empty id + --- + duration_ms: 0.556945 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 218 - acquisition: excerpt invalid range + --- + duration_ms: 0.736375 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 219 - acquisition: excerpt unsafe path + --- + duration_ms: 0.572337 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 220 - acquisition: malformed references collection + --- + duration_ms: 0.634029 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 221 - acquisition: malformed equations collection + --- + duration_ms: 0.173758 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 222 - acquisition: malformed sources collection + --- + duration_ms: 2.408772 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 223 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.663436 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 224 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 0.649732 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 225 - acquisition: graph points at Main + --- + duration_ms: 0.622278 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 226 - acquisition: invalid inventory repository + --- + duration_ms: 1.430962 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 227 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 1.983027 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 228 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.62563 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 229 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.663915 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 230 - acquisition: unsafe encoded inventory path + --- + duration_ms: 0.60827 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 231 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.647005 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 232 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.541994 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 233 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.570953 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.594079 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 235 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 1.752559 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 236 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 1.092628 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 237 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 1.145322 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 238 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.416059 + type: 'test' + ... +# Subtest: current snapshot rejects invalid identities and preserves literal source values +ok 239 - current snapshot rejects invalid identities and preserves literal source values + --- + duration_ms: 0.772029 + type: 'test' + ... +# Subtest: freshness separates future, stale and current observations +ok 240 - freshness separates future, stale and current observations + --- + duration_ms: 0.091667 + type: 'test' + ... +# Subtest: source links bind safe paths to pinned commits and reject executable targets +ok 241 - source links bind safe paths to pinned commits and reject executable targets + --- + duration_ms: 0.159031 + type: 'test' + ... +# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling +ok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling + --- + duration_ms: 0.479526 + type: 'test' + ... +# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval +ok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval + --- + duration_ms: 0.195254 + type: 'test' + ... +# Subtest: search and independent URL state preserve exact identifiers and reject unknown node +ok 244 - search and independent URL state preserve exact identifiers and reject unknown node + --- + duration_ms: 0.426312 + type: 'test' + ... +# Subtest: hash mismatch and malformed payload refuse current rendering +ok 245 - hash mismatch and malformed payload refuse current rendering + --- + duration_ms: 2.866091 + type: 'test' + ... +# Subtest: global graph search finds unloaded nodes and bounds large catalogs +ok 246 - global graph search finds unloaded nodes and bounds large catalogs + --- + duration_ms: 2.443898 + type: 'test' + ... +# Subtest: equation and graph share bookmarks refuse changed main source instead of substituting +ok 247 - equation and graph share bookmarks refuse changed main source instead of substituting + --- + duration_ms: 0.227395 + type: 'test' + ... +# Subtest: graph search filter survives source-bound URL state +ok 248 - graph search filter survives source-bound URL state + --- + duration_ms: 0.100818 + type: 'test' + ... +# Subtest: prototype property names cannot become fabricated graph nodes +ok 249 - prototype property names cannot become fabricated graph nodes + --- + duration_ms: 0.6663 + type: 'test' + ... +# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root +ok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root + --- + duration_ms: 14.669228 + type: 'test' + ... +# Subtest: current required routes return one shortest route per unresolved research target +ok 251 - current required routes return one shortest route per unresolved research target + --- + duration_ms: 0.623582 + type: 'test' + ... +# Subtest: context-only unresolved targets affect all-edge reach but earn no required route +ok 252 - context-only unresolved targets affect all-edge reach but earn no required route + --- + duration_ms: 0.201461 + type: 'test' + ... +# Subtest: context shortcuts do not erase longer required routes and parallel edges count once +ok 253 - context shortcuts do not erase longer required routes and parallel edges count once + --- + duration_ms: 0.256849 + type: 'test' + ... +# Subtest: unresolved target kinds and classifications match the existing source vocabulary +ok 254 - unresolved target kinds and classifications match the existing source vocabulary + --- + duration_ms: 0.312087 + type: 'test' + ... +# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions +ok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions + --- + duration_ms: 4.991134 + type: 'test' + ... +# Subtest: full reach and required routes do not depend on filtered or capped viewport +ok 256 - full reach and required routes do not depend on filtered or capped viewport + --- + duration_ms: 0.585144 + type: 'test' + ... +# Subtest: bounded graph windows expose complete match and frontier counts with paging +ok 257 - bounded graph windows expose complete match and frontier counts with paging + --- + duration_ms: 4.045074 + type: 'test' + ... +# Subtest: graph filters apply to complete matches without altering raw node labels or edges +ok 258 - graph filters apply to complete matches without altering raw node labels or edges + --- + duration_ms: 0.362884 + type: 'test' + ... +# Subtest: equation text filtering retains inert literal content and bounded complete counts +ok 259 - equation text filtering retains inert literal content and bounded complete counts + --- + duration_ms: 1.433129 + type: 'test' + ... +# Subtest: atlas offset equation search and exact metadata filters survive URL state +ok 260 - atlas offset equation search and exact metadata filters survive URL state + --- + duration_ms: 0.356788 + type: 'test' + ... +# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage +ok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage + --- + duration_ms: 16.29261 + type: 'test' + ... +# Subtest: claim summary puts exact scope and pinned source before continuation metadata +ok 262 - claim summary puts exact scope and pinned source before continuation metadata + --- + duration_ms: 5.290438 + type: 'test' + ... +# Subtest: controller owns an explicit formal gap even without the spatial rendering platform +ok 263 - controller owns an explicit formal gap even without the spatial rendering platform + --- + duration_ms: 4.624538 + type: 'test' + ... +# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection +ok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection + --- + duration_ms: 6.656242 + type: 'test' + ... +# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses +ok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses + --- + duration_ms: 12.156381 + type: 'test' + ... +# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence +ok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence + --- + duration_ms: 33.135117 + type: 'test' + ... +# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints +ok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints + --- + duration_ms: 18.88242 + type: 'test' + ... +# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back +ok 268 - atlas filter bookmarks persist through search, node selection, reload and Back + --- + duration_ms: 15.797205 + type: 'test' + ... +# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters +ok 269 - atlas refuses mismatched source bookmarks before applying metadata filters + --- + duration_ms: 3.057352 + type: 'test' + ... +# Subtest: node identifiers and recorded source paths require own literal string fields +ok 270 - node identifiers and recorded source paths require own literal string fields + --- + duration_ms: 0.239091 + type: 'test' + ... +# Subtest: static reading links retain one advertised material archive among source links +ok 271 - static reading links retain one advertised material archive among source links + --- + duration_ms: 0.562113 + type: 'test' + ... +# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses +ok 272 - static reading links refuse missing ambiguous and unsafe archive addresses + --- + duration_ms: 0.445512 + type: 'test' + ... +# Subtest: refused source identity survives view changes Share reload and history +ok 273 - refused source identity survives view changes Share reload and history + --- + duration_ms: 58.1758 + type: 'test' + ... +# Subtest: initial Share and every non-adopting control preserve a refused identity +ok 274 - initial Share and every non-adopting control preserve a refused identity + --- + duration_ms: 3.875835 + type: 'test' + ... +# Subtest: explicit current diagnostic selection alone may adopt current source pins +ok 275 - explicit current diagnostic selection alone may adopt current source pins + --- + duration_ms: 4.99243 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 276 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 2.213991 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.527083 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.271665 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 279 - missing fields stay explicitly not recorded + --- + duration_ms: 0.490069 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 280 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.753567 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 281 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.208181 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 282 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.460679 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 283 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.192901 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 284 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 1.040031 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 285 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 203.872413 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 286 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 1.247124 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.434584 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 2.104292 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.630246 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.547138 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 291 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.380531 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 292 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.448608 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 293 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 1.906535 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 294 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.794205 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 295 - modified browse clicks retain native open-link behavior + --- + duration_ms: 1.058182 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 296 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.431632 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 297 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.234491 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 298 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.321654 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 299 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.4396 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 300 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.477318 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 301 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.342237 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 302 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.472606 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.328398 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 304 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 1.273402 + type: 'test' + ... +# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning +ok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning + --- + duration_ms: 5.233033 + type: 'test' + ... +# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer +ok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer + --- + duration_ms: 6.480684 + type: 'test' + ... +# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure +ok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure + --- + duration_ms: 4.214761 + type: 'test' + ... +# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused +ok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused + --- + duration_ms: 0.607615 + type: 'test' + ... +# Subtest: citation keeps only the canonical figure permalink and pinned teaching source +ok 309 - citation keeps only the canonical figure permalink and pinned teaching source + --- + duration_ms: 0.438592 + type: 'test' + ... +# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer +ok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer + --- + duration_ms: 1.455768 + type: 'test' + ... +# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes +ok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes + --- + duration_ms: 2.570843 + type: 'test' + ... +# Subtest: light theme colors are exported from the captured record +ok 312 - light theme colors are exported from the captured record + --- + duration_ms: 0.771342 + type: 'test' + ... +# Subtest: inherited native system font stacks remain self-contained without remote font syntax +ok 313 - inherited native system font stacks remain self-contained without remote font syntax + --- + duration_ms: 1.11821 + type: 'test' + ... +# Subtest: all diagram text and attribute values are XML escaped +ok 314 - all diagram text and attribute values are XML escaped + --- + duration_ms: 1.166536 + type: 'test' + ... +# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind +ok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind + --- + duration_ms: 2.796367 + type: 'test' + ... +# Subtest: blank, stale or unsupported diagram content is refused instead of exported +ok 316 - blank, stale or unsupported diagram content is refused instead of exported + --- + duration_ms: 4.036907 + type: 'test' + ... +# Subtest: clipboard absence exposes manual citation and never permits copy +ok 317 - clipboard absence exposes manual citation and never permits copy + --- + duration_ms: 0.36126 + type: 'test' + ... +# Subtest: clipboard denial preserves the current manual text and reports failure +ok 318 - clipboard denial preserves the current manual text and reports failure + --- + duration_ms: 0.25873 + type: 'test' + ... +# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied +ok 319 - pending clipboard writes are serialized and cannot report stale settings as copied + --- + duration_ms: 0.309455 + type: 'test' + ... +# Subtest: capture refusal clears the current citation text and blocks a later copy +ok 320 - capture refusal clears the current citation text and blocks a later copy + --- + duration_ms: 0.247994 + type: 'test' + ... +# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback +ok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback + --- + duration_ms: 0.420233 + type: 'test' + ... +# Subtest: a successful current write reports success, while unavailable figures block later writes +ok 322 - a successful current write reports success, while unavailable figures block later writes + --- + duration_ms: 0.236275 + type: 'test' + ... +# Subtest: evidence shows recorded links without promoting missing review or formal evidence +ok 323 - evidence shows recorded links without promoting missing review or formal evidence + --- + duration_ms: 2.6244 + type: 'test' + ... +# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification +ok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification + --- + duration_ms: 0.598727 + type: 'test' + ... +# Subtest: all-records and exact classification filters intersect text without relabeling nodes +ok 325 - all-records and exact classification filters intersect text without relabeling nodes + --- + duration_ms: 20.350227 + type: 'test' + ... +# Subtest: saved filters restore exact state and visibly reject unknown classifications +ok 326 - saved filters restore exact state and visibly reject unknown classifications + --- + duration_ms: 1.732329 + type: 'test' + ... +# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references +ok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references + --- + duration_ms: 2.239165 + type: 'test' + ... +# Subtest: absent context is visibly not recorded and is never inferred from dependencies +ok 328 - absent context is visibly not recorded and is never inferred from dependencies + --- + duration_ms: 2.155937 + type: 'test' + ... +# Subtest: unresolved and unsafe context references stay literal without executable destinations +ok 329 - unresolved and unsafe context references stay literal without executable destinations + --- + duration_ms: 1.677324 + type: 'test' + ... +# Subtest: malformed context preserves complete recorded values instead of inventing references +ok 330 - malformed context preserves complete recorded values instead of inventing references + --- + duration_ms: 2.205759 + type: 'test' + ... +# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search +ok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search + --- + duration_ms: 3.004716 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay +ok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay + --- + duration_ms: 55.519305 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay +ok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay + --- + duration_ms: 172.693219 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay +ok 334 - dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay + --- + duration_ms: 13.347684 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay +ok 335 - dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay + --- + duration_ms: 166.278395 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay +ok 336 - dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay + --- + duration_ms: 33.066057 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay +ok 337 - dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay + --- + duration_ms: 165.289138 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay +ok 338 - dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay + --- + duration_ms: 13.22257 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay +ok 339 - dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay + --- + duration_ms: 170.52713 + type: 'test' + ... +# Subtest: the pinned graph is complete and structurally valid +ok 340 - the pinned graph is complete and structurally valid + --- + duration_ms: 3.252374 + type: 'test' + ... +# Subtest: unresolved targets include open leaves with no recorded dependents +ok 341 - unresolved targets include open leaves with no recorded dependents + --- + duration_ms: 1.64759 + type: 'test' + ... +# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves +ok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves + --- + duration_ms: 2.522758 + type: 'test' + ... +# Subtest: downstream counts keep all-edge reach separate from required-only reach +ok 343 - downstream counts keep all-edge reach separate from required-only reach + --- + duration_ms: 0.813915 + type: 'test' + ... +# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts +ok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts + --- + duration_ms: 1.843155 + type: 'test' + ... +# Subtest: reach labels state their edge scope and do not describe reach as blocking +ok 345 - reach labels state their edge scope and do not describe reach as blocking + --- + duration_ms: 1.149153 + type: 'test' + ... +# Subtest: search covers ids, notes, source paths, classifications and edge relations +ok 346 - search covers ids, notes, source paths, classifications and edge relations + --- + duration_ms: 2.03456 + type: 'test' + ... +# Subtest: the app verifies graph bytes against a compiled source identity before parsing +ok 347 - the app verifies graph bytes against a compiled source identity before parsing + --- + duration_ms: 4.416229 + type: 'test' + ... +# Subtest: classification styling and metadata preserve source review lineage +ok 348 - classification styling and metadata preserve source review lineage + --- + duration_ms: 2.636592 + type: 'test' + ... +# Subtest: classification CSS identifiers use locale-neutral ASCII case folding +ok 349 - classification CSS identifiers use locale-neutral ASCII case folding + --- + duration_ms: 0.272577 + type: 'test' + ... +# Subtest: dependency paths use required source edges and retain relation metadata +ok 350 - dependency paths use required source edges and retain relation metadata + --- + duration_ms: 3.409229 + type: 'test' + ... +# Subtest: saved node links fail visibly instead of selecting an unrelated node +ok 351 - saved node links fail visibly instead of selecting an unrelated node + --- + duration_ms: 1.950829 + type: 'test' + ... +# Subtest: provenance pins the exact Math source bytes and labels the snapshot boundary +ok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary + --- + duration_ms: 0.783973 + type: 'test' + ... +# Subtest: the viewer page exposes its source boundary and accessible interaction contract +ok 353 - the viewer page exposes its source boundary and accessible interaction contract + --- + duration_ms: 1.689667 + type: 'test' + ... +# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail +ok 354 - the evidence table keeps automatic layout and breaks words only in Source detail + --- + duration_ms: 1.503086 + type: 'test' + ... +# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure +ok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure + --- + duration_ms: 1.481287 + type: 'test' + ... +# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists +ok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists + --- + duration_ms: 2.29269 + type: 'test' + ... +# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified +ok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified + --- + duration_ms: 1.752112 + type: 'test' + ... +# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph +ok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph + --- + duration_ms: 1.739001 + type: 'test' + ... +# Subtest: the unresolved-target sentence names exactly the viewer list rule +ok 359 - the unresolved-target sentence names exactly the viewer list rule + --- + duration_ms: 0.892919 + type: 'test' + ... +# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read +ok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read + --- + duration_ms: 6.922956 + type: 'test' + ... +# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries +ok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries + --- + duration_ms: 1.569033 + type: 'test' + ... +# Subtest: cone weight is determinant squared only on the negative-definite side +ok 362 - cone weight is determinant squared only on the negative-definite side + --- + duration_ms: 0.939765 + type: 'test' + ... +# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two +ok 363 - halving pin distance divides cubic gap by eight and annulus radii by two + --- + duration_ms: 1.637454 + type: 'test' + ... +# Subtest: remote membership uses fixed distance and an open height window +ok 364 - remote membership uses fixed distance and an open height window + --- + duration_ms: 0.331365 + type: 'test' + ... +# Subtest: all eight three-object subsets receive the correct capacity-one partition +ok 365 - all eight three-object subsets receive the correct capacity-one partition + --- + duration_ms: 0.508276 + type: 'test' + ... +# Subtest: models reject invalid or unrepresentable teaching parameters +ok 366 - models reject invalid or unrepresentable teaching parameters + --- + duration_ms: 0.787101 + type: 'test' + ... +# Subtest: shared parameters restore all three experiments, including empty selection +ok 367 - shared parameters restore all three experiments, including empty selection + --- + duration_ms: 2.465545 + type: 'test' + ... +# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion +ok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion + --- + duration_ms: 0.312119 + type: 'test' + ... +# Subtest: invalid choices cannot invent regions or objects +ok 369 - invalid choices cannot invent regions or objects + --- + duration_ms: 0.679731 + type: 'test' + ... +# Subtest: sharing serializes current controls and preserves section and unrelated query fields +ok 370 - sharing serializes current controls and preserves section and unrelated query fields + --- + duration_ms: 0.958644 + type: 'test' + ... +# Subtest: curvature presets draw and commit the selected controls with matching share and export state +ok 371 - curvature presets draw and commit the selected controls with matching share and export state + --- + duration_ms: 1.610015 + type: 'test' + ... +# Subtest: unknown curvature presets leave controls and current figure untouched +ok 372 - unknown curvature presets leave controls and current figure untouched + --- + duration_ms: 0.165231 + type: 'test' + ... +# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks +ok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks + --- + duration_ms: 4.273949 + type: 'test' + ... +# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes +ok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes + --- + duration_ms: 2.185528 + type: 'test' + ... +# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata +ok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata + --- + duration_ms: 1.750296 + type: 'test' + ... +# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions +ok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions + --- + duration_ms: 2.968998 + type: 'test' + ... +# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture +ok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture + --- + duration_ms: 1.118762 + type: 'test' + ... +# Subtest: controller coalesces repeated activation while a preparation is pending +ok 378 - controller coalesces repeated activation while a preparation is pending + --- + duration_ms: 0.472486 + type: 'test' + ... +# Subtest: changed or tampered final SVG, metadata or citation refuses download +ok 379 - changed or tampered final SVG, metadata or citation refuses download + --- + duration_ms: 1.281178 + type: 'test' + ... +# Subtest: control revision cancels work even after a change away and back +ok 380 - control revision cancels work even after a change away and back + --- + duration_ms: 0.55613 + type: 'test' + ... +# Subtest: late failure from an invalidated operation cannot erase newer successful state +ok 381 - late failure from an invalidated operation cannot erase newer successful state + --- + duration_ms: 0.936333 + type: 'test' + ... +# Subtest: capture, preparation, null result and download errors stay explicit and allow retry +ok 382 - capture, preparation, null result and download errors stay explicit and allow retry + --- + duration_ms: 2.432066 + type: 'test' + ... +# Subtest: unready controller cannot prepare or download a figure +ok 383 - unready controller cannot prepare or download a figure + --- + duration_ms: 0.384875 + type: 'test' + ... +# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid +ok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid + --- + duration_ms: 0.496541 + type: 'test' + ... +# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage +ok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage + --- + duration_ms: 0.784061 + type: 'test' + ... +# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources +ok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources + --- + duration_ms: 1.175184 + type: 'test' + ... +# Subtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks +ok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks + --- + duration_ms: 10.482081 + type: 'test' + ... +# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives +ok 388 - existing and unknown collection bookmarks retain Files while explicit text survives + --- + duration_ms: 1.797157 + type: 'test' + ... +# Subtest: collection links preserve literal query and independent state without changing the target +ok 389 - collection links preserve literal query and independent state without changing the target + --- + duration_ms: 0.599599 + type: 'test' + ... +# Subtest: an excerpt link retains exact source commit, literal filename and complete line range +ok 390 - an excerpt link retains exact source commit, literal filename and complete line range + --- + duration_ms: 0.396114 + type: 'test' + ... +# Subtest: invalid or missing excerpt ranges cannot become invented source line identities +ok 391 - invalid or missing excerpt ranges cannot become invented source line identities + --- + duration_ms: 0.228027 + type: 'test' + ... +# Subtest: search links preserve literal text and unrelated page state +ok 392 - search links preserve literal text and unrelated page state + --- + duration_ms: 1.255635 + type: 'test' + ... +# Subtest: empty queries remove only the current-source parameter +ok 393 - empty queries remove only the current-source parameter + --- + duration_ms: 0.336709 + type: 'test' + ... +# Subtest: no initialization on another page or before snapshot admission +ok 394 - no initialization on another page or before snapshot admission + --- + duration_ms: 0.333109 + type: 'test' + ... +# Subtest: aggregate count uses area, all realizations, and bin width exactly once +ok 395 - aggregate count uses area, all realizations, and bin width exactly once + --- + duration_ms: 3.825382 + type: 'test' + ... +# Subtest: twice the count gives twice the mass and density +ok 396 - twice the count gives twice the mass and density + --- + duration_ms: 0.453927 + type: 'test' + ... +# Subtest: adding zero-count realizations still increases the denominator +ok 397 - adding zero-count realizations still increases the denominator + --- + duration_ms: 0.32915 + type: 'test' + ... +# Subtest: a wider synthetic bin preserves mass and divides density by its width +ok 398 - a wider synthetic bin preserves mass and divides density by its width + --- + duration_ms: 0.395978 + type: 'test' + ... +# Subtest: zero counts produce valid zero estimates without a fabricated positive floor +ok 399 - zero counts produce valid zero estimates without a fabricated positive floor + --- + duration_ms: 0.426745 + type: 'test' + ... +# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers +ok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers + --- + duration_ms: 0.938453 + type: 'test' + ... +# Subtest: only positive ordered finite bin edges are accepted +ok 401 - only positive ordered finite bin edges are accepted + --- + duration_ms: 0.547922 + type: 'test' + ... +# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density +ok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density + --- + duration_ms: 0.499805 + type: 'test' + ... +# Subtest: input parsing rejects blanks instead of turning them into zero counts +ok 403 - input parsing rejects blanks instead of turning them into zero counts + --- + duration_ms: 1.66914 + type: 'test' + ... +# Subtest: decimal input, including scientific notation, reaches the same normalization +ok 404 - decimal input, including scientific notation, reaches the same normalization + --- + duration_ms: 1.400939 + type: 'test' + ... +# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero +ok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero + --- + duration_ms: 1.444945 + type: 'test' + ... +# Subtest: six complete inputs feed exactly one conditional conclusion +ok 406 - six complete inputs feed exactly one conditional conclusion + --- + duration_ms: 10.57298 + type: 'test' + ... +# Subtest: the normalization and fixed lower comparison are retained +ok 407 - the normalization and fixed lower comparison are retained + --- + duration_ms: 1.597512 + type: 'test' + ... +# Subtest: measurability and almost-everywhere quantifiers are retained +ok 408 - measurability and almost-everywhere quantifiers are retained + --- + duration_ms: 1.366957 + type: 'test' + ... +# Subtest: positive and zero cases and the density non-implication remain explicit +ok 409 - positive and zero cases and the density non-implication remain explicit + --- + duration_ms: 1.836963 + type: 'test' + ... +# Subtest: changed source bytes are refused before projection +ok 410 - changed source bytes are refused before projection + --- + duration_ms: 3.780456 + type: 'test' + ... +# Subtest: integer and mutable commit identities are refused +ok 411 - integer and mutable commit identities are refused + --- + duration_ms: 0.408401 + type: 'test' + ... +# Subtest: a numeric hash cannot be coerced into a string +ok 412 - a numeric hash cannot be coerced into a string + --- + duration_ms: 0.441912 + type: 'test' + ... +# Subtest: private repository and changed proof paths are refused +ok 413 - private repository and changed proof paths are refused + --- + duration_ms: 0.482749 + type: 'test' + ... +# Subtest: redirected URL and changed blob or size are refused +ok 414 - redirected URL and changed blob or size are refused + --- + duration_ms: 1.005841 + type: 'test' + ... +# Subtest: deleting H3 cannot silently weaken the route +ok 415 - deleting H3 cannot silently weaken the route + --- + duration_ms: 5.181812 + type: 'test' + ... +# Subtest: ALL cannot become ANY +ok 416 - ALL cannot become ANY + --- + duration_ms: 1.612103 + type: 'test' + ... +# Subtest: self dependency or unknown nodes are refused +ok 417 - self dependency or unknown nodes are refused + --- + duration_ms: 5.45994 + type: 'test' + ... +# Subtest: invented acceptance and independence fields are refused +ok 418 - invented acceptance and independence fields are refused + --- + duration_ms: 6.874743 + type: 'test' + ... +# Subtest: rendering exposes hypotheses, exact identity, and application boundary +ok 419 - rendering exposes hypotheses, exact identity, and application boundary + --- + duration_ms: 2.087381 + type: 'test' + ... +# Subtest: a failed load clears any earlier ready view and says so in the status line +ok 420 - a failed load clears any earlier ready view and says so in the status line + --- + duration_ms: 0.589431 + type: 'test' + ... +# Subtest: a page without the status line still shows the refusal in the host, without a role +ok 421 - a page without the status line still shows the refusal in the host, without a role + --- + duration_ms: 0.47591 + type: 'test' + ... +# Subtest: the source fixture is complete and immutable +ok 422 - the source fixture is complete and immutable + --- + duration_ms: 2.707571 + type: 'test' + ... +# Subtest: museum HTML has the route host, navigation and module without replacing existing cards +ok 423 - museum HTML has the route host, navigation and module without replacing existing cards + --- + duration_ms: 1.473735 + type: 'test' + ... +# Subtest: CLI projects the exact source and produces deterministic JSON +ok 424 - CLI projects the exact source and produces deterministic JSON + --- + duration_ms: 94.308936 + type: 'test' + ... +# Subtest: CLI rejects altered manifest bytes +ok 425 - CLI rejects altered manifest bytes + --- + duration_ms: 37.217885 + type: 'test' + ... +# Subtest: CLI refuses missing or repeated conditional claim +ok 426 - CLI refuses missing or repeated conditional claim + --- + duration_ms: 75.602971 + type: 'test' + ... +# Subtest: CLI rejects weakened projection in check mode +ok 427 - CLI rejects weakened projection in check mode + --- + duration_ms: 127.310502 + type: 'test' + ... +# Subtest: CLI rejects nonlocal manifest and malformed hash types +ok 428 - CLI rejects nonlocal manifest and malformed hash types + --- + duration_ms: 110.059704 + type: 'test' + ... +# Subtest: CLI refuses missing input and unknown options +ok 429 - CLI refuses missing input and unknown options + --- + duration_ms: 64.405281 + type: 'test' + ... +# Subtest: CLI rejects source substitution +ok 430 - CLI rejects source substitution + --- + duration_ms: 31.374166 + type: 'test' + ... +# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture +ok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture + --- + duration_ms: 1.362429 + type: 'test' + ... +# Subtest: a fixture-only change was missed before and now runs the conditional suites +ok 432 - a fixture-only change was missed before and now runs the conditional suites + --- + duration_ms: 0.601015 + type: 'test' + ... +# Subtest: existing matching paths stay matched and unrelated paths stay excluded +ok 433 - existing matching paths stay matched and unrelated paths stay excluded + --- + duration_ms: 1.252059 + type: 'test' + ... +# Subtest: every local file the conditional suites and replay tool load triggers the workflow +ok 434 - every local file the conditional suites and replay tool load triggers the workflow + --- + duration_ms: 4.479506 + type: 'test' + ... +# Subtest: a verified startup renders the route from the selected claim proof bytes +ok 435 - a verified startup renders the route from the selected claim proof bytes + --- + duration_ms: 39.295563 + type: 'test' + ... +# Subtest: the museum page and the conditional route share one verified startup and byte cache +ok 436 - the museum page and the conditional route share one verified startup and byte cache + --- + duration_ms: 15.022112 + type: 'test' + ... +# Subtest: a rejected startup is not retained for a later caller +ok 437 - a rejected startup is not retained for a later caller + --- + duration_ms: 5.091648 + type: 'test' + ... +# Subtest: changed proof bytes clear an earlier view and infer nothing +ok 438 - changed proof bytes clear an earlier view and infer nothing + --- + duration_ms: 7.267113 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched +ok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched + --- + duration_ms: 3.164355 + type: 'test' + ... +# Subtest: a stale manifest stops before any pinned remote request +ok 440 - a stale manifest stops before any pinned remote request + --- + duration_ms: 2.167361 + type: 'test' + ... +# Subtest: a page without the route container is left untouched +ok 441 - a page without the route container is left untouched + --- + duration_ms: 0.648316 + type: 'test' + ... +# Subtest: a verified route: the outcome is written to the attached role="status" line after the host changes +ok 442 - a verified route: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 6.350644 + type: 'test' + ... +# Subtest: a verified route: nothing inserted into the route host carries a role or is live +ok 443 - a verified route: nothing inserted into the route host carries a role or is live + --- + duration_ms: 9.154018 + type: 'test' + ... +# Subtest: a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes +ok 444 - a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 2.450778 + type: 'test' + ... +# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live +ok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live + --- + duration_ms: 1.348406 + type: 'test' + ... +# Subtest: a stale manifest: the outcome is written to the attached role="status" line after the host changes +ok 446 - a stale manifest: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 8.159537 + type: 'test' + ... +# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live +ok 447 - a stale manifest: nothing inserted into the route host carries a role or is live + --- + duration_ms: 9.529749 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes +ok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 3.508008 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live +ok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live + --- + duration_ms: 3.449874 + type: 'test' + ... +# Subtest: changed proof bytes: the outcome is written to the attached role="status" line after the host changes +ok 450 - changed proof bytes: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 3.10171 + type: 'test' + ... +# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live +ok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.826189 + type: 'test' + ... +# Subtest: an unavailable museum module: the outcome is written to the attached role="status" line after the host changes +ok 452 - an unavailable museum module: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.99333 + type: 'test' + ... +# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live +ok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.663668 + type: 'test' + ... +# Subtest: a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes +ok 454 - a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.889343 + type: 'test' + ... +# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live +ok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.677915 + type: 'test' + ... +# Subtest: museum.html has exactly one route status line: static, role="status", directly before an empty host +ok 456 - museum.html has exactly one route status line: static, role="status", directly before an empty host + --- + duration_ms: 0.396115 + type: 'test' + ... +# Subtest: on a first run the static Verifying… line receives no write while the route is verified +ok 457 - on a first run the static Verifying… line receives no write while the route is verified + --- + duration_ms: 9.333904 + type: 'test' + ... +# Subtest: an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it +ok 458 - an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it + --- + duration_ms: 1.679084 + type: 'test' + ... +# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host +ok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host + --- + duration_ms: 1.252723 + type: 'test' + ... +# Subtest: an older page without the status line draws only the route on success +ok 460 - an older page without the status line draws only the route on success + --- + duration_ms: 4.467523 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 2.709971 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.617686 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 1.720698 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 464 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.841579 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 465 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 9.66103 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 1.112403 + type: 'test' + ... +# Subtest: museum exposes source-bound rendering rather than silently omitting the page +ok 467 - museum exposes source-bound rendering rather than silently omitting the page + --- + duration_ms: 0.355732 + type: 'test' + ... +# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched +ok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched + --- + duration_ms: 58.108555 + type: 'test' + ... +# Subtest: museum wheel while verifying sources cancels delayed focus and scroll +ok 469 - museum wheel while verifying sources cancels delayed focus and scroll + --- + duration_ms: 11.00546 + type: 'test' + ... +# Subtest: museum keydown while verifying sources cancels delayed focus and scroll +ok 470 - museum keydown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 13.137335 + type: 'test' + ... +# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll +ok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 16.937039 + type: 'test' + ... +# Subtest: museum focusin while verifying sources cancels delayed focus and scroll +ok 472 - museum focusin while verifying sources cancels delayed focus and scroll + --- + duration_ms: 10.310074 + type: 'test' + ... +# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll +ok 473 - museum hashchange while verifying sources cancels delayed focus and scroll + --- + duration_ms: 10.826326 + type: 'test' + ... +# Subtest: museum popstate while verifying sources cancels delayed focus and scroll +ok 474 - museum popstate while verifying sources cancels delayed focus and scroll + --- + duration_ms: 11.678119 + type: 'test' + ... +# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll +ok 475 - museum pagehide while verifying sources cancels delayed focus and scroll + --- + duration_ms: 8.374413 + type: 'test' + ... +# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording +ok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording + --- + duration_ms: 1.110243 + type: 'test' + ... +# Subtest: source display cannot promote a counterexample or an AMEND row +ok 477 - source display cannot promote a counterexample or an AMEND row + --- + duration_ms: 0.922342 + type: 'test' + ... +# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope +ok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope + --- + duration_ms: 0.556386 + type: 'test' + ... +# Subtest: replay command must occur exactly in the verified replay source +ok 479 - replay command must occur exactly in the verified replay source + --- + duration_ms: 3.981454 + type: 'test' + ... +# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot +ok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot + --- + duration_ms: 0.82641 + type: 'test' + ... +# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch +ok 481 - malformed, mutable and falsely displayed source identities are refused before fetch + --- + duration_ms: 0.420777 + type: 'test' + ... +# Subtest: verified source bytes are required before a claim can be presented +ok 482 - verified source bytes are required before a claim can be presented + --- + duration_ms: 3.838973 + type: 'test' + ... +# Subtest: streamed responses stop at the byte cap and cancel the reader +ok 483 - streamed responses stop at the byte cap and cancel the reader + --- + duration_ms: 1.066654 + type: 'test' + ... +# Subtest: a stalled response body is aborted within its request deadline +ok 484 - a stalled response body is aborted within its request deadline + --- + duration_ms: 15.20603 + type: 'test' + ... +# Subtest: review comment pointers cannot masquerade as byte-frozen comment content +ok 485 - review comment pointers cannot masquerade as byte-frozen comment content + --- + duration_ms: 0.642988 + type: 'test' + ... +# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review +ok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review + --- + duration_ms: 1.167064 + type: 'test' + ... +# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path +ok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path + --- + duration_ms: 1.356053 + type: 'test' + ... +# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only +ok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only + --- + duration_ms: 1.167432 + type: 'test' + ... +# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer +ok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer + --- + duration_ms: 5.740693 + type: 'test' + ... +# Subtest: museum manifest must match the config byte count and SHA-256 before source projection +ok 490 - museum manifest must match the config byte count and SHA-256 before source projection + --- + duration_ms: 6.858336 + type: 'test' + ... +# Subtest: museum.html keeps its two evidence live regions and a separate current observation region +ok 491 - museum.html keeps its two evidence live regions and a separate current observation region + --- + duration_ms: 0.973739 + type: 'test' + ... +# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses +ok 492 - brand.css keeps the route status line visible and in the error colour when it refuses + --- + duration_ms: 1.357582 + type: 'test' + ... +# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them +ok 493 - refused cards carry no role and are not live; the museum status line counts every one of them + --- + duration_ms: 5.988007 + type: 'test' + ... +# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view +ok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view + --- + duration_ms: 4.703726 + type: 'test' + ... +# Subtest: a declared exhibit that cannot be shown is counted in the museum status line +ok 495 - a declared exhibit that cannot be shown is counted in the museum status line + --- + duration_ms: 5.651514 + type: 'test' + ... +# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title +ok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title + --- + duration_ms: 1.436273 + type: 'test' + ... +# Subtest: a coherent old browser cache cannot hide the newly pinned packet +ok 497 - a coherent old browser cache cannot hide the newly pinned packet + --- + duration_ms: 16.801086 + type: 'test' + ... +# Subtest: a mixed new config and stale museum manifest fails closed +ok 498 - a mixed new config and stale museum manifest fails closed + --- + duration_ms: 2.589842 + type: 'test' + ... +# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions +ok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions + --- + duration_ms: 17.317345 + type: 'test' + ... +# Subtest: verified claim quotes expose readable source and exact review citations +ok 500 - verified claim quotes expose readable source and exact review citations + --- + duration_ms: 4.179898 + type: 'test' + ... +# Subtest: readable presentation retains the exact original source quote in a disclosure +ok 501 - readable presentation retains the exact original source quote in a disclosure + --- + duration_ms: 5.721086 + type: 'test' + ... +# Subtest: packet cards render in manifest order when the first packet arrives last +ok 502 - packet cards render in manifest order when the first packet arrives last + --- + duration_ms: 9.030752 + type: 'test' + ... +# Subtest: a refused packet keeps its manifest slot when the other packet arrives later +ok 503 - a refused packet keeps its manifest slot when the other packet arrives later + --- + duration_ms: 8.398435 + type: 'test' + ... +# Subtest: every refused packet is counted in the museum status line +ok 504 - every refused packet is counted in the museum status line + --- + duration_ms: 8.627262 + type: 'test' + ... +# Subtest: a rendered packet replaces its Verifying placeholder +ok 505 - a rendered packet replaces its Verifying placeholder + --- + duration_ms: 8.097652 + type: 'test' + ... +# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders +ok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders + --- + duration_ms: 2.086526 + type: 'test' + ... +# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window +ok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window + --- + duration_ms: 0.497813 + type: 'test' + ... +# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two +ok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two + --- + duration_ms: 0.43868 + type: 'test' + ... +# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple +ok 509 - P15 exact finite example partitions every proper subset and rejects the full triple + --- + duration_ms: 0.570401 + type: 'test' + ... +# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code +ok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code + --- + duration_ms: 0.635917 + type: 'test' + ... +# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions +ok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions + --- + duration_ms: 3.503512 + type: 'test' + ... +# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches +ok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches + --- + duration_ms: 0.736224 + type: 'test' + ... +# Subtest: P15 vertex toggles change the actual decomposition result +ok 513 - P15 vertex toggles change the actual decomposition result + --- + duration_ms: 0.785508 + type: 'test' + ... +# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails +ok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails + --- + duration_ms: 1.92695 + type: 'test' + ... +# Subtest: EC014 live status follows the visible view through 3D, 2D and back +ok 515 - EC014 live status follows the visible view through 3D, 2D and back + --- + duration_ms: 4.495561 + type: 'test' + ... +# Subtest: correct source bytes cannot acquire a different valid-looking commit +ok 516 - correct source bytes cannot acquire a different valid-looking commit + --- + duration_ms: 1.409539 + type: 'test' + ... +# Subtest: exported projection preserves the complete audited source descriptor +ok 517 - exported projection preserves the complete audited source descriptor + --- + duration_ms: 7.464926 + type: 'test' + ... +# Subtest: offline CLI refuses coherent hash-correct source relabeling +ok 518 - offline CLI refuses coherent hash-correct source relabeling + --- + duration_ms: 39.784881 + type: 'test' + ... +# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags +ok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags + --- + duration_ms: 177.867983 + type: 'test' + ... +# Subtest: a record with an owner but no evidence_url fails validation +ok 520 - a record with an owner but no evidence_url fails validation + --- + duration_ms: 355.967177 + type: 'test' + ... +# Subtest: closed schema, evidence pattern, and primary source_rev are enforced +ok 521 - closed schema, evidence pattern, and primary source_rev are enforced + --- + duration_ms: 1064.958134 + type: 'test' + ... +# Subtest: pinned rev equals the blob or tree commit segment +ok 522 - pinned rev equals the blob or tree commit segment + --- + duration_ms: 322.337591 + type: 'test' + ... +# Subtest: carried_forward resolution_url uses the shared comment pattern +ok 523 - carried_forward resolution_url uses the shared comment pattern + --- + duration_ms: 434.816651 + type: 'test' + ... +# Subtest: released_url keeps the owner object and the atlas says released +ok 524 - released_url keeps the owner object and the atlas says released + --- + duration_ms: 149.434319 + type: 'test' + ... +# Subtest: resume projection shows a node-status view and refuses an owner without evidence +ok 525 - resume projection shows a node-status view and refuses an owner without evidence + --- + duration_ms: 573.274426 + type: 'test' + ... +# Subtest: a valid observed_at and source_rev refresh still validates and renders +ok 526 - a valid observed_at and source_rev refresh still validates and renders + --- + duration_ms: 191.503961 + type: 'test' + ... +# Subtest: the atlas resume section passes the published node-status view into resumeProjection +ok 527 - the atlas resume section passes the published node-status view into resumeProjection + --- + duration_ms: 1.467385 + type: 'test' + ... +# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim +ok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim + --- + duration_ms: 155.072824 + type: 'test' + ... +# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs +ok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs + --- + duration_ms: 4.136701 + type: 'test' + ... +# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition +ok 530 - the failed triple explicitly records an attempted placement rather than a valid partition + --- + duration_ms: 0.725936 + type: 'test' + ... +# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink +ok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink + --- + duration_ms: 0.281608 + type: 'test' + ... +# Subtest: malformed selections and noncanonical or false ISO timestamps are refused +ok 532 - malformed selections and noncanonical or false ISO timestamps are refused + --- + duration_ms: 1.709626 + type: 'test' + ... +# Subtest: metadata carries the exact pinned finite source and non-certifying scope +ok 533 - metadata carries the exact pinned finite source and non-certifying scope + --- + duration_ms: 0.559785 + type: 'test' + ... +# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement +ok 534 - plaintext citations identify selected objects, actual empty groups and failed placement + --- + duration_ms: 0.772574 + type: 'test' + ... +# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors +ok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors + --- + duration_ms: 2.234765 + type: 'test' + ... +# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer +ok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer + --- + duration_ms: 19.194947 + type: 'test' + ... +# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused +ok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused + --- + duration_ms: 2.266459 + type: 'test' + ... +# Subtest: the visible footer records the same ISO generation timestamp as export metadata +ok 538 - the visible footer records the same ISO generation timestamp as export metadata + --- + duration_ms: 1.610104 + type: 'test' + ... +# Subtest: inherited native font stacks on actual non-text primitives remain self-contained +ok 539 - inherited native font stacks on actual non-text primitives remain self-contained + --- + duration_ms: 1.74404 + type: 'test' + ... +# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export +ok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export + --- + duration_ms: 5.28227 + type: 'test' + ... +# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities +ok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities + --- + duration_ms: 2.423619 + type: 'test' + ... +# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted +ok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted + --- + duration_ms: 1.024144 + type: 'test' + ... +# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink +ok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink + --- + duration_ms: 0.600927 + type: 'test' + ... +# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings +ok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings + --- + duration_ms: 11.99087 + type: 'test' + ... +# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources +ok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources + --- + duration_ms: 3.147963 + type: 'test' + ... +# Subtest: the visible pin footer records the same ISO generation timestamp as metadata +ok 546 - the visible pin footer records the same ISO generation timestamp as metadata + --- + duration_ms: 1.517773 + type: 'test' + ... +# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection. +# Subtest: SIDE24 always identifies the engineering exhibit before the controls +ok 547 - SIDE24 always identifies the engineering exhibit before the controls + --- + duration_ms: 0.874048 + type: 'test' + ... +# Subtest: count cards and every status row retain their own source context +ok 548 - count cards and every status row retain their own source context + --- + duration_ms: 2.801774 + type: 'test' + ... +# Subtest: repository and path filters combine with search and reset pagination +ok 549 - repository and path filters combine with search and reset pagination + --- + duration_ms: 24.707892 + type: 'test' + ... +# Subtest: query view shows its pin and the local byte-check command without a live ref control +ok 550 - query view shows its pin and the local byte-check command without a live ref control + --- + duration_ms: 2.360406 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 551 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.791623 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 552 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 1.061574 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 553 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.328478 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 554 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 6.971633 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 555 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.606808 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 556 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.562033 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 557 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.913662 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.750631 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 559 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.172232 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 560 - navigation and grids can reflow on small screens + --- + duration_ms: 1.426426 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 561 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.146009 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 562 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.129145 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 14.174462 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 19.398263 + type: 'test' + ... +# Subtest: valid source preserves exact strings +ok 565 - valid source preserves exact strings + --- + duration_ms: 41.21717 + type: 'test' + ... +# Subtest: local pinned data bypasses an older response while still verifying current bytes +ok 566 - local pinned data bypasses an older response while still verifying current bytes + --- + duration_ms: 2.308698 + type: 'test' + ... +# Subtest: digest mismatch refuses data +ok 567 - digest mismatch refuses data + --- + duration_ms: 2.140347 + type: 'test' + ... +# Subtest: byte count mismatch refuses data +ok 568 - byte count mismatch refuses data + --- + duration_ms: 0.419217 + type: 'test' + ... +# Subtest: mutable branch URL refused before request +ok 569 - mutable branch URL refused before request + --- + duration_ms: 0.18135 + type: 'test' + ... +# Subtest: HTTP failure gives no data +ok 570 - HTTP failure gives no data + --- + duration_ms: 0.367771 + type: 'test' + ... +# Subtest: status snapshot counts are selected rows +ok 571 - status snapshot counts are selected rows + --- + duration_ms: 0.840426 + type: 'test' + ... +# Subtest: unknown category refused +ok 572 - unknown category refused + --- + duration_ms: 0.259882 + type: 'test' + ... +# Subtest: changed count refused +ok 573 - changed count refused + --- + duration_ms: 0.152903 + type: 'test' + ... +# Subtest: promotion authority refused +ok 574 - promotion authority refused + --- + duration_ms: 0.098747 + type: 'test' + ... +# Subtest: coefficient endpoints remain distinct exactly +ok 575 - coefficient endpoints remain distinct exactly + --- + duration_ms: 0.237651 + type: 'test' + ... +# Subtest: float endpoints refused +ok 576 - float endpoints refused + --- + duration_ms: 0.190758 + type: 'test' + ... +# Subtest: coefficient acceptance flag cannot be flipped +ok 577 - coefficient acceptance flag cannot be flipped + --- + duration_ms: 0.108034 + type: 'test' + ... +# Subtest: catalog points at immutable public paths +ok 578 - catalog points at immutable public paths + --- + duration_ms: 0.214972 + type: 'test' + ... +# Subtest: catalog rejects private repo and traversal +ok 579 - catalog rejects private repo and traversal + --- + duration_ms: 0.197469 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different commit +ok 580 - correct bytes cannot be attributed to a different commit + --- + duration_ms: 0.229419 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different path +ok 581 - correct bytes cannot be attributed to a different path + --- + duration_ms: 0.312247 + type: 'test' + ... +# Subtest: Home explains the landscape before publication machinery +ok 582 - Home explains the landscape before publication machinery + --- + duration_ms: 1.475287 + type: 'test' + ... +# Subtest: Explore reaches a real local control and result before source publication +ok 583 - Explore reaches a real local control and result before source publication + --- + duration_ms: 0.523852 + type: 'test' + ... +# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive +ok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive + --- + duration_ms: 1.291009 + type: 'test' + ... +# Subtest: Research reading map routes to all four preserved introductory paths +ok 585 - Research reading map routes to all four preserved introductory paths + --- + duration_ms: 1.800614 + type: 'test' + ... +# Subtest: Library routes present-day discovery separately from dated records +ok 586 - Library routes present-day discovery separately from dated records + --- + duration_ms: 0.634469 + type: 'test' + ... +# Subtest: Deep archived fragments reveal every ancestor without focus or history writes +ok 587 - Deep archived fragments reveal every ancestor without focus or history writes + --- + duration_ms: 1.367461 + type: 'test' + ... +# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes +ok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes + --- + duration_ms: 0.616911 + type: 'test' + ... +# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched +ok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched + --- + duration_ms: 0.680363 + type: 'test' + ... +# Subtest: current readers expose consistent native task links with real destinations +ok 590 - current readers expose consistent native task links with real destinations + --- + duration_ms: 13.6287 + type: 'test' + ... +# Subtest: missing and already-enhanced menus receive no extra listeners +ok 591 - missing and already-enhanced menus receive no extra listeners + --- + duration_ms: 0.251842 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 592 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 85.25641 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 593 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 63.310933 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 594 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 48.106656 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 595 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 84.955882 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 596 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 161.043178 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 597 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.83112 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.644666 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.849096 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 600 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 33.01914 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.335642 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.427472 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 603 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.856372 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.479019 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 605 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.2576 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.5791 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 607 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 27.230842 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 608 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 20.903797 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 609 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 25.080576 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 610 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 26.508746 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 611 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 1.896248 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 612 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 21.47487 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 613 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 26.116767 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 614 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 26.545751 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 615 - a config refusal settles every pending source note + --- + duration_ms: 1.998466 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 616 - a query refusal preserves verified import custody information + --- + duration_ms: 21.810875 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 617 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 27.37161 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 618 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.318551 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 619 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 29.74808 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.586273 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 621 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 22.656253 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 30.202487 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 623 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 37.683516 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 624 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 31.916344 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 625 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 26.64233 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 626 - encoded punctuation stays inert search text + --- + duration_ms: 20.936635 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 627 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 28.020902 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 628 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 5.016692 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 629 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 29.638637 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 630 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 26.959408 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 23.963452 + type: 'test' + ... +# Subtest: every former landing section routes to its preserved workspace section +ok 632 - every former landing section routes to its preserved workspace section + --- + duration_ms: 0.531371 + type: 'test' + ... +# Subtest: new home fragments and untrusted fragments never become redirect destinations +ok 633 - new home fragments and untrusted fragments never become redirect destinations + --- + duration_ms: 0.136112 + type: 'test' + ... +# Subtest: browser entry follows a bookmarked section and future hash changes +ok 634 - browser entry follows a bookmarked section and future hash changes + --- + duration_ms: 0.758591 + type: 'test' + ... +# Subtest: the reader home does not preload the technical inventory or source viewer +ok 635 - the reader home does not preload the technical inventory or source viewer + --- + duration_ms: 0.297192 + type: 'test' + ... +# Subtest: verified source cards become reachable after asynchronous rendering +ok 636 - verified source cards become reachable after asynchronous rendering + --- + duration_ms: 1.950037 + type: 'test' + ... +# Subtest: saved source hands exact fields to the same-site reference builder +ok 637 - saved source hands exact fields to the same-site reference builder + --- + duration_ms: 3.35188 + type: 'test' + ... +# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field +ok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field + --- + duration_ms: 0.966563 + type: 'test' + ... +# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path +ok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path + --- + duration_ms: 0.900662 + type: 'test' + ... +# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal +ok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal + --- + duration_ms: 0.976914 + type: 'test' + ... +# Subtest: queries and malformed or overprivileged imported records cannot become references +ok 641 - queries and malformed or overprivileged imported records cannot become references + --- + duration_ms: 1.177456 + type: 'test' + ... +# Subtest: imported notes refuse raw duplicate schema and source identity keys +ok 642 - imported notes refuse raw duplicate schema and source identity keys + --- + duration_ms: 3.443099 + type: 'test' + ... +# Subtest: source-button identity matches legal filename URI spellings without conflating path segments +ok 643 - source-button identity matches legal filename URI spellings without conflating path segments + --- + duration_ms: 0.482045 + type: 'test' + ... +# Subtest: valid entries retain exact identities and normalize only search whitespace +ok 644 - valid entries retain exact identities and normalize only search whitespace + --- + duration_ms: 1.296537 + type: 'test' + ... +# Subtest: entries require exact plain JSON data records with no inherited or executable fields +ok 645 - entries require exact plain JSON data records with no inherited or executable fields + --- + duration_ms: 0.640285 + type: 'test' + ... +# Subtest: unexpected keys never become imported links, statuses or inferred metadata +ok 646 - unexpected keys never become imported links, statuses or inferred metadata + --- + duration_ms: 0.608054 + type: 'test' + ... +# Subtest: required properties and string types cannot be coerced or defaulted +ok 647 - required properties and string types cannot be coerced or defaulted + --- + duration_ms: 2.279883 + type: 'test' + ... +# Subtest: source repositories and commits must name an allowed owner and exact immutable commit +ok 648 - source repositories and commits must name an allowed owner and exact immutable commit + --- + duration_ms: 0.561257 + type: 'test' + ... +# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments +ok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments + --- + duration_ms: 0.736351 + type: 'test' + ... +# Subtest: dates reject calendar overflow, offsets and invalid timestamp types +ok 650 - dates reject calendar overflow, offsets and invalid timestamp types + --- + duration_ms: 1.425506 + type: 'test' + ... +# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types +ok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types + --- + duration_ms: 1.479703 + type: 'test' + ... +# Subtest: search filters are bounded inert text with collection-specific repositories +ok 652 - search filters are bounded inert text with collection-specific repositories + --- + duration_ms: 0.799684 + type: 'test' + ... +# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding +ok 653 - source links are reconstructed from exact pins with literal raw Git path encoding + --- + duration_ms: 0.42372 + type: 'test' + ... +# Subtest: current search links omit every catalog and unrelated parameter +ok 654 - current search links omit every catalog and unrelated parameter + --- + duration_ms: 0.403522 + type: 'test' + ... +# Subtest: catalog search links omit current parameters and roundtrip all catalog filters +ok 655 - catalog search links omit current parameters and roundtrip all catalog filters + --- + duration_ms: 0.242947 + type: 'test' + ... +# Subtest: blank saved searches restore their collection all-files view +ok 656 - blank saved searches restore their collection all-files view + --- + duration_ms: 0.302279 + type: 'test' + ... +# Subtest: entry identity separates source pins and normalized collection search contexts +ok 657 - entry identity separates source pins and normalized collection search contexts + --- + duration_ms: 0.53353 + type: 'test' + ... +# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields +ok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields + --- + duration_ms: 0.762662 + type: 'test' + ... +# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing +ok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing + --- + duration_ms: 6.629324 + type: 'test' + ... +# Subtest: merge validates every entry before returning and leaves inputs unchanged +ok 660 - merge validates every entry before returning and leaves inputs unchanged + --- + duration_ms: 0.652652 + type: 'test' + ... +# Subtest: deduplication keeps first context and enriches absent identity metadata +ok 661 - deduplication keeps first context and enriches absent identity metadata + --- + duration_ms: 0.621893 + type: 'test' + ... +# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge +ok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge + --- + duration_ms: 1.063645 + type: 'test' + ... +# Subtest: capacity counts unique entries and overflow is atomic +ok 663 - capacity counts unique entries and overflow is atomic + --- + duration_ms: 7.35174 + type: 'test' + ... +# Subtest: exported JSON carries only strict schema data and roundtrips identity types +ok 664 - exported JSON carries only strict schema data and roundtrips identity types + --- + duration_ms: 0.577873 + type: 'test' + ... +# Subtest: export rejects oversized identities instead of creating an unimportable file +ok 665 - export rejects oversized identities instead of creating an unimportable file + --- + duration_ms: 1.706282 + type: 'test' + ... +# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity +ok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity + --- + duration_ms: 12.578613 + type: 'test' + ... +# Subtest: comparison model is implemented +ok 667 - comparison model is implemented + --- + duration_ms: 6.813106 + type: 'test' + ... +# Subtest: literal fields preserve array order and number versus boolean +ok 668 - literal fields preserve array order and number versus boolean + --- + duration_ms: 0.504413 + type: 'test' + ... +# Subtest: real retained archives distinguish pin moves from blob/byte moves +ok 669 - real retained archives distinguish pin moves from blob/byte moves + --- + duration_ms: 333.790667 + type: 'test' + ... +# Subtest: payload integrity refuses byte and digest mismatch +ok 670 - payload integrity refuses byte and digest mismatch + --- + duration_ms: 2.017609 + type: 'test' + ... +# Subtest: unsafe public paths and unsupported versions refuse +ok 671 - unsafe public paths and unsupported versions refuse + --- + duration_ms: 0.607951 + type: 'test' + ... +# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives +ok 672 - duplicate inventory identities refuse; complete edge multiplicity survives + --- + duration_ms: 37.915687 + type: 'test' + ... +# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted +ok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted + --- + duration_ms: 22.92955 + type: 'test' + ... +# Subtest: registry binds selected own descriptors and metadata publication +ok 674 - registry binds selected own descriptors and metadata publication + --- + duration_ms: 8.332111 + type: 'test' + ... +# Subtest: bounded acquisition refuses oversized responses and follows no redirects +ok 675 - bounded acquisition refuses oversized responses and follows no redirects + --- + duration_ms: 18.471075 + type: 'test' + ... +# Subtest: publication acquisition verifies registry hash before admitting choices +ok 676 - publication acquisition verifies registry hash before admitting choices + --- + duration_ms: 53.219727 + type: 'test' + ... +# Subtest: page advertised identity refuses a different publication +ok 677 - page advertised identity refuses a different publication + --- + duration_ms: 4.486881 + type: 'test' + ... +# Subtest: decoded byte identity survives HTTP content encoding +ok 678 - decoded byte identity survives HTTP content encoding + --- + duration_ms: 0.906686 + type: 'test' + ... +# Subtest: raw duplicate node IDs refuse even when exact byte digest matches +ok 679 - raw duplicate node IDs refuse even when exact byte digest matches + --- + duration_ms: 6.945739 + type: 'test' + ... +# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys +ok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys + --- + duration_ms: 1.000465 + type: 'test' + ... +# Subtest: raw duplicate metadata and hash-matching registry keys refuse +ok 681 - raw duplicate metadata and hash-matching registry keys refuse + --- + duration_ms: 8.695962 + type: 'test' + ... +# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections +ok 682 - producer-admitted identical current/archive bytes retain distinct typed selections + --- + duration_ms: 79.153368 + type: 'test' + ... +# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes +ok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes + --- + duration_ms: 0.510292 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 1.399371 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.484445 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 686 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 0.634213 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 687 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.982779 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 688 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 7.628349 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 1.262139 + type: 'test' + ... +# Subtest: builds an immutable repository or file reference without attributing authorship +ok 690 - builds an immutable repository or file reference without attributing authorship + --- + duration_ms: 2.790215 + type: 'test' + ... +# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths +ok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths + --- + duration_ms: 1.563371 + type: 'test' + ... +# Subtest: allows unicode file names and unambiguous encoded URL delimiters +ok 692 - allows unicode file names and unambiguous encoded URL delimiters + --- + duration_ms: 0.298256 + type: 'test' + ... +# Subtest: real form wiring clears stale output and announces a corrected reference +ok 693 - real form wiring clears stale output and announces a corrected reference + --- + duration_ms: 1.233212 + type: 'test' + ... +# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity +ok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity + --- + duration_ms: 1.055638 + type: 'test' + ... +# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math +ok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math + --- + duration_ms: 0.427937 + type: 'test' + ... +# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources +ok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources + --- + duration_ms: 0.25613 + type: 'test' + ... +# Subtest: interval copying locks all formats until the actual write finishes and handles denial +ok 697 - interval copying locks all formats until the actual write finishes and handles denial + --- + duration_ms: 0.858089 + type: 'test' + ... +# Subtest: copy sends exactly the displayed pinned commands and never executes them +ok 698 - copy sends exactly the displayed pinned commands and never executes them + --- + duration_ms: 0.754231 + type: 'test' + ... +# Subtest: clipboard refusal provides manual fallback without success +ok 699 - clipboard refusal provides manual fallback without success + --- + duration_ms: 0.83665 + type: 'test' + ... +# Subtest: unsupported clipboard leaves the command block readable and gives fallback +ok 700 - unsupported clipboard leaves the command block readable and gives fallback + --- + duration_ms: 0.286992 + type: 'test' + ... +# Subtest: reproduction controls have static fallback and an explicit live announcement +ok 701 - reproduction controls have static fallback and an explicit live announcement + --- + duration_ms: 14.869744 + type: 'test' + ... +# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON +ok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON + --- + duration_ms: 0.350572 + type: 'test' + ... +# Subtest: rejects misleading or malformed digest identities +ok 703 - rejects misleading or malformed digest identities + --- + duration_ms: 0.541874 + type: 'test' + ... +# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields +ok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields + --- + duration_ms: 0.863672 + type: 'test' + ... +# Subtest: malformed shared references are refused without partial source identity +ok 705 - malformed shared references are refused without partial source identity + --- + duration_ms: 0.547354 + type: 'test' + ... +# Subtest: reference workflow copies selected representations and invalidates stale outputs +ok 706 - reference workflow copies selected representations and invalidates stale outputs + --- + duration_ms: 0.709985 + type: 'test' + ... +# Subtest: shared reference restoration and Back reject invalid state without publishing old output +ok 707 - shared reference restoration and Back reject invalid state without publishing old output + --- + duration_ms: 0.575488 + type: 'test' + ... +# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded +ok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded + --- + duration_ms: 0.740863 + type: 'test' + ... +# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes +ok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes + --- + duration_ms: 0.36638 + type: 'test' + ... +# Subtest: a pending clipboard operation prevents a newer reference from overtaking it +ok 710 - a pending clipboard operation prevents a newer reference from overtaking it + --- + duration_ms: 0.438448 + type: 'test' + ... +# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest +ok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest + --- + duration_ms: 0.390354 + type: 'test' + ... +# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity +ok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity + --- + duration_ms: 0.579232 + type: 'test' + ... +# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity +ok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity + --- + duration_ms: 0.987186 + type: 'test' + ... +# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success +ok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success + --- + duration_ms: 0.626454 + type: 'test' + ... +# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback +ok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback + --- + duration_ms: 0.557105 + type: 'test' + ... +# Subtest: legal unmatched and nested path braces produce parser-safe literal text +ok 716 - legal unmatched and nested path braces produce parser-safe literal text + --- + duration_ms: 13.435214 + type: 'test' + ... +# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted. +# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata +ok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata + --- + duration_ms: 4.33473 + type: 'test' + ... +# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state +ok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state + --- + duration_ms: 1.269123 + type: 'test' + ... +# Subtest: unsupported resources and unbounded or invisible styles refuse serialization +ok 719 - unsupported resources and unbounded or invisible styles refuse serialization + --- + duration_ms: 2.330776 + type: 'test' + ... +# Subtest: capture reads displayed primitives and their concrete computed styles +ok 720 - capture reads displayed primitives and their concrete computed styles + --- + duration_ms: 1.791606 + type: 'test' + ... +# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children +ok 721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children + --- + duration_ms: 1.207806 + type: 'test' + ... +# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes +ok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes + --- + duration_ms: 1.245852 + type: 'test' + ... +# Subtest: rounded rectangle height requires a matching native used-height witness +ok 723 - rounded rectangle height requires a matching native used-height witness + --- + duration_ms: 0.836339 + type: 'test' + ... +# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion +ok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion + --- + duration_ms: 0.331566 + type: 'test' + ... +# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string +ok 725 - native height equality cannot admit real CSS overrides sharing a rounded string + --- + duration_ms: 1.92275 + type: 'test' + ... +# Subtest: rectangle height witness is finite, bounded and fail-closed +ok 726 - rectangle height witness is finite, bounded and fail-closed + --- + duration_ms: 4.631954 + type: 'test' + ... +# Subtest: native representation check is bounded to positive rectangle height roundoff +ok 727 - native representation check is bounded to positive rectangle height roundoff + --- + duration_ms: 1.881313 + type: 'test' + ... +# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry +ok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry + --- + duration_ms: 0.354941 + type: 'test' + ... +# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles +ok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles + --- + duration_ms: 0.492973 + type: 'test' + ... +# Subtest: capture refuses root opacity that would be lost from the opaque standalone export +ok 730 - capture refuses root opacity that would be lost from the opaque standalone export + --- + duration_ms: 0.466375 + type: 'test' + ... +# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths +ok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths + --- + duration_ms: 1.656605 + type: 'test' + ... +# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes +ok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes + --- + duration_ms: 0.490397 + type: 'test' + ... +# Subtest: pending copies serialize writes and never claim success after control changes +ok 733 - pending copies serialize writes and never claim success after control changes + --- + duration_ms: 0.289184 + type: 'test' + ... +# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text +ok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text + --- + duration_ms: 0.468527 + type: 'test' + ... +# Subtest: current clipboard success and denial report only the current figure state +ok 735 - current clipboard success and denial report only the current figure state + --- + duration_ms: 0.384819 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 736 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 83.567262 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 737 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 72.583809 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 738 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 33.932354 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 739 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 74.60045 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 740 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 148.820921 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 741 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 30.469968 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.596083 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.719026 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 744 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.198224 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.031354 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.172567 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 747 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.005243 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.189537 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 749 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.233067 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.866363 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 751 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 24.346431 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 752 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 21.175606 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 753 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 25.222984 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 754 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 24.532238 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 755 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 2.026857 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 756 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 20.820417 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 757 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 24.459306 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 758 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 28.162694 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 759 - a config refusal settles every pending source note + --- + duration_ms: 2.053063 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 760 - a query refusal preserves verified import custody information + --- + duration_ms: 21.656548 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 761 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 29.857249 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 762 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.32071 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 763 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 24.914752 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.617583 + type: 'test' + ... +1..764 +# tests 764 +# suites 0 +# pass 764 +# fail 0 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 5639.22272 diff --git a/cbz/evidence/cold-start-node/green/dba-node.tap b/cbz/evidence/cold-start-node/green/dba-node.tap new file mode 100644 index 000000000..8cdeca3f1 --- /dev/null +++ b/cbz/evidence/cold-start-node/green/dba-node.tap @@ -0,0 +1,4596 @@ +TAP version 13 +# Subtest: tests/fixtures/museum_fixture.mjs +ok 1 - tests/fixtures/museum_fixture.mjs + --- + duration_ms: 47.817576 + type: 'test' + ... +# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats +ok 2 - only the current query is announced after 500ms of quiet, even if its count repeats + --- + duration_ms: 13.26109 + type: 'test' + ... +# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results +ok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results + --- + duration_ms: 0.712284 + type: 'test' + ... +# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion +ok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion + --- + duration_ms: 10.992649 + type: 'test' + ... +# Subtest: Source-identical documents at another recorded revision retain their actual current pin +ok 5 - Source-identical documents at another recorded revision retain their actual current pin + --- + duration_ms: 1.954702 + type: 'test' + ... +# Subtest: changed scope leaves the mapping unavailable +ok 6 - changed scope leaves the mapping unavailable + --- + duration_ms: 0.613305 + type: 'test' + ... +# Subtest: extra graph field leaves the mapping unavailable +ok 7 - extra graph field leaves the mapping unavailable + --- + duration_ms: 0.563061 + type: 'test' + ... +# Subtest: changed source blob leaves the mapping unavailable +ok 8 - changed source blob leaves the mapping unavailable + --- + duration_ms: 1.181822 + type: 'test' + ... +# Subtest: changed source size leaves the mapping unavailable +ok 9 - changed source size leaves the mapping unavailable + --- + duration_ms: 0.583107 + type: 'test' + ... +# Subtest: changed fingerprint leaves the mapping unavailable +ok 10 - changed fingerprint leaves the mapping unavailable + --- + duration_ms: 0.849915 + type: 'test' + ... +# Subtest: missing source leaves the mapping unavailable +ok 11 - missing source leaves the mapping unavailable + --- + duration_ms: 0.556405 + type: 'test' + ... +# Subtest: changed formal manifest leaves the mapping unavailable +ok 12 - changed formal manifest leaves the mapping unavailable + --- + duration_ms: 1.056974 + type: 'test' + ... +# Subtest: An equal-looking different node ID is never inferred to be covered +ok 13 - An equal-looking different node ID is never inferred to be covered + --- + duration_ms: 0.856139 + type: 'test' + ... +# Subtest: Other actual claims keep missing mappings explicit +ok 14 - Other actual claims keep missing mappings explicit + --- + duration_ms: 0.472442 + type: 'test' + ... +# Subtest: The actual older committed observation has a different manifest and remains unmapped +ok 15 - The actual older committed observation has a different manifest and remains unmapped + --- + duration_ms: 4.316537 + type: 'test' + ... +# Subtest: An execution for another revision cannot attach to the artifact +ok 16 - An execution for another revision cannot attach to the artifact + --- + duration_ms: 0.747329 + type: 'test' + ... +# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record +ok 17 - A fabricated accepted alignment cannot replace the pinned adverse record + --- + duration_ms: 0.617537 + type: 'test' + ... +# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review +ok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review + --- + duration_ms: 3.360557 + type: 'test' + ... +# Subtest: an unknown manifest cannot use the explicit bridge +ok 19 - an unknown manifest cannot use the explicit bridge + --- + duration_ms: 1.022456 + type: 'test' + ... +# Subtest: a wrong manifest size cannot use the explicit bridge +ok 20 - a wrong manifest size cannot use the explicit bridge + --- + duration_ms: 0.620017 + type: 'test' + ... +# Subtest: duplicate formal inventory cannot use the explicit bridge +ok 21 - duplicate formal inventory cannot use the explicit bridge + --- + duration_ms: 0.629248 + type: 'test' + ... +# Subtest: changed claim scope cannot use the explicit bridge +ok 22 - changed claim scope cannot use the explicit bridge + --- + duration_ms: 1.207644 + type: 'test' + ... +# Subtest: an extra claim coverage field cannot use the explicit bridge +ok 23 - an extra claim coverage field cannot use the explicit bridge + --- + duration_ms: 0.586075 + type: 'test' + ... +# Subtest: another declaration cannot replace the pinned evidence +ok 24 - another declaration cannot replace the pinned evidence + --- + duration_ms: 0.762353 + type: 'test' + ... +# Subtest: a forged receipt with the same commit cannot replace the pinned evidence +ok 25 - a forged receipt with the same commit cannot replace the pinned evidence + --- + duration_ms: 0.604354 + type: 'test' + ... +# Subtest: a fabricated accepted review cannot replace the pinned evidence +ok 26 - a fabricated accepted review cannot replace the pinned evidence + --- + duration_ms: 1.080484 + type: 'test' + ... +# Subtest: An equally named different claim and prototype key remain unmapped +ok 27 - An equally named different claim and prototype key remain unmapped + --- + duration_ms: 0.82934 + type: 'test' + ... +# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment +ok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment + --- + duration_ms: 0.836212 + type: 'test' + ... +# Subtest: original refuses identical duplicate proof-source entries +ok 29 - original refuses identical duplicate proof-source entries + --- + duration_ms: 1.264521 + type: 'test' + ... +# Subtest: original refuses conflicting duplicate proof-source entries +ok 30 - original refuses conflicting duplicate proof-source entries + --- + duration_ms: 0.993754 + type: 'test' + ... +# Subtest: 8228 refuses identical duplicate proof-source entries +ok 31 - 8228 refuses identical duplicate proof-source entries + --- + duration_ms: 0.961204 + type: 'test' + ... +# Subtest: 8228 refuses conflicting duplicate proof-source entries +ok 32 - 8228 refuses conflicting duplicate proof-source entries + --- + duration_ms: 0.794494 + type: 'test' + ... +# Subtest: a22f refuses identical duplicate proof-source entries +ok 33 - a22f refuses identical duplicate proof-source entries + --- + duration_ms: 0.827204 + type: 'test' + ... +# Subtest: a22f refuses conflicting duplicate proof-source entries +ok 34 - a22f refuses conflicting duplicate proof-source entries + --- + duration_ms: 5.548501 + type: 'test' + ... +# Subtest: Atlas begins with its task and working search before the source inventory +ok 35 - Atlas begins with its task and working search before the source inventory + --- + duration_ms: 1.778625 + type: 'test' + ... +# Subtest: The selector is the sole view switch while controller compatibility stays present +ok 36 - The selector is the sole view switch while controller compatibility stays present + --- + duration_ms: 0.310341 + type: 'test' + ... +# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope +ok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope + --- + duration_ms: 0.329228 + type: 'test' + ... +# Subtest: Neighborhood coverage stays available without delaying the useful graph or list +ok 38 - Neighborhood coverage stays available without delaying the useful graph or list + --- + duration_ms: 0.311805 + type: 'test' + ... +# Subtest: The historical viewer is explicitly archived with preserved entry fragments +ok 39 - The historical viewer is explicitly archived with preserved entry fragments + --- + duration_ms: 0.370848 + type: 'test' + ... +# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark +ok 40 - A closed historical archive cannot conceal a failed source or refused bookmark + --- + duration_ms: 0.183828 + type: 'test' + ... +# Subtest: Sharing the selected source snapshot remains a visible reading action +ok 41 - Sharing the selected source snapshot remains a visible reading action + --- + duration_ms: 0.120152 + type: 'test' + ... +# Subtest: Atlas layout loads after current styles without replacing the shared brand +ok 42 - Atlas layout loads after current styles without replacing the shared brand + --- + duration_ms: 0.182317 + type: 'test' + ... +# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction +ok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction + --- + duration_ms: 1.387969 + type: 'test' + ... +# Subtest: an admitted isolated node has two explicit empty groups +ok 44 - an admitted isolated node has two explicit empty groups + --- + duration_ms: 0.307293 + type: 'test' + ... +# Subtest: missing and prototype names cannot acquire inferred connections +ok 45 - missing and prototype names cannot acquire inferred connections + --- + duration_ms: 0.167158 + type: 'test' + ... +# Subtest: late optional data patches the currently selected node rather than its request-time selection +ok 46 - late optional data patches the currently selected node rather than its request-time selection + --- + duration_ms: 1.98642 + type: 'test' + ... +# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort +ok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort + --- + duration_ms: 0.813197 + type: 'test' + ... +# Subtest: focused operational evidence is retained until focus leaves its section +ok 48 - focused operational evidence is retained until focus leaves its section + --- + duration_ms: 1.014424 + type: 'test' + ... +# Subtest: a refused or no-longer-known selection receives no late substituted resume +ok 49 - a refused or no-longer-known selection receives no late substituted resume + --- + duration_ms: 1.168999 + type: 'test' + ... +# Subtest: pagehide aborts the request and suppresses an uncooperative late response +ok 50 - pagehide aborts the request and suppresses an uncooperative late response + --- + duration_ms: 0.931405 + type: 'test' + ... +# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback +ok 51 - a persisted pageshow acquires current optional records once and preserves null fallback + --- + duration_ms: 1.040623 + type: 'test' + ... +# Subtest: missing cancellation platform does not prevent primary reading or late status coordination +ok 52 - missing cancellation platform does not prevent primary reading or late status coordination + --- + duration_ms: 1.802343 + type: 'test' + ... +# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence +ok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence + --- + duration_ms: 1.772497 + type: 'test' + ... +# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies +ok 54 - dependency focus retains only selected dependent and its recorded direct dependencies + --- + duration_ms: 0.501105 + type: 'test' + ... +# Subtest: empty/filtered selection and ceiling never invent source nodes +ok 55 - empty/filtered selection and ceiling never invent source nodes + --- + duration_ms: 1.476948 + type: 'test' + ... +# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap +ok 56 - actual wrapped label sizes stay inside the viewport and do not overlap + --- + duration_ms: 1.301735 + type: 'test' + ... +# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers +ok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers + --- + duration_ms: 0.34677 + type: 'test' + ... +# Subtest: labels leave a distinct unselected node clear for actual canvas picking +ok 58 - labels leave a distinct unselected node clear for actual canvas picking + --- + duration_ms: 1.323501 + type: 'test' + ... +# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged +ok 59 - camera-depth order and identifier ties are deterministic and inputs remain unchanged + --- + duration_ms: 1.018273 + type: 'test' + ... +# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles +ok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles + --- + duration_ms: 0.301997 + type: 'test' + ... +# Subtest: edge anchors retain an in-bounds readable label when space permits +ok 61 - edge anchors retain an in-bounds readable label when space permits + --- + duration_ms: 0.271607 + type: 'test' + ... +# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits +ok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits + --- + duration_ms: 3.906756 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 63 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.527018 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 64 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 2.316799 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 65 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.308285 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 66 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 4.085553 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 67 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.671647 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 68 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.718035 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 69 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.959196 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.69226 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 71 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.253866 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 72 - navigation and grids can reflow on small screens + --- + duration_ms: 0.958596 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 73 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.112618 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 74 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.138535 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 9.440601 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 8.392723 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 77 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 514.520512 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 78 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 128.611338 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 79 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 44.420927 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 80 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 38.386042 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 81 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 27.652 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 82 - encoded punctuation stays inert search text + --- + duration_ms: 27.43735 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 83 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 28.013186 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 84 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 4.698359 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 85 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 24.394017 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 86 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 23.511503 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 24.378457 + type: 'test' + ... +# Subtest: verified category counts expose content and references directly without changing the source selection +ok 88 - verified category counts expose content and references directly without changing the source selection + --- + duration_ms: 19.726089 + type: 'test' + ... +# Subtest: changing categories resets both pagers and retains native selector focus +ok 89 - changing categories resets both pagers and retains native selector focus + --- + duration_ms: 7.927255 + type: 'test' + ... +# Subtest: All preserves ordered overlapping categories and complete edge multiplicity +ok 90 - All preserves ordered overlapping categories and complete edge multiplicity + --- + duration_ms: 9.92078 + type: 'test' + ... +# Subtest: an empty category reports zero results with both pagers hidden +ok 91 - an empty category reports zero results with both pagers hidden + --- + duration_ms: 5.300537 + type: 'test' + ... +# Subtest: selection changes clear category state and ignore an older in-flight comparison +ok 92 - selection changes clear category state and ignore an older in-flight comparison + --- + duration_ms: 7.07658 + type: 'test' + ... +# Subtest: payload refusal and malformed history discard category results and announcements +ok 93 - payload refusal and malformed history discard category results and announcements + --- + duration_ms: 8.823664 + type: 'test' + ... +# Subtest: Compare source panel demand loader exists +ok 94 - Compare source panel demand loader exists + --- + duration_ms: 0.814654 + type: 'test' + ... +# Subtest: An explicit current-source query requests even the empty source search +ok 95 - An explicit current-source query requests even the empty source search + --- + duration_ms: 1.151057 + type: 'test' + ... +# Subtest: Only a target in the actual source panel requests its verifier +ok 96 - Only a target in the actual source panel requests its verifier + --- + duration_ms: 0.710716 + type: 'test' + ... +# Subtest: Both pagers use distinct identities and ordinary, non-live count spans +ok 97 - Both pagers use distinct identities and ordinary, non-live count spans + --- + duration_ms: 6.517623 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 12.142556 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 99 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 1.271362 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 100 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 0.929255 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 101 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 1.310095 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 102 - acquisition: identical inventory duplicate + --- + duration_ms: 1.054087 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 103 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.730587 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 104 - acquisition: graph blob conflict + --- + duration_ms: 0.882905 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 105 - acquisition: graph bytes conflict + --- + duration_ms: 1.094733 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 106 - acquisition: graph missing exact inventory + --- + duration_ms: 2.444217 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 107 - acquisition: graph incorrect pin + --- + duration_ms: 1.255659 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 108 - acquisition: reference blob conflict + --- + duration_ms: 2.331048 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 109 - acquisition: reference bytes conflict + --- + duration_ms: 0.843348 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 110 - acquisition: reference missing exact inventory + --- + duration_ms: 0.692197 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 111 - acquisition: reference incorrect pin + --- + duration_ms: 0.58874 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 112 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.562269 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 113 - acquisition: graph reference overlap + --- + duration_ms: 0.530952 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 114 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.610451 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 115 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.52704 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 116 - acquisition: excerpt duplicate id + --- + duration_ms: 0.609091 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 117 - acquisition: excerpt duplicate span + --- + duration_ms: 0.807166 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 118 - acquisition: excerpt digest mismatch + --- + duration_ms: 0.815526 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 119 - acquisition: excerpt lone surrogate + --- + duration_ms: 1.552608 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 120 - acquisition: excerpt boolean line + --- + duration_ms: 0.49317 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 121 - acquisition: excerpt empty id + --- + duration_ms: 0.5769 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 122 - acquisition: excerpt invalid range + --- + duration_ms: 0.49081 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 123 - acquisition: excerpt unsafe path + --- + duration_ms: 0.533279 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 124 - acquisition: malformed references collection + --- + duration_ms: 0.61661 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 125 - acquisition: malformed equations collection + --- + duration_ms: 0.17519 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 126 - acquisition: malformed sources collection + --- + duration_ms: 0.675895 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 127 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.587028 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 128 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 1.661993 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 129 - acquisition: graph points at Main + --- + duration_ms: 2.737919 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 130 - acquisition: invalid inventory repository + --- + duration_ms: 0.707244 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 131 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 0.707829 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 132 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.668631 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 133 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.64032 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 134 - acquisition: unsafe encoded inventory path + --- + duration_ms: 1.476349 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 135 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.574837 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 136 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.455676 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 137 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.601435 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.527248 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 139 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 0.845043 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 140 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 1.590485 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 141 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.579597 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 142 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.588712 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 143 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 9.950747 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 144 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 1.60087 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 145 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 1.261067 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 1.176455 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 147 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.44802 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 148 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.267855 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 149 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 3.085298 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 150 - fallback HTTP refusal remains unavailable + --- + duration_ms: 0.959789 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 151 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.851556 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 152 - aborted acquisition makes no recovery request + --- + duration_ms: 0.909616 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 153 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.579757 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 154 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 12.124437 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 155 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 2.006341 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 156 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 11.230628 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 1.380283 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 158 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.553654 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 159 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.308637 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 160 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 2.507286 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 161 - fallback HTTP refusal remains unavailable + --- + duration_ms: 0.98762 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 162 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.80627 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 163 - aborted acquisition makes no recovery request + --- + duration_ms: 0.845979 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 164 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.566445 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 165 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 0.719148 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.327068 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.233177 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 168 - missing fields stay explicitly not recorded + --- + duration_ms: 0.50876 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 169 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.487306 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 170 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.153023 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 171 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.266103 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 172 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.198756 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 173 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 0.592436 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 174 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 111.423758 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 175 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 0.349882 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.373641 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 1.287785 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.584124 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.430566 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 180 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.323564 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 181 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.303181 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 182 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 0.78304 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 183 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.609163 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 184 - modified browse clicks retain native open-link behavior + --- + duration_ms: 0.42927 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 185 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.37105 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 186 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.249673 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 187 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.377889 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 188 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.238138 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 189 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.534447 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 190 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.403823 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 191 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.529839 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.369041 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 193 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 0.671095 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 7.306406 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 195 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 0.883354 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 196 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 0.633809 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 197 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 0.96758 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 198 - acquisition: identical inventory duplicate + --- + duration_ms: 0.657976 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 199 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.616378 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 200 - acquisition: graph blob conflict + --- + duration_ms: 0.545062 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 201 - acquisition: graph bytes conflict + --- + duration_ms: 0.565965 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 202 - acquisition: graph missing exact inventory + --- + duration_ms: 0.662264 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 203 - acquisition: graph incorrect pin + --- + duration_ms: 0.571148 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 204 - acquisition: reference blob conflict + --- + duration_ms: 0.558654 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 205 - acquisition: reference bytes conflict + --- + duration_ms: 0.550398 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 206 - acquisition: reference missing exact inventory + --- + duration_ms: 0.5803 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 207 - acquisition: reference incorrect pin + --- + duration_ms: 0.553166 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 208 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.526552 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 209 - acquisition: graph reference overlap + --- + duration_ms: 0.552574 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 210 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.500633 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 211 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.453172 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 212 - acquisition: excerpt duplicate id + --- + duration_ms: 0.563365 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 213 - acquisition: excerpt duplicate span + --- + duration_ms: 0.61813 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 214 - acquisition: excerpt digest mismatch + --- + duration_ms: 0.581516 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 215 - acquisition: excerpt lone surrogate + --- + duration_ms: 0.482099 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 216 - acquisition: excerpt boolean line + --- + duration_ms: 0.568277 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 217 - acquisition: excerpt empty id + --- + duration_ms: 0.476203 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 218 - acquisition: excerpt invalid range + --- + duration_ms: 0.666374 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 219 - acquisition: excerpt unsafe path + --- + duration_ms: 0.468899 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 220 - acquisition: malformed references collection + --- + duration_ms: 0.612962 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 221 - acquisition: malformed equations collection + --- + duration_ms: 0.193133 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 222 - acquisition: malformed sources collection + --- + duration_ms: 1.119323 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 223 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 1.640779 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 224 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 0.597044 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 225 - acquisition: graph points at Main + --- + duration_ms: 0.639265 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 226 - acquisition: invalid inventory repository + --- + duration_ms: 0.703685 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 227 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 1.9362 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 228 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.587884 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 229 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.58542 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 230 - acquisition: unsafe encoded inventory path + --- + duration_ms: 0.509065 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 231 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.619874 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 232 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.449116 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 233 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.541279 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.509609 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 235 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 0.78452 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 236 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 0.560758 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 237 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.788943 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 238 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.261677 + type: 'test' + ... +# Subtest: current snapshot rejects invalid identities and preserves literal source values +ok 239 - current snapshot rejects invalid identities and preserves literal source values + --- + duration_ms: 0.744618 + type: 'test' + ... +# Subtest: freshness separates future, stale and current observations +ok 240 - freshness separates future, stale and current observations + --- + duration_ms: 0.088634 + type: 'test' + ... +# Subtest: source links bind safe paths to pinned commits and reject executable targets +ok 241 - source links bind safe paths to pinned commits and reject executable targets + --- + duration_ms: 0.151919 + type: 'test' + ... +# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling +ok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling + --- + duration_ms: 0.453452 + type: 'test' + ... +# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval +ok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval + --- + duration_ms: 0.18686 + type: 'test' + ... +# Subtest: search and independent URL state preserve exact identifiers and reject unknown node +ok 244 - search and independent URL state preserve exact identifiers and reject unknown node + --- + duration_ms: 0.376841 + type: 'test' + ... +# Subtest: hash mismatch and malformed payload refuse current rendering +ok 245 - hash mismatch and malformed payload refuse current rendering + --- + duration_ms: 2.995216 + type: 'test' + ... +# Subtest: global graph search finds unloaded nodes and bounds large catalogs +ok 246 - global graph search finds unloaded nodes and bounds large catalogs + --- + duration_ms: 1.746229 + type: 'test' + ... +# Subtest: equation and graph share bookmarks refuse changed main source instead of substituting +ok 247 - equation and graph share bookmarks refuse changed main source instead of substituting + --- + duration_ms: 0.157015 + type: 'test' + ... +# Subtest: graph search filter survives source-bound URL state +ok 248 - graph search filter survives source-bound URL state + --- + duration_ms: 0.096178 + type: 'test' + ... +# Subtest: prototype property names cannot become fabricated graph nodes +ok 249 - prototype property names cannot become fabricated graph nodes + --- + duration_ms: 0.55747 + type: 'test' + ... +# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root +ok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root + --- + duration_ms: 115.323526 + type: 'test' + ... +# Subtest: current required routes return one shortest route per unresolved research target +ok 251 - current required routes return one shortest route per unresolved research target + --- + duration_ms: 0.526088 + type: 'test' + ... +# Subtest: context-only unresolved targets affect all-edge reach but earn no required route +ok 252 - context-only unresolved targets affect all-edge reach but earn no required route + --- + duration_ms: 0.16959 + type: 'test' + ... +# Subtest: context shortcuts do not erase longer required routes and parallel edges count once +ok 253 - context shortcuts do not erase longer required routes and parallel edges count once + --- + duration_ms: 0.248296 + type: 'test' + ... +# Subtest: unresolved target kinds and classifications match the existing source vocabulary +ok 254 - unresolved target kinds and classifications match the existing source vocabulary + --- + duration_ms: 0.344043 + type: 'test' + ... +# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions +ok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions + --- + duration_ms: 4.50201 + type: 'test' + ... +# Subtest: full reach and required routes do not depend on filtered or capped viewport +ok 256 - full reach and required routes do not depend on filtered or capped viewport + --- + duration_ms: 0.552294 + type: 'test' + ... +# Subtest: bounded graph windows expose complete match and frontier counts with paging +ok 257 - bounded graph windows expose complete match and frontier counts with paging + --- + duration_ms: 4.350556 + type: 'test' + ... +# Subtest: graph filters apply to complete matches without altering raw node labels or edges +ok 258 - graph filters apply to complete matches without altering raw node labels or edges + --- + duration_ms: 0.331812 + type: 'test' + ... +# Subtest: equation text filtering retains inert literal content and bounded complete counts +ok 259 - equation text filtering retains inert literal content and bounded complete counts + --- + duration_ms: 0.895113 + type: 'test' + ... +# Subtest: atlas offset equation search and exact metadata filters survive URL state +ok 260 - atlas offset equation search and exact metadata filters survive URL state + --- + duration_ms: 0.38632 + type: 'test' + ... +# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage +ok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage + --- + duration_ms: 16.123735 + type: 'test' + ... +# Subtest: claim summary puts exact scope and pinned source before continuation metadata +ok 262 - claim summary puts exact scope and pinned source before continuation metadata + --- + duration_ms: 4.837742 + type: 'test' + ... +# Subtest: controller owns an explicit formal gap even without the spatial rendering platform +ok 263 - controller owns an explicit formal gap even without the spatial rendering platform + --- + duration_ms: 4.41072 + type: 'test' + ... +# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection +ok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection + --- + duration_ms: 6.430259 + type: 'test' + ... +# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses +ok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses + --- + duration_ms: 25.675417 + type: 'test' + ... +# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence +ok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence + --- + duration_ms: 42.88139 + type: 'test' + ... +# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints +ok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints + --- + duration_ms: 29.736984 + type: 'test' + ... +# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back +ok 268 - atlas filter bookmarks persist through search, node selection, reload and Back + --- + duration_ms: 19.31805 + type: 'test' + ... +# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters +ok 269 - atlas refuses mismatched source bookmarks before applying metadata filters + --- + duration_ms: 5.35219 + type: 'test' + ... +# Subtest: node identifiers and recorded source paths require own literal string fields +ok 270 - node identifiers and recorded source paths require own literal string fields + --- + duration_ms: 0.248721 + type: 'test' + ... +# Subtest: static reading links retain one advertised material archive among source links +ok 271 - static reading links retain one advertised material archive among source links + --- + duration_ms: 0.491753 + type: 'test' + ... +# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses +ok 272 - static reading links refuse missing ambiguous and unsafe archive addresses + --- + duration_ms: 1.802889 + type: 'test' + ... +# Subtest: refused source identity survives view changes Share reload and history +ok 273 - refused source identity survives view changes Share reload and history + --- + duration_ms: 72.054464 + type: 'test' + ... +# Subtest: initial Share and every non-adopting control preserve a refused identity +ok 274 - initial Share and every non-adopting control preserve a refused identity + --- + duration_ms: 3.61093 + type: 'test' + ... +# Subtest: explicit current diagnostic selection alone may adopt current source pins +ok 275 - explicit current diagnostic selection alone may adopt current source pins + --- + duration_ms: 5.578864 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 276 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 2.084712 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.463812 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.258008 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 279 - missing fields stay explicitly not recorded + --- + duration_ms: 0.466699 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 280 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.703285 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 281 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.192948 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 282 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.441477 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 283 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.196796 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 284 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 1.003763 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 285 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 116.578352 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 286 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 1.2337 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.389576 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 1.979486 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.595275 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.527743 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 291 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.333996 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 292 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.427262 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 293 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 1.457039 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 294 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.742082 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 295 - modified browse clicks retain native open-link behavior + --- + duration_ms: 1.030513 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 296 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.394623 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 297 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.262552 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 298 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.328148 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 299 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.201204 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 300 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.466595 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 301 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.3151 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 302 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.467731 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.284007 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 304 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 1.170343 + type: 'test' + ... +# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning +ok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning + --- + duration_ms: 38.17428 + type: 'test' + ... +# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer +ok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer + --- + duration_ms: 6.582547 + type: 'test' + ... +# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure +ok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure + --- + duration_ms: 4.117947 + type: 'test' + ... +# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused +ok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused + --- + duration_ms: 0.608762 + type: 'test' + ... +# Subtest: citation keeps only the canonical figure permalink and pinned teaching source +ok 309 - citation keeps only the canonical figure permalink and pinned teaching source + --- + duration_ms: 0.408735 + type: 'test' + ... +# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer +ok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer + --- + duration_ms: 1.306095 + type: 'test' + ... +# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes +ok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes + --- + duration_ms: 2.491583 + type: 'test' + ... +# Subtest: light theme colors are exported from the captured record +ok 312 - light theme colors are exported from the captured record + --- + duration_ms: 0.781552 + type: 'test' + ... +# Subtest: inherited native system font stacks remain self-contained without remote font syntax +ok 313 - inherited native system font stacks remain self-contained without remote font syntax + --- + duration_ms: 1.103124 + type: 'test' + ... +# Subtest: all diagram text and attribute values are XML escaped +ok 314 - all diagram text and attribute values are XML escaped + --- + duration_ms: 1.119347 + type: 'test' + ... +# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind +ok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind + --- + duration_ms: 2.70057 + type: 'test' + ... +# Subtest: blank, stale or unsupported diagram content is refused instead of exported +ok 316 - blank, stale or unsupported diagram content is refused instead of exported + --- + duration_ms: 2.751495 + type: 'test' + ... +# Subtest: clipboard absence exposes manual citation and never permits copy +ok 317 - clipboard absence exposes manual citation and never permits copy + --- + duration_ms: 0.358426 + type: 'test' + ... +# Subtest: clipboard denial preserves the current manual text and reports failure +ok 318 - clipboard denial preserves the current manual text and reports failure + --- + duration_ms: 0.351123 + type: 'test' + ... +# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied +ok 319 - pending clipboard writes are serialized and cannot report stale settings as copied + --- + duration_ms: 0.29843 + type: 'test' + ... +# Subtest: capture refusal clears the current citation text and blocks a later copy +ok 320 - capture refusal clears the current citation text and blocks a later copy + --- + duration_ms: 0.244081 + type: 'test' + ... +# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback +ok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback + --- + duration_ms: 0.452668 + type: 'test' + ... +# Subtest: a successful current write reports success, while unavailable figures block later writes +ok 322 - a successful current write reports success, while unavailable figures block later writes + --- + duration_ms: 0.226242 + type: 'test' + ... +# Subtest: evidence shows recorded links without promoting missing review or formal evidence +ok 323 - evidence shows recorded links without promoting missing review or formal evidence + --- + duration_ms: 1.598502 + type: 'test' + ... +# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification +ok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification + --- + duration_ms: 0.517808 + type: 'test' + ... +# Subtest: all-records and exact classification filters intersect text without relabeling nodes +ok 325 - all-records and exact classification filters intersect text without relabeling nodes + --- + duration_ms: 20.360073 + type: 'test' + ... +# Subtest: saved filters restore exact state and visibly reject unknown classifications +ok 326 - saved filters restore exact state and visibly reject unknown classifications + --- + duration_ms: 1.826903 + type: 'test' + ... +# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references +ok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references + --- + duration_ms: 6.315467 + type: 'test' + ... +# Subtest: absent context is visibly not recorded and is never inferred from dependencies +ok 328 - absent context is visibly not recorded and is never inferred from dependencies + --- + duration_ms: 4.637498 + type: 'test' + ... +# Subtest: unresolved and unsafe context references stay literal without executable destinations +ok 329 - unresolved and unsafe context references stay literal without executable destinations + --- + duration_ms: 2.5285 + type: 'test' + ... +# Subtest: malformed context preserves complete recorded values instead of inventing references +ok 330 - malformed context preserves complete recorded values instead of inventing references + --- + duration_ms: 1.758803 + type: 'test' + ... +# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search +ok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search + --- + duration_ms: 3.354417 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay +ok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay + --- + duration_ms: 49.866735 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay +ok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay + --- + duration_ms: 166.735541 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay +ok 334 - dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay + --- + duration_ms: 14.196693 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay +ok 335 - dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay + --- + duration_ms: 162.874379 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay +ok 336 - dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay + --- + duration_ms: 22.193968 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay +ok 337 - dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay + --- + duration_ms: 162.75525 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay +ok 338 - dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay + --- + duration_ms: 13.857642 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay +ok 339 - dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay + --- + duration_ms: 164.58421 + type: 'test' + ... +# Subtest: the pinned graph is complete and structurally valid +ok 340 - the pinned graph is complete and structurally valid + --- + duration_ms: 2.55157 + type: 'test' + ... +# Subtest: unresolved targets include open leaves with no recorded dependents +ok 341 - unresolved targets include open leaves with no recorded dependents + --- + duration_ms: 1.35966 + type: 'test' + ... +# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves +ok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves + --- + duration_ms: 1.203054 + type: 'test' + ... +# Subtest: downstream counts keep all-edge reach separate from required-only reach +ok 343 - downstream counts keep all-edge reach separate from required-only reach + --- + duration_ms: 0.711508 + type: 'test' + ... +# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts +ok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts + --- + duration_ms: 1.596917 + type: 'test' + ... +# Subtest: reach labels state their edge scope and do not describe reach as blocking +ok 345 - reach labels state their edge scope and do not describe reach as blocking + --- + duration_ms: 0.903144 + type: 'test' + ... +# Subtest: search covers ids, notes, source paths, classifications and edge relations +ok 346 - search covers ids, notes, source paths, classifications and edge relations + --- + duration_ms: 1.72343 + type: 'test' + ... +# Subtest: the app verifies graph bytes against a compiled source identity before parsing +ok 347 - the app verifies graph bytes against a compiled source identity before parsing + --- + duration_ms: 7.991948 + type: 'test' + ... +# Subtest: classification styling and metadata preserve source review lineage +ok 348 - classification styling and metadata preserve source review lineage + --- + duration_ms: 2.291307 + type: 'test' + ... +# Subtest: classification CSS identifiers use locale-neutral ASCII case folding +ok 349 - classification CSS identifiers use locale-neutral ASCII case folding + --- + duration_ms: 0.218859 + type: 'test' + ... +# Subtest: dependency paths use required source edges and retain relation metadata +ok 350 - dependency paths use required source edges and retain relation metadata + --- + duration_ms: 2.692818 + type: 'test' + ... +# Subtest: saved node links fail visibly instead of selecting an unrelated node +ok 351 - saved node links fail visibly instead of selecting an unrelated node + --- + duration_ms: 1.285392 + type: 'test' + ... +# Subtest: provenance pins the exact Math source bytes and labels the snapshot boundary +ok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary + --- + duration_ms: 0.571885 + type: 'test' + ... +# Subtest: the viewer page exposes its source boundary and accessible interaction contract +ok 353 - the viewer page exposes its source boundary and accessible interaction contract + --- + duration_ms: 1.562448 + type: 'test' + ... +# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail +ok 354 - the evidence table keeps automatic layout and breaks words only in Source detail + --- + duration_ms: 2.37379 + type: 'test' + ... +# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure +ok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure + --- + duration_ms: 2.168835 + type: 'test' + ... +# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists +ok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists + --- + duration_ms: 5.083207 + type: 'test' + ... +# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified +ok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified + --- + duration_ms: 1.737709 + type: 'test' + ... +# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph +ok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph + --- + duration_ms: 3.876889 + type: 'test' + ... +# Subtest: the unresolved-target sentence names exactly the viewer list rule +ok 359 - the unresolved-target sentence names exactly the viewer list rule + --- + duration_ms: 0.998475 + type: 'test' + ... +# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read +ok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read + --- + duration_ms: 11.707575 + type: 'test' + ... +# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries +ok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries + --- + duration_ms: 1.49274 + type: 'test' + ... +# Subtest: cone weight is determinant squared only on the negative-definite side +ok 362 - cone weight is determinant squared only on the negative-definite side + --- + duration_ms: 0.94631 + type: 'test' + ... +# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two +ok 363 - halving pin distance divides cubic gap by eight and annulus radii by two + --- + duration_ms: 0.489561 + type: 'test' + ... +# Subtest: remote membership uses fixed distance and an open height window +ok 364 - remote membership uses fixed distance and an open height window + --- + duration_ms: 0.311549 + type: 'test' + ... +# Subtest: all eight three-object subsets receive the correct capacity-one partition +ok 365 - all eight three-object subsets receive the correct capacity-one partition + --- + duration_ms: 0.455515 + type: 'test' + ... +# Subtest: models reject invalid or unrepresentable teaching parameters +ok 366 - models reject invalid or unrepresentable teaching parameters + --- + duration_ms: 0.780168 + type: 'test' + ... +# Subtest: shared parameters restore all three experiments, including empty selection +ok 367 - shared parameters restore all three experiments, including empty selection + --- + duration_ms: 1.929785 + type: 'test' + ... +# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion +ok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion + --- + duration_ms: 0.298846 + type: 'test' + ... +# Subtest: invalid choices cannot invent regions or objects +ok 369 - invalid choices cannot invent regions or objects + --- + duration_ms: 0.595931 + type: 'test' + ... +# Subtest: sharing serializes current controls and preserves section and unrelated query fields +ok 370 - sharing serializes current controls and preserves section and unrelated query fields + --- + duration_ms: 0.915912 + type: 'test' + ... +# Subtest: curvature presets draw and commit the selected controls with matching share and export state +ok 371 - curvature presets draw and commit the selected controls with matching share and export state + --- + duration_ms: 1.521666 + type: 'test' + ... +# Subtest: unknown curvature presets leave controls and current figure untouched +ok 372 - unknown curvature presets leave controls and current figure untouched + --- + duration_ms: 0.146359 + type: 'test' + ... +# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks +ok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks + --- + duration_ms: 3.881441 + type: 'test' + ... +# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes +ok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes + --- + duration_ms: 2.076448 + type: 'test' + ... +# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata +ok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata + --- + duration_ms: 2.310938 + type: 'test' + ... +# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions +ok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions + --- + duration_ms: 1.540441 + type: 'test' + ... +# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture +ok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture + --- + duration_ms: 0.978755 + type: 'test' + ... +# Subtest: controller coalesces repeated activation while a preparation is pending +ok 378 - controller coalesces repeated activation while a preparation is pending + --- + duration_ms: 0.428781 + type: 'test' + ... +# Subtest: changed or tampered final SVG, metadata or citation refuses download +ok 379 - changed or tampered final SVG, metadata or citation refuses download + --- + duration_ms: 1.089341 + type: 'test' + ... +# Subtest: control revision cancels work even after a change away and back +ok 380 - control revision cancels work even after a change away and back + --- + duration_ms: 0.514512 + type: 'test' + ... +# Subtest: late failure from an invalidated operation cannot erase newer successful state +ok 381 - late failure from an invalidated operation cannot erase newer successful state + --- + duration_ms: 0.85118 + type: 'test' + ... +# Subtest: capture, preparation, null result and download errors stay explicit and allow retry +ok 382 - capture, preparation, null result and download errors stay explicit and allow retry + --- + duration_ms: 2.2018 + type: 'test' + ... +# Subtest: unready controller cannot prepare or download a figure +ok 383 - unready controller cannot prepare or download a figure + --- + duration_ms: 0.307989 + type: 'test' + ... +# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid +ok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid + --- + duration_ms: 0.481155 + type: 'test' + ... +# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage +ok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage + --- + duration_ms: 0.661735 + type: 'test' + ... +# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources +ok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources + --- + duration_ms: 1.88642 + type: 'test' + ... +# Subtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks +ok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks + --- + duration_ms: 8.481901 + type: 'test' + ... +# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives +ok 388 - existing and unknown collection bookmarks retain Files while explicit text survives + --- + duration_ms: 1.663737 + type: 'test' + ... +# Subtest: collection links preserve literal query and independent state without changing the target +ok 389 - collection links preserve literal query and independent state without changing the target + --- + duration_ms: 0.568541 + type: 'test' + ... +# Subtest: an excerpt link retains exact source commit, literal filename and complete line range +ok 390 - an excerpt link retains exact source commit, literal filename and complete line range + --- + duration_ms: 0.394895 + type: 'test' + ... +# Subtest: invalid or missing excerpt ranges cannot become invented source line identities +ok 391 - invalid or missing excerpt ranges cannot become invented source line identities + --- + duration_ms: 0.224682 + type: 'test' + ... +# Subtest: search links preserve literal text and unrelated page state +ok 392 - search links preserve literal text and unrelated page state + --- + duration_ms: 1.071934 + type: 'test' + ... +# Subtest: empty queries remove only the current-source parameter +ok 393 - empty queries remove only the current-source parameter + --- + duration_ms: 0.319069 + type: 'test' + ... +# Subtest: no initialization on another page or before snapshot admission +ok 394 - no initialization on another page or before snapshot admission + --- + duration_ms: 0.257857 + type: 'test' + ... +# Subtest: aggregate count uses area, all realizations, and bin width exactly once +ok 395 - aggregate count uses area, all realizations, and bin width exactly once + --- + duration_ms: 2.592945 + type: 'test' + ... +# Subtest: twice the count gives twice the mass and density +ok 396 - twice the count gives twice the mass and density + --- + duration_ms: 0.382496 + type: 'test' + ... +# Subtest: adding zero-count realizations still increases the denominator +ok 397 - adding zero-count realizations still increases the denominator + --- + duration_ms: 0.273279 + type: 'test' + ... +# Subtest: a wider synthetic bin preserves mass and divides density by its width +ok 398 - a wider synthetic bin preserves mass and divides density by its width + --- + duration_ms: 0.356658 + type: 'test' + ... +# Subtest: zero counts produce valid zero estimates without a fabricated positive floor +ok 399 - zero counts produce valid zero estimates without a fabricated positive floor + --- + duration_ms: 0.361362 + type: 'test' + ... +# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers +ok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers + --- + duration_ms: 0.811246 + type: 'test' + ... +# Subtest: only positive ordered finite bin edges are accepted +ok 401 - only positive ordered finite bin edges are accepted + --- + duration_ms: 0.493106 + type: 'test' + ... +# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density +ok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density + --- + duration_ms: 0.467131 + type: 'test' + ... +# Subtest: input parsing rejects blanks instead of turning them into zero counts +ok 403 - input parsing rejects blanks instead of turning them into zero counts + --- + duration_ms: 1.49654 + type: 'test' + ... +# Subtest: decimal input, including scientific notation, reaches the same normalization +ok 404 - decimal input, including scientific notation, reaches the same normalization + --- + duration_ms: 1.265666 + type: 'test' + ... +# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero +ok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero + --- + duration_ms: 1.255427 + type: 'test' + ... +# Subtest: six complete inputs feed exactly one conditional conclusion +ok 406 - six complete inputs feed exactly one conditional conclusion + --- + duration_ms: 8.901972 + type: 'test' + ... +# Subtest: the normalization and fixed lower comparison are retained +ok 407 - the normalization and fixed lower comparison are retained + --- + duration_ms: 1.079094 + type: 'test' + ... +# Subtest: measurability and almost-everywhere quantifiers are retained +ok 408 - measurability and almost-everywhere quantifiers are retained + --- + duration_ms: 0.969004 + type: 'test' + ... +# Subtest: positive and zero cases and the density non-implication remain explicit +ok 409 - positive and zero cases and the density non-implication remain explicit + --- + duration_ms: 0.947102 + type: 'test' + ... +# Subtest: changed source bytes are refused before projection +ok 410 - changed source bytes are refused before projection + --- + duration_ms: 2.268541 + type: 'test' + ... +# Subtest: integer and mutable commit identities are refused +ok 411 - integer and mutable commit identities are refused + --- + duration_ms: 0.373249 + type: 'test' + ... +# Subtest: a numeric hash cannot be coerced into a string +ok 412 - a numeric hash cannot be coerced into a string + --- + duration_ms: 0.364018 + type: 'test' + ... +# Subtest: private repository and changed proof paths are refused +ok 413 - private repository and changed proof paths are refused + --- + duration_ms: 0.427862 + type: 'test' + ... +# Subtest: redirected URL and changed blob or size are refused +ok 414 - redirected URL and changed blob or size are refused + --- + duration_ms: 0.907312 + type: 'test' + ... +# Subtest: deleting H3 cannot silently weaken the route +ok 415 - deleting H3 cannot silently weaken the route + --- + duration_ms: 3.093954 + type: 'test' + ... +# Subtest: ALL cannot become ANY +ok 416 - ALL cannot become ANY + --- + duration_ms: 1.202814 + type: 'test' + ... +# Subtest: self dependency or unknown nodes are refused +ok 417 - self dependency or unknown nodes are refused + --- + duration_ms: 1.722982 + type: 'test' + ... +# Subtest: invented acceptance and independence fields are refused +ok 418 - invented acceptance and independence fields are refused + --- + duration_ms: 3.560021 + type: 'test' + ... +# Subtest: rendering exposes hypotheses, exact identity, and application boundary +ok 419 - rendering exposes hypotheses, exact identity, and application boundary + --- + duration_ms: 1.374092 + type: 'test' + ... +# Subtest: a failed load clears any earlier ready view and says so in the status line +ok 420 - a failed load clears any earlier ready view and says so in the status line + --- + duration_ms: 0.434669 + type: 'test' + ... +# Subtest: a page without the status line still shows the refusal in the host, without a role +ok 421 - a page without the status line still shows the refusal in the host, without a role + --- + duration_ms: 0.416782 + type: 'test' + ... +# Subtest: the source fixture is complete and immutable +ok 422 - the source fixture is complete and immutable + --- + duration_ms: 1.353445 + type: 'test' + ... +# Subtest: museum HTML has the route host, navigation and module without replacing existing cards +ok 423 - museum HTML has the route host, navigation and module without replacing existing cards + --- + duration_ms: 1.304167 + type: 'test' + ... +# Subtest: CLI projects the exact source and produces deterministic JSON +ok 424 - CLI projects the exact source and produces deterministic JSON + --- + duration_ms: 69.348734 + type: 'test' + ... +# Subtest: CLI rejects altered manifest bytes +ok 425 - CLI rejects altered manifest bytes + --- + duration_ms: 30.119456 + type: 'test' + ... +# Subtest: CLI refuses missing or repeated conditional claim +ok 426 - CLI refuses missing or repeated conditional claim + --- + duration_ms: 64.547798 + type: 'test' + ... +# Subtest: CLI rejects weakened projection in check mode +ok 427 - CLI rejects weakened projection in check mode + --- + duration_ms: 112.72203 + type: 'test' + ... +# Subtest: CLI rejects nonlocal manifest and malformed hash types +ok 428 - CLI rejects nonlocal manifest and malformed hash types + --- + duration_ms: 96.002404 + type: 'test' + ... +# Subtest: CLI refuses missing input and unknown options +ok 429 - CLI refuses missing input and unknown options + --- + duration_ms: 67.154669 + type: 'test' + ... +# Subtest: CLI rejects source substitution +ok 430 - CLI rejects source substitution + --- + duration_ms: 33.412205 + type: 'test' + ... +# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture +ok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture + --- + duration_ms: 1.181911 + type: 'test' + ... +# Subtest: a fixture-only change was missed before and now runs the conditional suites +ok 432 - a fixture-only change was missed before and now runs the conditional suites + --- + duration_ms: 0.498089 + type: 'test' + ... +# Subtest: existing matching paths stay matched and unrelated paths stay excluded +ok 433 - existing matching paths stay matched and unrelated paths stay excluded + --- + duration_ms: 0.969764 + type: 'test' + ... +# Subtest: every local file the conditional suites and replay tool load triggers the workflow +ok 434 - every local file the conditional suites and replay tool load triggers the workflow + --- + duration_ms: 3.407678 + type: 'test' + ... +# Subtest: a verified startup renders the route from the selected claim proof bytes +ok 435 - a verified startup renders the route from the selected claim proof bytes + --- + duration_ms: 39.314937 + type: 'test' + ... +# Subtest: the museum page and the conditional route share one verified startup and byte cache +ok 436 - the museum page and the conditional route share one verified startup and byte cache + --- + duration_ms: 12.636757 + type: 'test' + ... +# Subtest: a rejected startup is not retained for a later caller +ok 437 - a rejected startup is not retained for a later caller + --- + duration_ms: 4.358371 + type: 'test' + ... +# Subtest: changed proof bytes clear an earlier view and infer nothing +ok 438 - changed proof bytes clear an earlier view and infer nothing + --- + duration_ms: 8.339135 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched +ok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched + --- + duration_ms: 5.754277 + type: 'test' + ... +# Subtest: a stale manifest stops before any pinned remote request +ok 440 - a stale manifest stops before any pinned remote request + --- + duration_ms: 4.392249 + type: 'test' + ... +# Subtest: a page without the route container is left untouched +ok 441 - a page without the route container is left untouched + --- + duration_ms: 5.616237 + type: 'test' + ... +# Subtest: a verified route: the outcome is written to the attached role="status" line after the host changes +ok 442 - a verified route: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 10.922431 + type: 'test' + ... +# Subtest: a verified route: nothing inserted into the route host carries a role or is live +ok 443 - a verified route: nothing inserted into the route host carries a role or is live + --- + duration_ms: 10.957589 + type: 'test' + ... +# Subtest: a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes +ok 444 - a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 1.993797 + type: 'test' + ... +# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live +ok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live + --- + duration_ms: 1.133874 + type: 'test' + ... +# Subtest: a stale manifest: the outcome is written to the attached role="status" line after the host changes +ok 446 - a stale manifest: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 9.608576 + type: 'test' + ... +# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live +ok 447 - a stale manifest: nothing inserted into the route host carries a role or is live + --- + duration_ms: 4.428415 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes +ok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 2.536411 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live +ok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.466504 + type: 'test' + ... +# Subtest: changed proof bytes: the outcome is written to the attached role="status" line after the host changes +ok 450 - changed proof bytes: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 2.65562 + type: 'test' + ... +# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live +ok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.970897 + type: 'test' + ... +# Subtest: an unavailable museum module: the outcome is written to the attached role="status" line after the host changes +ok 452 - an unavailable museum module: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.717996 + type: 'test' + ... +# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live +ok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.549094 + type: 'test' + ... +# Subtest: a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes +ok 454 - a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.726691 + type: 'test' + ... +# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live +ok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.520472 + type: 'test' + ... +# Subtest: museum.html has exactly one route status line: static, role="status", directly before an empty host +ok 456 - museum.html has exactly one route status line: static, role="status", directly before an empty host + --- + duration_ms: 0.292454 + type: 'test' + ... +# Subtest: on a first run the static Verifying… line receives no write while the route is verified +ok 457 - on a first run the static Verifying… line receives no write while the route is verified + --- + duration_ms: 8.753388 + type: 'test' + ... +# Subtest: an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it +ok 458 - an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it + --- + duration_ms: 1.367891 + type: 'test' + ... +# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host +ok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host + --- + duration_ms: 0.831685 + type: 'test' + ... +# Subtest: an older page without the status line draws only the route on success +ok 460 - an older page without the status line draws only the route on success + --- + duration_ms: 2.251845 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 2.322401 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.442389 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 1.635972 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 464 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.565895 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 465 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 6.026548 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 0.987044 + type: 'test' + ... +# Subtest: museum exposes source-bound rendering rather than silently omitting the page +ok 467 - museum exposes source-bound rendering rather than silently omitting the page + --- + duration_ms: 0.3273 + type: 'test' + ... +# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched +ok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched + --- + duration_ms: 52.498421 + type: 'test' + ... +# Subtest: museum wheel while verifying sources cancels delayed focus and scroll +ok 469 - museum wheel while verifying sources cancels delayed focus and scroll + --- + duration_ms: 8.947817 + type: 'test' + ... +# Subtest: museum keydown while verifying sources cancels delayed focus and scroll +ok 470 - museum keydown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 12.993192 + type: 'test' + ... +# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll +ok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 8.673121 + type: 'test' + ... +# Subtest: museum focusin while verifying sources cancels delayed focus and scroll +ok 472 - museum focusin while verifying sources cancels delayed focus and scroll + --- + duration_ms: 14.836646 + type: 'test' + ... +# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll +ok 473 - museum hashchange while verifying sources cancels delayed focus and scroll + --- + duration_ms: 4.696895 + type: 'test' + ... +# Subtest: museum popstate while verifying sources cancels delayed focus and scroll +ok 474 - museum popstate while verifying sources cancels delayed focus and scroll + --- + duration_ms: 7.241817 + type: 'test' + ... +# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll +ok 475 - museum pagehide while verifying sources cancels delayed focus and scroll + --- + duration_ms: 6.897774 + type: 'test' + ... +# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording +ok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording + --- + duration_ms: 1.083093 + type: 'test' + ... +# Subtest: source display cannot promote a counterexample or an AMEND row +ok 477 - source display cannot promote a counterexample or an AMEND row + --- + duration_ms: 0.99137 + type: 'test' + ... +# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope +ok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope + --- + duration_ms: 0.588092 + type: 'test' + ... +# Subtest: replay command must occur exactly in the verified replay source +ok 479 - replay command must occur exactly in the verified replay source + --- + duration_ms: 3.366001 + type: 'test' + ... +# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot +ok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot + --- + duration_ms: 0.777384 + type: 'test' + ... +# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch +ok 481 - malformed, mutable and falsely displayed source identities are refused before fetch + --- + duration_ms: 0.441325 + type: 'test' + ... +# Subtest: verified source bytes are required before a claim can be presented +ok 482 - verified source bytes are required before a claim can be presented + --- + duration_ms: 4.48422 + type: 'test' + ... +# Subtest: streamed responses stop at the byte cap and cancel the reader +ok 483 - streamed responses stop at the byte cap and cancel the reader + --- + duration_ms: 1.028001 + type: 'test' + ... +# Subtest: a stalled response body is aborted within its request deadline +ok 484 - a stalled response body is aborted within its request deadline + --- + duration_ms: 14.746363 + type: 'test' + ... +# Subtest: review comment pointers cannot masquerade as byte-frozen comment content +ok 485 - review comment pointers cannot masquerade as byte-frozen comment content + --- + duration_ms: 0.485618 + type: 'test' + ... +# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review +ok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review + --- + duration_ms: 1.03504 + type: 'test' + ... +# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path +ok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path + --- + duration_ms: 1.215965 + type: 'test' + ... +# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only +ok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only + --- + duration_ms: 1.13561 + type: 'test' + ... +# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer +ok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer + --- + duration_ms: 6.359264 + type: 'test' + ... +# Subtest: museum manifest must match the config byte count and SHA-256 before source projection +ok 490 - museum manifest must match the config byte count and SHA-256 before source projection + --- + duration_ms: 3.554813 + type: 'test' + ... +# Subtest: museum.html keeps its two evidence live regions and a separate current observation region +ok 491 - museum.html keeps its two evidence live regions and a separate current observation region + --- + duration_ms: 0.984531 + type: 'test' + ... +# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses +ok 492 - brand.css keeps the route status line visible and in the error colour when it refuses + --- + duration_ms: 1.310248 + type: 'test' + ... +# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them +ok 493 - refused cards carry no role and are not live; the museum status line counts every one of them + --- + duration_ms: 5.015259 + type: 'test' + ... +# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view +ok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view + --- + duration_ms: 4.599957 + type: 'test' + ... +# Subtest: a declared exhibit that cannot be shown is counted in the museum status line +ok 495 - a declared exhibit that cannot be shown is counted in the museum status line + --- + duration_ms: 5.451016 + type: 'test' + ... +# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title +ok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title + --- + duration_ms: 1.186719 + type: 'test' + ... +# Subtest: a coherent old browser cache cannot hide the newly pinned packet +ok 497 - a coherent old browser cache cannot hide the newly pinned packet + --- + duration_ms: 14.554079 + type: 'test' + ... +# Subtest: a mixed new config and stale museum manifest fails closed +ok 498 - a mixed new config and stale museum manifest fails closed + --- + duration_ms: 2.352823 + type: 'test' + ... +# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions +ok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions + --- + duration_ms: 15.369581 + type: 'test' + ... +# Subtest: verified claim quotes expose readable source and exact review citations +ok 500 - verified claim quotes expose readable source and exact review citations + --- + duration_ms: 3.297141 + type: 'test' + ... +# Subtest: readable presentation retains the exact original source quote in a disclosure +ok 501 - readable presentation retains the exact original source quote in a disclosure + --- + duration_ms: 3.21417 + type: 'test' + ... +# Subtest: packet cards render in manifest order when the first packet arrives last +ok 502 - packet cards render in manifest order when the first packet arrives last + --- + duration_ms: 8.458559 + type: 'test' + ... +# Subtest: a refused packet keeps its manifest slot when the other packet arrives later +ok 503 - a refused packet keeps its manifest slot when the other packet arrives later + --- + duration_ms: 7.545575 + type: 'test' + ... +# Subtest: every refused packet is counted in the museum status line +ok 504 - every refused packet is counted in the museum status line + --- + duration_ms: 7.475708 + type: 'test' + ... +# Subtest: a rendered packet replaces its Verifying placeholder +ok 505 - a rendered packet replaces its Verifying placeholder + --- + duration_ms: 8.421529 + type: 'test' + ... +# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders +ok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders + --- + duration_ms: 1.641019 + type: 'test' + ... +# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window +ok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window + --- + duration_ms: 0.405591 + type: 'test' + ... +# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two +ok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two + --- + duration_ms: 0.395904 + type: 'test' + ... +# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple +ok 509 - P15 exact finite example partitions every proper subset and rejects the full triple + --- + duration_ms: 0.441948 + type: 'test' + ... +# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code +ok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code + --- + duration_ms: 0.469315 + type: 'test' + ... +# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions +ok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions + --- + duration_ms: 2.778437 + type: 'test' + ... +# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches +ok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches + --- + duration_ms: 0.671294 + type: 'test' + ... +# Subtest: P15 vertex toggles change the actual decomposition result +ok 513 - P15 vertex toggles change the actual decomposition result + --- + duration_ms: 0.686637 + type: 'test' + ... +# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails +ok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails + --- + duration_ms: 1.609804 + type: 'test' + ... +# Subtest: EC014 live status follows the visible view through 3D, 2D and back +ok 515 - EC014 live status follows the visible view through 3D, 2D and back + --- + duration_ms: 3.733514 + type: 'test' + ... +# Subtest: correct source bytes cannot acquire a different valid-looking commit +ok 516 - correct source bytes cannot acquire a different valid-looking commit + --- + duration_ms: 1.245067 + type: 'test' + ... +# Subtest: exported projection preserves the complete audited source descriptor +ok 517 - exported projection preserves the complete audited source descriptor + --- + duration_ms: 11.204221 + type: 'test' + ... +# Subtest: offline CLI refuses coherent hash-correct source relabeling +ok 518 - offline CLI refuses coherent hash-correct source relabeling + --- + duration_ms: 38.353709 + type: 'test' + ... +# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags +ok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags + --- + duration_ms: 161.901918 + type: 'test' + ... +# Subtest: a record with an owner but no evidence_url fails validation +ok 520 - a record with an owner but no evidence_url fails validation + --- + duration_ms: 334.311998 + type: 'test' + ... +# Subtest: closed schema, evidence pattern, and primary source_rev are enforced +ok 521 - closed schema, evidence pattern, and primary source_rev are enforced + --- + duration_ms: 999.488991 + type: 'test' + ... +# Subtest: pinned rev equals the blob or tree commit segment +ok 522 - pinned rev equals the blob or tree commit segment + --- + duration_ms: 303.630849 + type: 'test' + ... +# Subtest: carried_forward resolution_url uses the shared comment pattern +ok 523 - carried_forward resolution_url uses the shared comment pattern + --- + duration_ms: 402.425441 + type: 'test' + ... +# Subtest: released_url keeps the owner object and the atlas says released +ok 524 - released_url keeps the owner object and the atlas says released + --- + duration_ms: 138.916183 + type: 'test' + ... +# Subtest: resume projection shows a node-status view and refuses an owner without evidence +ok 525 - resume projection shows a node-status view and refuses an owner without evidence + --- + duration_ms: 534.490406 + type: 'test' + ... +# Subtest: a valid observed_at and source_rev refresh still validates and renders +ok 526 - a valid observed_at and source_rev refresh still validates and renders + --- + duration_ms: 177.809523 + type: 'test' + ... +# Subtest: the atlas resume section passes the published node-status view into resumeProjection +ok 527 - the atlas resume section passes the published node-status view into resumeProjection + --- + duration_ms: 1.393243 + type: 'test' + ... +# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim +ok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim + --- + duration_ms: 149.266546 + type: 'test' + ... +# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs +ok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs + --- + duration_ms: 3.544774 + type: 'test' + ... +# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition +ok 530 - the failed triple explicitly records an attempted placement rather than a valid partition + --- + duration_ms: 0.651112 + type: 'test' + ... +# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink +ok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink + --- + duration_ms: 0.245113 + type: 'test' + ... +# Subtest: malformed selections and noncanonical or false ISO timestamps are refused +ok 532 - malformed selections and noncanonical or false ISO timestamps are refused + --- + duration_ms: 0.534271 + type: 'test' + ... +# Subtest: metadata carries the exact pinned finite source and non-certifying scope +ok 533 - metadata carries the exact pinned finite source and non-certifying scope + --- + duration_ms: 1.074534 + type: 'test' + ... +# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement +ok 534 - plaintext citations identify selected objects, actual empty groups and failed placement + --- + duration_ms: 0.717348 + type: 'test' + ... +# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors +ok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors + --- + duration_ms: 2.047634 + type: 'test' + ... +# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer +ok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer + --- + duration_ms: 17.863627 + type: 'test' + ... +# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused +ok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused + --- + duration_ms: 2.011428 + type: 'test' + ... +# Subtest: the visible footer records the same ISO generation timestamp as export metadata +ok 538 - the visible footer records the same ISO generation timestamp as export metadata + --- + duration_ms: 1.559631 + type: 'test' + ... +# Subtest: inherited native font stacks on actual non-text primitives remain self-contained +ok 539 - inherited native font stacks on actual non-text primitives remain self-contained + --- + duration_ms: 1.060855 + type: 'test' + ... +# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export +ok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export + --- + duration_ms: 2.480967 + type: 'test' + ... +# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities +ok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities + --- + duration_ms: 2.018628 + type: 'test' + ... +# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted +ok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted + --- + duration_ms: 0.877658 + type: 'test' + ... +# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink +ok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink + --- + duration_ms: 0.538791 + type: 'test' + ... +# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings +ok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings + --- + duration_ms: 10.833429 + type: 'test' + ... +# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources +ok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources + --- + duration_ms: 2.758918 + type: 'test' + ... +# Subtest: the visible pin footer records the same ISO generation timestamp as metadata +ok 546 - the visible pin footer records the same ISO generation timestamp as metadata + --- + duration_ms: 1.334413 + type: 'test' + ... +# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection. +# Subtest: SIDE24 always identifies the engineering exhibit before the controls +ok 547 - SIDE24 always identifies the engineering exhibit before the controls + --- + duration_ms: 0.812158 + type: 'test' + ... +# Subtest: count cards and every status row retain their own source context +ok 548 - count cards and every status row retain their own source context + --- + duration_ms: 5.124373 + type: 'test' + ... +# Subtest: repository and path filters combine with search and reset pagination +ok 549 - repository and path filters combine with search and reset pagination + --- + duration_ms: 25.467679 + type: 'test' + ... +# Subtest: query view shows its pin and the local byte-check command without a live ref control +ok 550 - query view shows its pin and the local byte-check command without a live ref control + --- + duration_ms: 0.32202 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 551 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.495102 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 552 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 1.004866 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 553 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.294222 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 554 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 4.763466 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 555 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.50254 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 556 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.548446 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 557 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.8501 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.707373 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 559 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.130818 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 560 - navigation and grids can reflow on small screens + --- + duration_ms: 1.293873 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 561 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.121883 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 562 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.121904 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 8.650539 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 7.455812 + type: 'test' + ... +# Subtest: valid source preserves exact strings +ok 565 - valid source preserves exact strings + --- + duration_ms: 31.070181 + type: 'test' + ... +# Subtest: local pinned data bypasses an older response while still verifying current bytes +ok 566 - local pinned data bypasses an older response while still verifying current bytes + --- + duration_ms: 3.807414 + type: 'test' + ... +# Subtest: digest mismatch refuses data +ok 567 - digest mismatch refuses data + --- + duration_ms: 1.916666 + type: 'test' + ... +# Subtest: byte count mismatch refuses data +ok 568 - byte count mismatch refuses data + --- + duration_ms: 0.377105 + type: 'test' + ... +# Subtest: mutable branch URL refused before request +ok 569 - mutable branch URL refused before request + --- + duration_ms: 0.200812 + type: 'test' + ... +# Subtest: HTTP failure gives no data +ok 570 - HTTP failure gives no data + --- + duration_ms: 0.327852 + type: 'test' + ... +# Subtest: status snapshot counts are selected rows +ok 571 - status snapshot counts are selected rows + --- + duration_ms: 2.980832 + type: 'test' + ... +# Subtest: unknown category refused +ok 572 - unknown category refused + --- + duration_ms: 0.234337 + type: 'test' + ... +# Subtest: changed count refused +ok 573 - changed count refused + --- + duration_ms: 0.165757 + type: 'test' + ... +# Subtest: promotion authority refused +ok 574 - promotion authority refused + --- + duration_ms: 0.10565 + type: 'test' + ... +# Subtest: coefficient endpoints remain distinct exactly +ok 575 - coefficient endpoints remain distinct exactly + --- + duration_ms: 0.26884 + type: 'test' + ... +# Subtest: float endpoints refused +ok 576 - float endpoints refused + --- + duration_ms: 0.154703 + type: 'test' + ... +# Subtest: coefficient acceptance flag cannot be flipped +ok 577 - coefficient acceptance flag cannot be flipped + --- + duration_ms: 0.094026 + type: 'test' + ... +# Subtest: catalog points at immutable public paths +ok 578 - catalog points at immutable public paths + --- + duration_ms: 0.180909 + type: 'test' + ... +# Subtest: catalog rejects private repo and traversal +ok 579 - catalog rejects private repo and traversal + --- + duration_ms: 0.173126 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different commit +ok 580 - correct bytes cannot be attributed to a different commit + --- + duration_ms: 0.485354 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different path +ok 581 - correct bytes cannot be attributed to a different path + --- + duration_ms: 0.26348 + type: 'test' + ... +# Subtest: Home explains the landscape before publication machinery +ok 582 - Home explains the landscape before publication machinery + --- + duration_ms: 1.29496 + type: 'test' + ... +# Subtest: Explore reaches a real local control and result before source publication +ok 583 - Explore reaches a real local control and result before source publication + --- + duration_ms: 0.42123 + type: 'test' + ... +# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive +ok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive + --- + duration_ms: 1.175183 + type: 'test' + ... +# Subtest: Research reading map routes to all four preserved introductory paths +ok 585 - Research reading map routes to all four preserved introductory paths + --- + duration_ms: 1.594486 + type: 'test' + ... +# Subtest: Library routes present-day discovery separately from dated records +ok 586 - Library routes present-day discovery separately from dated records + --- + duration_ms: 0.604578 + type: 'test' + ... +# Subtest: Deep archived fragments reveal every ancestor without focus or history writes +ok 587 - Deep archived fragments reveal every ancestor without focus or history writes + --- + duration_ms: 1.115332 + type: 'test' + ... +# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes +ok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes + --- + duration_ms: 0.543471 + type: 'test' + ... +# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched +ok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched + --- + duration_ms: 0.628457 + type: 'test' + ... +# Subtest: current readers expose consistent native task links with real destinations +ok 590 - current readers expose consistent native task links with real destinations + --- + duration_ms: 11.364731 + type: 'test' + ... +# Subtest: missing and already-enhanced menus receive no extra listeners +ok 591 - missing and already-enhanced menus receive no extra listeners + --- + duration_ms: 0.230874 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 592 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 74.860899 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 593 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 72.540129 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 594 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 42.187848 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 595 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 73.4229 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 596 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 147.195401 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 597 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.902735 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.565441 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.232441 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 600 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 28.181303 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.387727 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.862745 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 603 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.730799 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.112466 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 605 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 27.203764 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 19.984145 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 607 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 25.812546 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 608 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 28.913346 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 609 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 20.363113 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 610 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 26.390893 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 611 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 1.821056 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 612 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 27.585332 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 613 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 20.004503 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 614 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 25.524651 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 615 - a config refusal settles every pending source note + --- + duration_ms: 1.683305 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 616 - a query refusal preserves verified import custody information + --- + duration_ms: 26.137269 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 617 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 20.373073 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 618 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.254504 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 619 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 23.913958 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.413585 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 621 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 25.415402 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 26.800605 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 623 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 37.950893 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 624 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 31.279249 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 625 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 26.006893 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 626 - encoded punctuation stays inert search text + --- + duration_ms: 26.103232 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 627 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 23.625209 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 628 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 8.109084 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 629 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 23.50456 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 630 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 25.135363 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 32.337951 + type: 'test' + ... +# Subtest: every former landing section routes to its preserved workspace section +ok 632 - every former landing section routes to its preserved workspace section + --- + duration_ms: 0.449188 + type: 'test' + ... +# Subtest: new home fragments and untrusted fragments never become redirect destinations +ok 633 - new home fragments and untrusted fragments never become redirect destinations + --- + duration_ms: 0.106442 + type: 'test' + ... +# Subtest: browser entry follows a bookmarked section and future hash changes +ok 634 - browser entry follows a bookmarked section and future hash changes + --- + duration_ms: 0.587891 + type: 'test' + ... +# Subtest: the reader home does not preload the technical inventory or source viewer +ok 635 - the reader home does not preload the technical inventory or source viewer + --- + duration_ms: 0.229466 + type: 'test' + ... +# Subtest: verified source cards become reachable after asynchronous rendering +ok 636 - verified source cards become reachable after asynchronous rendering + --- + duration_ms: 1.58551 + type: 'test' + ... +# Subtest: saved source hands exact fields to the same-site reference builder +ok 637 - saved source hands exact fields to the same-site reference builder + --- + duration_ms: 3.155806 + type: 'test' + ... +# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field +ok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field + --- + duration_ms: 0.923551 + type: 'test' + ... +# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path +ok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path + --- + duration_ms: 0.850116 + type: 'test' + ... +# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal +ok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal + --- + duration_ms: 0.929479 + type: 'test' + ... +# Subtest: queries and malformed or overprivileged imported records cannot become references +ok 641 - queries and malformed or overprivileged imported records cannot become references + --- + duration_ms: 1.13673 + type: 'test' + ... +# Subtest: imported notes refuse raw duplicate schema and source identity keys +ok 642 - imported notes refuse raw duplicate schema and source identity keys + --- + duration_ms: 3.59881 + type: 'test' + ... +# Subtest: source-button identity matches legal filename URI spellings without conflating path segments +ok 643 - source-button identity matches legal filename URI spellings without conflating path segments + --- + duration_ms: 0.429213 + type: 'test' + ... +# Subtest: valid entries retain exact identities and normalize only search whitespace +ok 644 - valid entries retain exact identities and normalize only search whitespace + --- + duration_ms: 1.234316 + type: 'test' + ... +# Subtest: entries require exact plain JSON data records with no inherited or executable fields +ok 645 - entries require exact plain JSON data records with no inherited or executable fields + --- + duration_ms: 0.642033 + type: 'test' + ... +# Subtest: unexpected keys never become imported links, statuses or inferred metadata +ok 646 - unexpected keys never become imported links, statuses or inferred metadata + --- + duration_ms: 0.678246 + type: 'test' + ... +# Subtest: required properties and string types cannot be coerced or defaulted +ok 647 - required properties and string types cannot be coerced or defaulted + --- + duration_ms: 1.494236 + type: 'test' + ... +# Subtest: source repositories and commits must name an allowed owner and exact immutable commit +ok 648 - source repositories and commits must name an allowed owner and exact immutable commit + --- + duration_ms: 1.173408 + type: 'test' + ... +# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments +ok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments + --- + duration_ms: 0.598555 + type: 'test' + ... +# Subtest: dates reject calendar overflow, offsets and invalid timestamp types +ok 650 - dates reject calendar overflow, offsets and invalid timestamp types + --- + duration_ms: 1.310888 + type: 'test' + ... +# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types +ok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types + --- + duration_ms: 2.072281 + type: 'test' + ... +# Subtest: search filters are bounded inert text with collection-specific repositories +ok 652 - search filters are bounded inert text with collection-specific repositories + --- + duration_ms: 0.797863 + type: 'test' + ... +# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding +ok 653 - source links are reconstructed from exact pins with literal raw Git path encoding + --- + duration_ms: 0.398656 + type: 'test' + ... +# Subtest: current search links omit every catalog and unrelated parameter +ok 654 - current search links omit every catalog and unrelated parameter + --- + duration_ms: 0.372489 + type: 'test' + ... +# Subtest: catalog search links omit current parameters and roundtrip all catalog filters +ok 655 - catalog search links omit current parameters and roundtrip all catalog filters + --- + duration_ms: 0.266312 + type: 'test' + ... +# Subtest: blank saved searches restore their collection all-files view +ok 656 - blank saved searches restore their collection all-files view + --- + duration_ms: 0.271656 + type: 'test' + ... +# Subtest: entry identity separates source pins and normalized collection search contexts +ok 657 - entry identity separates source pins and normalized collection search contexts + --- + duration_ms: 0.575213 + type: 'test' + ... +# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields +ok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields + --- + duration_ms: 0.706292 + type: 'test' + ... +# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing +ok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing + --- + duration_ms: 4.993852 + type: 'test' + ... +# Subtest: merge validates every entry before returning and leaves inputs unchanged +ok 660 - merge validates every entry before returning and leaves inputs unchanged + --- + duration_ms: 0.546799 + type: 'test' + ... +# Subtest: deduplication keeps first context and enriches absent identity metadata +ok 661 - deduplication keeps first context and enriches absent identity metadata + --- + duration_ms: 0.531352 + type: 'test' + ... +# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge +ok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge + --- + duration_ms: 0.960573 + type: 'test' + ... +# Subtest: capacity counts unique entries and overflow is atomic +ok 663 - capacity counts unique entries and overflow is atomic + --- + duration_ms: 6.42606 + type: 'test' + ... +# Subtest: exported JSON carries only strict schema data and roundtrips identity types +ok 664 - exported JSON carries only strict schema data and roundtrips identity types + --- + duration_ms: 0.570877 + type: 'test' + ... +# Subtest: export rejects oversized identities instead of creating an unimportable file +ok 665 - export rejects oversized identities instead of creating an unimportable file + --- + duration_ms: 1.688608 + type: 'test' + ... +# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity +ok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity + --- + duration_ms: 9.979921 + type: 'test' + ... +# Subtest: comparison model is implemented +ok 667 - comparison model is implemented + --- + duration_ms: 6.345385 + type: 'test' + ... +# Subtest: literal fields preserve array order and number versus boolean +ok 668 - literal fields preserve array order and number versus boolean + --- + duration_ms: 0.484675 + type: 'test' + ... +# Subtest: real retained archives distinguish pin moves from blob/byte moves +ok 669 - real retained archives distinguish pin moves from blob/byte moves + --- + duration_ms: 334.756298 + type: 'test' + ... +# Subtest: payload integrity refuses byte and digest mismatch +ok 670 - payload integrity refuses byte and digest mismatch + --- + duration_ms: 2.475343 + type: 'test' + ... +# Subtest: unsafe public paths and unsupported versions refuse +ok 671 - unsafe public paths and unsupported versions refuse + --- + duration_ms: 0.633281 + type: 'test' + ... +# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives +ok 672 - duplicate inventory identities refuse; complete edge multiplicity survives + --- + duration_ms: 42.22763 + type: 'test' + ... +# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted +ok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted + --- + duration_ms: 23.301612 + type: 'test' + ... +# Subtest: registry binds selected own descriptors and metadata publication +ok 674 - registry binds selected own descriptors and metadata publication + --- + duration_ms: 5.49047 + type: 'test' + ... +# Subtest: bounded acquisition refuses oversized responses and follows no redirects +ok 675 - bounded acquisition refuses oversized responses and follows no redirects + --- + duration_ms: 17.332516 + type: 'test' + ... +# Subtest: publication acquisition verifies registry hash before admitting choices +ok 676 - publication acquisition verifies registry hash before admitting choices + --- + duration_ms: 39.843801 + type: 'test' + ... +# Subtest: page advertised identity refuses a different publication +ok 677 - page advertised identity refuses a different publication + --- + duration_ms: 4.140993 + type: 'test' + ... +# Subtest: decoded byte identity survives HTTP content encoding +ok 678 - decoded byte identity survives HTTP content encoding + --- + duration_ms: 0.835557 + type: 'test' + ... +# Subtest: raw duplicate node IDs refuse even when exact byte digest matches +ok 679 - raw duplicate node IDs refuse even when exact byte digest matches + --- + duration_ms: 6.748176 + type: 'test' + ... +# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys +ok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys + --- + duration_ms: 0.648137 + type: 'test' + ... +# Subtest: raw duplicate metadata and hash-matching registry keys refuse +ok 681 - raw duplicate metadata and hash-matching registry keys refuse + --- + duration_ms: 6.702099 + type: 'test' + ... +# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections +ok 682 - producer-admitted identical current/archive bytes retain distinct typed selections + --- + duration_ms: 72.678601 + type: 'test' + ... +# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes +ok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes + --- + duration_ms: 0.449796 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 1.178743 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.38692 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 686 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 0.518 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 687 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.69912 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 688 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 6.540429 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 1.324646 + type: 'test' + ... +# Subtest: builds an immutable repository or file reference without attributing authorship +ok 690 - builds an immutable repository or file reference without attributing authorship + --- + duration_ms: 1.831119 + type: 'test' + ... +# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths +ok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths + --- + duration_ms: 1.744764 + type: 'test' + ... +# Subtest: allows unicode file names and unambiguous encoded URL delimiters +ok 692 - allows unicode file names and unambiguous encoded URL delimiters + --- + duration_ms: 0.251392 + type: 'test' + ... +# Subtest: real form wiring clears stale output and announces a corrected reference +ok 693 - real form wiring clears stale output and announces a corrected reference + --- + duration_ms: 1.168712 + type: 'test' + ... +# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity +ok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity + --- + duration_ms: 0.948142 + type: 'test' + ... +# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math +ok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math + --- + duration_ms: 0.347435 + type: 'test' + ... +# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources +ok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources + --- + duration_ms: 0.236314 + type: 'test' + ... +# Subtest: interval copying locks all formats until the actual write finishes and handles denial +ok 697 - interval copying locks all formats until the actual write finishes and handles denial + --- + duration_ms: 0.740155 + type: 'test' + ... +# Subtest: copy sends exactly the displayed pinned commands and never executes them +ok 698 - copy sends exactly the displayed pinned commands and never executes them + --- + duration_ms: 1.825984 + type: 'test' + ... +# Subtest: clipboard refusal provides manual fallback without success +ok 699 - clipboard refusal provides manual fallback without success + --- + duration_ms: 0.701061 + type: 'test' + ... +# Subtest: unsupported clipboard leaves the command block readable and gives fallback +ok 700 - unsupported clipboard leaves the command block readable and gives fallback + --- + duration_ms: 0.245017 + type: 'test' + ... +# Subtest: reproduction controls have static fallback and an explicit live announcement +ok 701 - reproduction controls have static fallback and an explicit live announcement + --- + duration_ms: 18.004922 + type: 'test' + ... +# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON +ok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON + --- + duration_ms: 0.320212 + type: 'test' + ... +# Subtest: rejects misleading or malformed digest identities +ok 703 - rejects misleading or malformed digest identities + --- + duration_ms: 0.462067 + type: 'test' + ... +# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields +ok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields + --- + duration_ms: 0.835732 + type: 'test' + ... +# Subtest: malformed shared references are refused without partial source identity +ok 705 - malformed shared references are refused without partial source identity + --- + duration_ms: 0.44362 + type: 'test' + ... +# Subtest: reference workflow copies selected representations and invalidates stale outputs +ok 706 - reference workflow copies selected representations and invalidates stale outputs + --- + duration_ms: 0.680494 + type: 'test' + ... +# Subtest: shared reference restoration and Back reject invalid state without publishing old output +ok 707 - shared reference restoration and Back reject invalid state without publishing old output + --- + duration_ms: 0.515112 + type: 'test' + ... +# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded +ok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded + --- + duration_ms: 0.636161 + type: 'test' + ... +# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes +ok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes + --- + duration_ms: 0.369673 + type: 'test' + ... +# Subtest: a pending clipboard operation prevents a newer reference from overtaking it +ok 710 - a pending clipboard operation prevents a newer reference from overtaking it + --- + duration_ms: 0.403407 + type: 'test' + ... +# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest +ok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest + --- + duration_ms: 0.301813 + type: 'test' + ... +# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity +ok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity + --- + duration_ms: 0.317629 + type: 'test' + ... +# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity +ok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity + --- + duration_ms: 0.78288 + type: 'test' + ... +# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success +ok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success + --- + duration_ms: 0.555774 + type: 'test' + ... +# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback +ok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback + --- + duration_ms: 0.511408 + type: 'test' + ... +# Subtest: legal unmatched and nested path braces produce parser-safe literal text +ok 716 - legal unmatched and nested path braces produce parser-safe literal text + --- + duration_ms: 17.235977 + type: 'test' + ... +# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted. +# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata +ok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata + --- + duration_ms: 3.930909 + type: 'test' + ... +# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state +ok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state + --- + duration_ms: 1.147298 + type: 'test' + ... +# Subtest: unsupported resources and unbounded or invisible styles refuse serialization +ok 719 - unsupported resources and unbounded or invisible styles refuse serialization + --- + duration_ms: 1.893707 + type: 'test' + ... +# Subtest: capture reads displayed primitives and their concrete computed styles +ok 720 - capture reads displayed primitives and their concrete computed styles + --- + duration_ms: 1.537649 + type: 'test' + ... +# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children +ok 721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children + --- + duration_ms: 1.134514 + type: 'test' + ... +# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes +ok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes + --- + duration_ms: 1.115275 + type: 'test' + ... +# Subtest: rounded rectangle height requires a matching native used-height witness +ok 723 - rounded rectangle height requires a matching native used-height witness + --- + duration_ms: 0.756969 + type: 'test' + ... +# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion +ok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion + --- + duration_ms: 0.272095 + type: 'test' + ... +# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string +ok 725 - native height equality cannot admit real CSS overrides sharing a rounded string + --- + duration_ms: 1.718022 + type: 'test' + ... +# Subtest: rectangle height witness is finite, bounded and fail-closed +ok 726 - rectangle height witness is finite, bounded and fail-closed + --- + duration_ms: 3.605505 + type: 'test' + ... +# Subtest: native representation check is bounded to positive rectangle height roundoff +ok 727 - native representation check is bounded to positive rectangle height roundoff + --- + duration_ms: 1.777178 + type: 'test' + ... +# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry +ok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry + --- + duration_ms: 0.344155 + type: 'test' + ... +# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles +ok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles + --- + duration_ms: 0.503569 + type: 'test' + ... +# Subtest: capture refuses root opacity that would be lost from the opaque standalone export +ok 730 - capture refuses root opacity that would be lost from the opaque standalone export + --- + duration_ms: 0.454396 + type: 'test' + ... +# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths +ok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths + --- + duration_ms: 2.421699 + type: 'test' + ... +# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes +ok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes + --- + duration_ms: 0.39096 + type: 'test' + ... +# Subtest: pending copies serialize writes and never claim success after control changes +ok 733 - pending copies serialize writes and never claim success after control changes + --- + duration_ms: 0.259008 + type: 'test' + ... +# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text +ok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text + --- + duration_ms: 0.436005 + type: 'test' + ... +# Subtest: current clipboard success and denial report only the current figure state +ok 735 - current clipboard success and denial report only the current figure state + --- + duration_ms: 0.321269 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 736 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 81.498106 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 737 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 59.444793 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 738 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 35.625589 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 739 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 71.810342 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 740 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 138.01983 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 741 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 29.696506 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.096323 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.895755 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 744 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.065477 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.078785 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.517232 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 747 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.492755 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.025916 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 749 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.257431 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.06885 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 751 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 24.5949 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 752 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 20.147886 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 753 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 23.993506 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 754 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 24.882027 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 755 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 1.681041 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 756 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 20.09565 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 757 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 24.315278 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 758 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 25.698576 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 759 - a config refusal settles every pending source note + --- + duration_ms: 1.549568 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 760 - a query refusal preserves verified import custody information + --- + duration_ms: 20.264136 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 761 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 28.705175 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 762 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.272664 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 763 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 23.855362 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.348957 + type: 'test' + ... +1..764 +# tests 764 +# suites 0 +# pass 764 +# fail 0 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 5394.280335 diff --git a/cbz/evidence/cold-start-node/green/f4-node.tap b/cbz/evidence/cold-start-node/green/f4-node.tap new file mode 100644 index 000000000..bbeceb67e --- /dev/null +++ b/cbz/evidence/cold-start-node/green/f4-node.tap @@ -0,0 +1,4596 @@ +TAP version 13 +# Subtest: tests/fixtures/museum_fixture.mjs +ok 1 - tests/fixtures/museum_fixture.mjs + --- + duration_ms: 49.201512 + type: 'test' + ... +# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats +ok 2 - only the current query is announced after 500ms of quiet, even if its count repeats + --- + duration_ms: 18.352992 + type: 'test' + ... +# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results +ok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results + --- + duration_ms: 0.792931 + type: 'test' + ... +# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion +ok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion + --- + duration_ms: 7.851303 + type: 'test' + ... +# Subtest: Source-identical documents at another recorded revision retain their actual current pin +ok 5 - Source-identical documents at another recorded revision retain their actual current pin + --- + duration_ms: 1.22682 + type: 'test' + ... +# Subtest: changed scope leaves the mapping unavailable +ok 6 - changed scope leaves the mapping unavailable + --- + duration_ms: 0.635464 + type: 'test' + ... +# Subtest: extra graph field leaves the mapping unavailable +ok 7 - extra graph field leaves the mapping unavailable + --- + duration_ms: 0.601975 + type: 'test' + ... +# Subtest: changed source blob leaves the mapping unavailable +ok 8 - changed source blob leaves the mapping unavailable + --- + duration_ms: 1.13766 + type: 'test' + ... +# Subtest: changed source size leaves the mapping unavailable +ok 9 - changed source size leaves the mapping unavailable + --- + duration_ms: 0.591787 + type: 'test' + ... +# Subtest: changed fingerprint leaves the mapping unavailable +ok 10 - changed fingerprint leaves the mapping unavailable + --- + duration_ms: 0.699947 + type: 'test' + ... +# Subtest: missing source leaves the mapping unavailable +ok 11 - missing source leaves the mapping unavailable + --- + duration_ms: 0.549582 + type: 'test' + ... +# Subtest: changed formal manifest leaves the mapping unavailable +ok 12 - changed formal manifest leaves the mapping unavailable + --- + duration_ms: 1.067722 + type: 'test' + ... +# Subtest: An equal-looking different node ID is never inferred to be covered +ok 13 - An equal-looking different node ID is never inferred to be covered + --- + duration_ms: 0.903954 + type: 'test' + ... +# Subtest: Other actual claims keep missing mappings explicit +ok 14 - Other actual claims keep missing mappings explicit + --- + duration_ms: 0.484394 + type: 'test' + ... +# Subtest: The actual older committed observation has a different manifest and remains unmapped +ok 15 - The actual older committed observation has a different manifest and remains unmapped + --- + duration_ms: 4.998647 + type: 'test' + ... +# Subtest: An execution for another revision cannot attach to the artifact +ok 16 - An execution for another revision cannot attach to the artifact + --- + duration_ms: 0.785758 + type: 'test' + ... +# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record +ok 17 - A fabricated accepted alignment cannot replace the pinned adverse record + --- + duration_ms: 0.633513 + type: 'test' + ... +# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review +ok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review + --- + duration_ms: 4.002078 + type: 'test' + ... +# Subtest: an unknown manifest cannot use the explicit bridge +ok 19 - an unknown manifest cannot use the explicit bridge + --- + duration_ms: 1.163168 + type: 'test' + ... +# Subtest: a wrong manifest size cannot use the explicit bridge +ok 20 - a wrong manifest size cannot use the explicit bridge + --- + duration_ms: 0.669665 + type: 'test' + ... +# Subtest: duplicate formal inventory cannot use the explicit bridge +ok 21 - duplicate formal inventory cannot use the explicit bridge + --- + duration_ms: 0.678485 + type: 'test' + ... +# Subtest: changed claim scope cannot use the explicit bridge +ok 22 - changed claim scope cannot use the explicit bridge + --- + duration_ms: 1.414321 + type: 'test' + ... +# Subtest: an extra claim coverage field cannot use the explicit bridge +ok 23 - an extra claim coverage field cannot use the explicit bridge + --- + duration_ms: 0.633657 + type: 'test' + ... +# Subtest: another declaration cannot replace the pinned evidence +ok 24 - another declaration cannot replace the pinned evidence + --- + duration_ms: 0.883571 + type: 'test' + ... +# Subtest: a forged receipt with the same commit cannot replace the pinned evidence +ok 25 - a forged receipt with the same commit cannot replace the pinned evidence + --- + duration_ms: 0.584303 + type: 'test' + ... +# Subtest: a fabricated accepted review cannot replace the pinned evidence +ok 26 - a fabricated accepted review cannot replace the pinned evidence + --- + duration_ms: 1.250522 + type: 'test' + ... +# Subtest: An equally named different claim and prototype key remain unmapped +ok 27 - An equally named different claim and prototype key remain unmapped + --- + duration_ms: 0.989724 + type: 'test' + ... +# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment +ok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment + --- + duration_ms: 0.943105 + type: 'test' + ... +# Subtest: original refuses identical duplicate proof-source entries +ok 29 - original refuses identical duplicate proof-source entries + --- + duration_ms: 1.089424 + type: 'test' + ... +# Subtest: original refuses conflicting duplicate proof-source entries +ok 30 - original refuses conflicting duplicate proof-source entries + --- + duration_ms: 1.409228 + type: 'test' + ... +# Subtest: 8228 refuses identical duplicate proof-source entries +ok 31 - 8228 refuses identical duplicate proof-source entries + --- + duration_ms: 3.461444 + type: 'test' + ... +# Subtest: 8228 refuses conflicting duplicate proof-source entries +ok 32 - 8228 refuses conflicting duplicate proof-source entries + --- + duration_ms: 0.838799 + type: 'test' + ... +# Subtest: a22f refuses identical duplicate proof-source entries +ok 33 - a22f refuses identical duplicate proof-source entries + --- + duration_ms: 0.87787 + type: 'test' + ... +# Subtest: a22f refuses conflicting duplicate proof-source entries +ok 34 - a22f refuses conflicting duplicate proof-source entries + --- + duration_ms: 0.839703 + type: 'test' + ... +# Subtest: Atlas begins with its task and working search before the source inventory +ok 35 - Atlas begins with its task and working search before the source inventory + --- + duration_ms: 2.455223 + type: 'test' + ... +# Subtest: The selector is the sole view switch while controller compatibility stays present +ok 36 - The selector is the sole view switch while controller compatibility stays present + --- + duration_ms: 0.331638 + type: 'test' + ... +# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope +ok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope + --- + duration_ms: 0.399216 + type: 'test' + ... +# Subtest: Neighborhood coverage stays available without delaying the useful graph or list +ok 38 - Neighborhood coverage stays available without delaying the useful graph or list + --- + duration_ms: 0.355987 + type: 'test' + ... +# Subtest: The historical viewer is explicitly archived with preserved entry fragments +ok 39 - The historical viewer is explicitly archived with preserved entry fragments + --- + duration_ms: 0.38603 + type: 'test' + ... +# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark +ok 40 - A closed historical archive cannot conceal a failed source or refused bookmark + --- + duration_ms: 0.220183 + type: 'test' + ... +# Subtest: Sharing the selected source snapshot remains a visible reading action +ok 41 - Sharing the selected source snapshot remains a visible reading action + --- + duration_ms: 0.128864 + type: 'test' + ... +# Subtest: Atlas layout loads after current styles without replacing the shared brand +ok 42 - Atlas layout loads after current styles without replacing the shared brand + --- + duration_ms: 0.200992 + type: 'test' + ... +# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction +ok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction + --- + duration_ms: 1.636823 + type: 'test' + ... +# Subtest: an admitted isolated node has two explicit empty groups +ok 44 - an admitted isolated node has two explicit empty groups + --- + duration_ms: 0.301259 + type: 'test' + ... +# Subtest: missing and prototype names cannot acquire inferred connections +ok 45 - missing and prototype names cannot acquire inferred connections + --- + duration_ms: 0.161473 + type: 'test' + ... +# Subtest: late optional data patches the currently selected node rather than its request-time selection +ok 46 - late optional data patches the currently selected node rather than its request-time selection + --- + duration_ms: 2.224938 + type: 'test' + ... +# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort +ok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort + --- + duration_ms: 0.940169 + type: 'test' + ... +# Subtest: focused operational evidence is retained until focus leaves its section +ok 48 - focused operational evidence is retained until focus leaves its section + --- + duration_ms: 1.14169 + type: 'test' + ... +# Subtest: a refused or no-longer-known selection receives no late substituted resume +ok 49 - a refused or no-longer-known selection receives no late substituted resume + --- + duration_ms: 1.287585 + type: 'test' + ... +# Subtest: pagehide aborts the request and suppresses an uncooperative late response +ok 50 - pagehide aborts the request and suppresses an uncooperative late response + --- + duration_ms: 0.978705 + type: 'test' + ... +# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback +ok 51 - a persisted pageshow acquires current optional records once and preserves null fallback + --- + duration_ms: 1.098025 + type: 'test' + ... +# Subtest: missing cancellation platform does not prevent primary reading or late status coordination +ok 52 - missing cancellation platform does not prevent primary reading or late status coordination + --- + duration_ms: 1.621346 + type: 'test' + ... +# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence +ok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence + --- + duration_ms: 1.974042 + type: 'test' + ... +# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies +ok 54 - dependency focus retains only selected dependent and its recorded direct dependencies + --- + duration_ms: 0.539672 + type: 'test' + ... +# Subtest: empty/filtered selection and ceiling never invent source nodes +ok 55 - empty/filtered selection and ceiling never invent source nodes + --- + duration_ms: 1.763298 + type: 'test' + ... +# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap +ok 56 - actual wrapped label sizes stay inside the viewport and do not overlap + --- + duration_ms: 1.446074 + type: 'test' + ... +# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers +ok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers + --- + duration_ms: 0.366129 + type: 'test' + ... +# Subtest: labels leave a distinct unselected node clear for actual canvas picking +ok 58 - labels leave a distinct unselected node clear for actual canvas picking + --- + duration_ms: 1.504057 + type: 'test' + ... +# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged +ok 59 - camera-depth order and identifier ties are deterministic and inputs remain unchanged + --- + duration_ms: 1.156545 + type: 'test' + ... +# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles +ok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles + --- + duration_ms: 0.35816 + type: 'test' + ... +# Subtest: edge anchors retain an in-bounds readable label when space permits +ok 61 - edge anchors retain an in-bounds readable label when space permits + --- + duration_ms: 0.266096 + type: 'test' + ... +# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits +ok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits + --- + duration_ms: 3.760332 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 63 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.97242 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 64 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 2.324434 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 65 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.331289 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 66 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 4.173476 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 67 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.76525 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 68 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.689129 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 69 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 1.022697 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.778073 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 71 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.351177 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 72 - navigation and grids can reflow on small screens + --- + duration_ms: 1.027426 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 73 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.183553 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 74 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.152584 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 15.2058 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 10.857731 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 77 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 713.85327 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 78 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 131.365016 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 79 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 39.813986 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 80 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 38.791872 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 81 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 25.889299 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 82 - encoded punctuation stays inert search text + --- + duration_ms: 28.491822 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 83 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 29.179798 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 84 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 5.246549 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 85 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 25.32933 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 86 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 24.834073 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 26.114251 + type: 'test' + ... +# Subtest: verified category counts expose content and references directly without changing the source selection +ok 88 - verified category counts expose content and references directly without changing the source selection + --- + duration_ms: 21.097142 + type: 'test' + ... +# Subtest: changing categories resets both pagers and retains native selector focus +ok 89 - changing categories resets both pagers and retains native selector focus + --- + duration_ms: 9.576218 + type: 'test' + ... +# Subtest: All preserves ordered overlapping categories and complete edge multiplicity +ok 90 - All preserves ordered overlapping categories and complete edge multiplicity + --- + duration_ms: 13.842838 + type: 'test' + ... +# Subtest: an empty category reports zero results with both pagers hidden +ok 91 - an empty category reports zero results with both pagers hidden + --- + duration_ms: 6.404863 + type: 'test' + ... +# Subtest: selection changes clear category state and ignore an older in-flight comparison +ok 92 - selection changes clear category state and ignore an older in-flight comparison + --- + duration_ms: 8.784345 + type: 'test' + ... +# Subtest: payload refusal and malformed history discard category results and announcements +ok 93 - payload refusal and malformed history discard category results and announcements + --- + duration_ms: 9.384298 + type: 'test' + ... +# Subtest: Compare source panel demand loader exists +ok 94 - Compare source panel demand loader exists + --- + duration_ms: 0.902049 + type: 'test' + ... +# Subtest: An explicit current-source query requests even the empty source search +ok 95 - An explicit current-source query requests even the empty source search + --- + duration_ms: 1.316169 + type: 'test' + ... +# Subtest: Only a target in the actual source panel requests its verifier +ok 96 - Only a target in the actual source panel requests its verifier + --- + duration_ms: 0.786641 + type: 'test' + ... +# Subtest: Both pagers use distinct identities and ordinary, non-live count spans +ok 97 - Both pagers use distinct identities and ordinary, non-live count spans + --- + duration_ms: 10.027074 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 12.71683 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 99 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 3.878372 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 100 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 1.619426 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 101 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 2.839539 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 102 - acquisition: identical inventory duplicate + --- + duration_ms: 1.153625 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 103 - acquisition: conflicting inventory duplicate + --- + duration_ms: 1.160089 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 104 - acquisition: graph blob conflict + --- + duration_ms: 2.911347 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 105 - acquisition: graph bytes conflict + --- + duration_ms: 2.373827 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 106 - acquisition: graph missing exact inventory + --- + duration_ms: 1.911706 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 107 - acquisition: graph incorrect pin + --- + duration_ms: 1.950026 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 108 - acquisition: reference blob conflict + --- + duration_ms: 3.287596 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 109 - acquisition: reference bytes conflict + --- + duration_ms: 0.782545 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 110 - acquisition: reference missing exact inventory + --- + duration_ms: 0.785128 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 111 - acquisition: reference incorrect pin + --- + duration_ms: 0.721817 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 112 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.793497 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 113 - acquisition: graph reference overlap + --- + duration_ms: 0.904609 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 114 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.792905 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 115 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.650145 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 116 - acquisition: excerpt duplicate id + --- + duration_ms: 0.919393 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 117 - acquisition: excerpt duplicate span + --- + duration_ms: 3.234403 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 118 - acquisition: excerpt digest mismatch + --- + duration_ms: 2.901939 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 119 - acquisition: excerpt lone surrogate + --- + duration_ms: 3.100275 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 120 - acquisition: excerpt boolean line + --- + duration_ms: 1.163882 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 121 - acquisition: excerpt empty id + --- + duration_ms: 1.679241 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 122 - acquisition: excerpt invalid range + --- + duration_ms: 0.826049 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 123 - acquisition: excerpt unsafe path + --- + duration_ms: 0.494289 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 124 - acquisition: malformed references collection + --- + duration_ms: 0.609689 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 125 - acquisition: malformed equations collection + --- + duration_ms: 0.1806 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 126 - acquisition: malformed sources collection + --- + duration_ms: 0.659216 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 127 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.596808 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 128 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 5.531718 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 129 - acquisition: graph points at Main + --- + duration_ms: 2.529251 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 130 - acquisition: invalid inventory repository + --- + duration_ms: 0.655088 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 131 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 0.700385 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 132 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.785465 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 133 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 1.63769 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 134 - acquisition: unsafe encoded inventory path + --- + duration_ms: 0.719888 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 135 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.71884 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 136 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.605201 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 137 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.711241 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.675488 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 139 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 0.959049 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 140 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 1.716449 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 141 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.675761 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 142 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 3.130195 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 143 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 9.523794 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 144 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 1.843186 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 145 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 1.493594 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 1.312521 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 147 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.491113 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 148 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.281744 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 149 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 3.381515 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 150 - fallback HTTP refusal remains unavailable + --- + duration_ms: 1.560889 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 151 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.915344 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 152 - aborted acquisition makes no recovery request + --- + duration_ms: 0.913681 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 153 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.653616 + type: 'test' + ... +# Subtest: coherent canonical response needs one request and preserves the advertised observation +ok 154 - coherent canonical response needs one request and preserves the advertised observation + --- + duration_ms: 12.561741 + type: 'test' + ... +# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal +ok 155 - mixed publication recovers once at the page digest while retaining the same abort signal + --- + duration_ms: 1.947906 + type: 'test' + ... +# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation +ok 156 - persistent digest mismatch refuses after two requests and never admits the old observation + --- + duration_ms: 12.07634 + type: 'test' + ... +# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly +ok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly + --- + duration_ms: 4.82131 + type: 'test' + ... +# Subtest: HTTP refusal is not retried as an integrity mismatch +ok 158 - HTTP refusal is not retried as an integrity mismatch + --- + duration_ms: 0.635496 + type: 'test' + ... +# Subtest: network failure is not retried and does not replace source identity +ok 159 - network failure is not retried and does not replace source identity + --- + duration_ms: 0.410697 + type: 'test' + ... +# Subtest: invalid schema with a correct digest is refused without a recovery request +ok 160 - invalid schema with a correct digest is refused without a recovery request + --- + duration_ms: 5.035165 + type: 'test' + ... +# Subtest: fallback HTTP refusal remains unavailable +ok 161 - fallback HTTP refusal remains unavailable + --- + duration_ms: 1.195937 + type: 'test' + ... +# Subtest: absence of digest verification cannot trigger an unverified fallback +ok 162 - absence of digest verification cannot trigger an unverified fallback + --- + duration_ms: 0.870896 + type: 'test' + ... +# Subtest: aborted acquisition makes no recovery request +ok 163 - aborted acquisition makes no recovery request + --- + duration_ms: 0.892392 + type: 'test' + ... +# Subtest: invalid advertised identity is rejected before a request can construct an injected URL +ok 164 - invalid advertised identity is rejected before a request can construct an injected URL + --- + duration_ms: 0.624096 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 165 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 0.857281 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.338176 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.252793 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 168 - missing fields stay explicitly not recorded + --- + duration_ms: 0.546168 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 169 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.541601 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 170 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.184376 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 171 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.294217 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 172 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.1512 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 173 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 0.65428 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 174 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 166.266973 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 175 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 0.406721 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.407632 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 1.425794 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.64868 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.469945 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 180 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.367272 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 181 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.349825 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 182 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 0.907817 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 183 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.58184 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 184 - modified browse clicks retain native open-link behavior + --- + duration_ms: 0.491337 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 185 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.394752 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 186 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.267689 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 187 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.452912 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 188 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.297464 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 189 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.604497 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 190 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.380672 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 191 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.580457 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.358496 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 193 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 0.757736 + type: 'test' + ... +# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node +ok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node + --- + duration_ms: 8.938482 + type: 'test' + ... +# Subtest: acquisition: new observation keeps older classification source unchanged +ok 195 - acquisition: new observation keeps older classification source unchanged + --- + duration_ms: 0.967217 + type: 'test' + ... +# Subtest: acquisition: same path in other allowed repository stays metadata +ok 196 - acquisition: same path in other allowed repository stays metadata + --- + duration_ms: 0.713344 + type: 'test' + ... +# Subtest: acquisition: whole-file reference and excerpt identities remain separate +ok 197 - acquisition: whole-file reference and excerpt identities remain separate + --- + duration_ms: 1.074401 + type: 'test' + ... +# Subtest: acquisition: identical inventory duplicate +ok 198 - acquisition: identical inventory duplicate + --- + duration_ms: 0.683584 + type: 'test' + ... +# Subtest: acquisition: conflicting inventory duplicate +ok 199 - acquisition: conflicting inventory duplicate + --- + duration_ms: 0.593913 + type: 'test' + ... +# Subtest: acquisition: graph blob conflict +ok 200 - acquisition: graph blob conflict + --- + duration_ms: 0.616385 + type: 'test' + ... +# Subtest: acquisition: graph bytes conflict +ok 201 - acquisition: graph bytes conflict + --- + duration_ms: 0.54176 + type: 'test' + ... +# Subtest: acquisition: graph missing exact inventory +ok 202 - acquisition: graph missing exact inventory + --- + duration_ms: 0.726393 + type: 'test' + ... +# Subtest: acquisition: graph incorrect pin +ok 203 - acquisition: graph incorrect pin + --- + duration_ms: 0.628425 + type: 'test' + ... +# Subtest: acquisition: reference blob conflict +ok 204 - acquisition: reference blob conflict + --- + duration_ms: 0.637424 + type: 'test' + ... +# Subtest: acquisition: reference bytes conflict +ok 205 - acquisition: reference bytes conflict + --- + duration_ms: 0.559712 + type: 'test' + ... +# Subtest: acquisition: reference missing exact inventory +ok 206 - acquisition: reference missing exact inventory + --- + duration_ms: 0.630209 + type: 'test' + ... +# Subtest: acquisition: reference incorrect pin +ok 207 - acquisition: reference incorrect pin + --- + duration_ms: 0.52088 + type: 'test' + ... +# Subtest: acquisition: duplicate reference acquisition +ok 208 - acquisition: duplicate reference acquisition + --- + duration_ms: 0.664321 + type: 'test' + ... +# Subtest: acquisition: graph reference overlap +ok 209 - acquisition: graph reference overlap + --- + duration_ms: 0.617097 + type: 'test' + ... +# Subtest: acquisition: excerpt missing exact row despite same path in Math +ok 210 - acquisition: excerpt missing exact row despite same path in Math + --- + duration_ms: 0.54424 + type: 'test' + ... +# Subtest: acquisition: excerpt incorrect pin +ok 211 - acquisition: excerpt incorrect pin + --- + duration_ms: 0.544897 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate id +ok 212 - acquisition: excerpt duplicate id + --- + duration_ms: 0.713401 + type: 'test' + ... +# Subtest: acquisition: excerpt duplicate span +ok 213 - acquisition: excerpt duplicate span + --- + duration_ms: 0.650705 + type: 'test' + ... +# Subtest: acquisition: excerpt digest mismatch +ok 214 - acquisition: excerpt digest mismatch + --- + duration_ms: 0.669064 + type: 'test' + ... +# Subtest: acquisition: excerpt lone surrogate +ok 215 - acquisition: excerpt lone surrogate + --- + duration_ms: 0.603025 + type: 'test' + ... +# Subtest: acquisition: excerpt boolean line +ok 216 - acquisition: excerpt boolean line + --- + duration_ms: 0.573345 + type: 'test' + ... +# Subtest: acquisition: excerpt empty id +ok 217 - acquisition: excerpt empty id + --- + duration_ms: 0.587568 + type: 'test' + ... +# Subtest: acquisition: excerpt invalid range +ok 218 - acquisition: excerpt invalid range + --- + duration_ms: 0.795353 + type: 'test' + ... +# Subtest: acquisition: excerpt unsafe path +ok 219 - acquisition: excerpt unsafe path + --- + duration_ms: 0.686697 + type: 'test' + ... +# Subtest: acquisition: malformed references collection +ok 220 - acquisition: malformed references collection + --- + duration_ms: 0.696529 + type: 'test' + ... +# Subtest: acquisition: malformed equations collection +ok 221 - acquisition: malformed equations collection + --- + duration_ms: 0.245696 + type: 'test' + ... +# Subtest: acquisition: malformed sources collection +ok 222 - acquisition: malformed sources collection + --- + duration_ms: 3.339715 + type: 'test' + ... +# Subtest: acquisition: invalid boolean inventory bytes +ok 223 - acquisition: invalid boolean inventory bytes + --- + duration_ms: 0.714473 + type: 'test' + ... +# Subtest: acquisition: inventory bytes exceed admitted bound +ok 224 - acquisition: inventory bytes exceed admitted bound + --- + duration_ms: 0.720105 + type: 'test' + ... +# Subtest: acquisition: graph points at Main +ok 225 - acquisition: graph points at Main + --- + duration_ms: 0.658153 + type: 'test' + ... +# Subtest: acquisition: invalid inventory repository +ok 226 - acquisition: invalid inventory repository + --- + duration_ms: 2.070914 + type: 'test' + ... +# Subtest: acquisition: independent errors sorted deduplicated +ok 227 - acquisition: independent errors sorted deduplicated + --- + duration_ms: 0.653497 + type: 'test' + ... +# Subtest: acquisition: non-string inventory repository is unavailable not an exception +ok 228 - acquisition: non-string inventory repository is unavailable not an exception + --- + duration_ms: 0.705872 + type: 'test' + ... +# Subtest: acquisition: non-string reference repository is unavailable not an exception +ok 229 - acquisition: non-string reference repository is unavailable not an exception + --- + duration_ms: 0.564481 + type: 'test' + ... +# Subtest: acquisition: unsafe encoded inventory path +ok 230 - acquisition: unsafe encoded inventory path + --- + duration_ms: 0.568673 + type: 'test' + ... +# Subtest: acquisition: lone surrogate inventory path +ok 231 - acquisition: lone surrogate inventory path + --- + duration_ms: 0.572744 + type: 'test' + ... +# Subtest: acquisition: excerpt line exceeds JS safe integer +ok 232 - acquisition: excerpt line exceeds JS safe integer + --- + duration_ms: 0.529393 + type: 'test' + ... +# Subtest: acquisition: overlapping distinct spans are preserved +ok 233 - acquisition: overlapping distinct spans are preserved + --- + duration_ms: 0.556953 + type: 'test' + ... +# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics +ok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics + --- + duration_ms: 0.531472 + type: 'test' + ... +# Subtest: acquisition: well-formed Unicode path boundary counts codepoints +ok 235 - acquisition: well-formed Unicode path boundary counts codepoints + --- + duration_ms: 1.044377 + type: 'test' + ... +# Subtest: acquisition: huge JSON byte number is unavailable not an exception +ok 236 - acquisition: huge JSON byte number is unavailable not an exception + --- + duration_ms: 0.545585 + type: 'test' + ... +# Subtest: acquisition: graph identity array has malformed input disposition +ok 237 - acquisition: graph identity array has malformed input disposition + --- + duration_ms: 0.558449 + type: 'test' + ... +# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly +ok 238 - current row keeps excerpt identities separate and renders hostile source text inertly + --- + duration_ms: 2.458274 + type: 'test' + ... +# Subtest: current snapshot rejects invalid identities and preserves literal source values +ok 239 - current snapshot rejects invalid identities and preserves literal source values + --- + duration_ms: 0.793209 + type: 'test' + ... +# Subtest: freshness separates future, stale and current observations +ok 240 - freshness separates future, stale and current observations + --- + duration_ms: 0.092744 + type: 'test' + ... +# Subtest: source links bind safe paths to pinned commits and reject executable targets +ok 241 - source links bind safe paths to pinned commits and reject executable targets + --- + duration_ms: 0.18236 + type: 'test' + ... +# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling +ok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling + --- + duration_ms: 0.515937 + type: 'test' + ... +# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval +ok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval + --- + duration_ms: 0.209736 + type: 'test' + ... +# Subtest: search and independent URL state preserve exact identifiers and reject unknown node +ok 244 - search and independent URL state preserve exact identifiers and reject unknown node + --- + duration_ms: 0.401512 + type: 'test' + ... +# Subtest: hash mismatch and malformed payload refuse current rendering +ok 245 - hash mismatch and malformed payload refuse current rendering + --- + duration_ms: 2.9617 + type: 'test' + ... +# Subtest: global graph search finds unloaded nodes and bounds large catalogs +ok 246 - global graph search finds unloaded nodes and bounds large catalogs + --- + duration_ms: 1.913802 + type: 'test' + ... +# Subtest: equation and graph share bookmarks refuse changed main source instead of substituting +ok 247 - equation and graph share bookmarks refuse changed main source instead of substituting + --- + duration_ms: 0.246808 + type: 'test' + ... +# Subtest: graph search filter survives source-bound URL state +ok 248 - graph search filter survives source-bound URL state + --- + duration_ms: 0.162288 + type: 'test' + ... +# Subtest: prototype property names cannot become fabricated graph nodes +ok 249 - prototype property names cannot become fabricated graph nodes + --- + duration_ms: 0.598673 + type: 'test' + ... +# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root +ok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root + --- + duration_ms: 15.660456 + type: 'test' + ... +# Subtest: current required routes return one shortest route per unresolved research target +ok 251 - current required routes return one shortest route per unresolved research target + --- + duration_ms: 0.637641 + type: 'test' + ... +# Subtest: context-only unresolved targets affect all-edge reach but earn no required route +ok 252 - context-only unresolved targets affect all-edge reach but earn no required route + --- + duration_ms: 0.26188 + type: 'test' + ... +# Subtest: context shortcuts do not erase longer required routes and parallel edges count once +ok 253 - context shortcuts do not erase longer required routes and parallel edges count once + --- + duration_ms: 0.256032 + type: 'test' + ... +# Subtest: unresolved target kinds and classifications match the existing source vocabulary +ok 254 - unresolved target kinds and classifications match the existing source vocabulary + --- + duration_ms: 0.396465 + type: 'test' + ... +# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions +ok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions + --- + duration_ms: 5.201941 + type: 'test' + ... +# Subtest: full reach and required routes do not depend on filtered or capped viewport +ok 256 - full reach and required routes do not depend on filtered or capped viewport + --- + duration_ms: 0.916345 + type: 'test' + ... +# Subtest: bounded graph windows expose complete match and frontier counts with paging +ok 257 - bounded graph windows expose complete match and frontier counts with paging + --- + duration_ms: 5.07971 + type: 'test' + ... +# Subtest: graph filters apply to complete matches without altering raw node labels or edges +ok 258 - graph filters apply to complete matches without altering raw node labels or edges + --- + duration_ms: 0.420208 + type: 'test' + ... +# Subtest: equation text filtering retains inert literal content and bounded complete counts +ok 259 - equation text filtering retains inert literal content and bounded complete counts + --- + duration_ms: 1.50837 + type: 'test' + ... +# Subtest: atlas offset equation search and exact metadata filters survive URL state +ok 260 - atlas offset equation search and exact metadata filters survive URL state + --- + duration_ms: 0.4422 + type: 'test' + ... +# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage +ok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage + --- + duration_ms: 17.161594 + type: 'test' + ... +# Subtest: claim summary puts exact scope and pinned source before continuation metadata +ok 262 - claim summary puts exact scope and pinned source before continuation metadata + --- + duration_ms: 6.503455 + type: 'test' + ... +# Subtest: controller owns an explicit formal gap even without the spatial rendering platform +ok 263 - controller owns an explicit formal gap even without the spatial rendering platform + --- + duration_ms: 5.155237 + type: 'test' + ... +# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection +ok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection + --- + duration_ms: 8.304969 + type: 'test' + ... +# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses +ok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses + --- + duration_ms: 13.899142 + type: 'test' + ... +# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence +ok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence + --- + duration_ms: 35.279461 + type: 'test' + ... +# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints +ok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints + --- + duration_ms: 17.870883 + type: 'test' + ... +# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back +ok 268 - atlas filter bookmarks persist through search, node selection, reload and Back + --- + duration_ms: 11.96126 + type: 'test' + ... +# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters +ok 269 - atlas refuses mismatched source bookmarks before applying metadata filters + --- + duration_ms: 2.807595 + type: 'test' + ... +# Subtest: node identifiers and recorded source paths require own literal string fields +ok 270 - node identifiers and recorded source paths require own literal string fields + --- + duration_ms: 0.246745 + type: 'test' + ... +# Subtest: static reading links retain one advertised material archive among source links +ok 271 - static reading links retain one advertised material archive among source links + --- + duration_ms: 0.580312 + type: 'test' + ... +# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses +ok 272 - static reading links refuse missing ambiguous and unsafe archive addresses + --- + duration_ms: 0.459673 + type: 'test' + ... +# Subtest: refused source identity survives view changes Share reload and history +ok 273 - refused source identity survives view changes Share reload and history + --- + duration_ms: 48.986938 + type: 'test' + ... +# Subtest: initial Share and every non-adopting control preserve a refused identity +ok 274 - initial Share and every non-adopting control preserve a refused identity + --- + duration_ms: 3.805636 + type: 'test' + ... +# Subtest: explicit current diagnostic selection alone may adopt current source pins +ok 275 - explicit current diagnostic selection alone may adopt current source pins + --- + duration_ms: 4.966293 + type: 'test' + ... +# Subtest: resume projection labels exact snapshot identity and separates review records from operational state +ok 276 - resume projection labels exact snapshot identity and separates review records from operational state + --- + duration_ms: 2.314491 + type: 'test' + ... +# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link +ok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link + --- + duration_ms: 0.55448 + type: 'test' + ... +# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop +ok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop + --- + duration_ms: 0.287849 + type: 'test' + ... +# Subtest: missing fields stay explicitly not recorded +ok 279 - missing fields stay explicitly not recorded + --- + duration_ms: 0.55032 + type: 'test' + ... +# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning +ok 280 - stale or disagreeing clocks change only the freshness state and keep every warning + --- + duration_ms: 0.796625 + type: 'test' + ... +# Subtest: shared source hashes do not transfer review fields or the explicit task pointer +ok 281 - shared source hashes do not transfer review fields or the explicit task pointer + --- + duration_ms: 0.228 + type: 'test' + ... +# Subtest: only exact public review URLs link; issue numbers and other strings stay inert +ok 282 - only exact public review URLs link; issue numbers and other strings stay inert + --- + duration_ms: 0.513848 + type: 'test' + ... +# Subtest: unknown and prototype identifiers have no resume projection +ok 283 - unknown and prototype identifiers have no resume projection + --- + duration_ms: 0.213536 + type: 'test' + ... +# Subtest: explicit task records are frozen operational pointers to public records +ok 284 - explicit task records are frozen operational pointers to public records + --- + duration_ms: 1.099097 + type: 'test' + ... +# Subtest: static node pages render the identical projection for every real node and the fixtures +ok 285 - static node pages render the identical projection for every real node and the fixtures + --- + duration_ms: 189.39522 + type: 'test' + ... +# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives +ok 286 - narrow startup and history fallback use List while an explicit Graph choice survives + --- + duration_ms: 1.232794 + type: 'test' + ... +# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences +ok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences + --- + duration_ms: 0.424201 + type: 'test' + ... +# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write +ok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write + --- + duration_ms: 2.065226 + type: 'test' + ... +# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL +ok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL + --- + duration_ms: 0.613576 + type: 'test' + ... +# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop +ok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop + --- + duration_ms: 0.519713 + type: 'test' + ... +# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected +ok 291 - node selection reveals Evidence before focus even when Diagnostics was selected + --- + duration_ms: 0.383232 + type: 'test' + ... +# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address +ok 292 - restoring absent or unknown panel values returns to browse without rewriting the address + --- + duration_ms: 0.438168 + type: 'test' + ... +# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches +ok 293 - layout URLs preserve all scientific pins, historical filters and independent searches + --- + duration_ms: 1.567298 + type: 'test' + ... +# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point +ok 294 - unmodified direct browse activation exits reading and focuses the browse entry point + --- + duration_ms: 0.769361 + type: 'test' + ... +# Subtest: modified browse clicks retain native open-link behavior +ok 295 - modified browse clicks retain native open-link behavior + --- + duration_ms: 1.081097 + type: 'test' + ... +# Subtest: reader Back and Forward use ordinary browser history without creating entries +ok 296 - reader Back and Forward use ordinary browser history without creating entries + --- + duration_ms: 0.409792 + type: 'test' + ... +# Subtest: restoring history moves focus out of the now hidden reading or browse region +ok 297 - restoring history moves focus out of the now hidden reading or browse region + --- + duration_ms: 0.311849 + type: 'test' + ... +# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden +ok 298 - changing viewport repairs focus only when the currently focused browse content is hidden + --- + duration_ms: 0.360568 + type: 'test' + ... +# Subtest: the browse reading button enters Evidence and reset removes only presentation state +ok 299 - the browse reading button enters Evidence and reset removes only presentation state + --- + duration_ms: 0.200688 + type: 'test' + ... +# Subtest: widening the viewport moves focus off mobile-only reader and browse controls +ok 300 - widening the viewport moves focus off mobile-only reader and browse controls + --- + duration_ms: 0.494017 + type: 'test' + ... +# Subtest: resize repairs focus after the renderer removes a focused source or graph child +ok 301 - resize repairs focus after the renderer removes a focused source or graph child + --- + duration_ms: 0.313824 + type: 'test' + ... +# Subtest: resize recovers a mobile control blurred by CSS before the media change event +ok 302 - resize recovers a mobile control blurred by CSS before the media change event + --- + duration_ms: 0.520977 + type: 'test' + ... +# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus +ok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus + --- + duration_ms: 0.318872 + type: 'test' + ... +# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history +ok 304 - native modified and auxiliary Browse use the current independent source filter without writing history + --- + duration_ms: 1.281993 + type: 'test' + ... +# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning +ok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning + --- + duration_ms: 4.983677 + type: 'test' + ... +# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer +ok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer + --- + duration_ms: 7.130311 + type: 'test' + ... +# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure +ok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure + --- + duration_ms: 4.431805 + type: 'test' + ... +# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused +ok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused + --- + duration_ms: 0.640481 + type: 'test' + ... +# Subtest: citation keeps only the canonical figure permalink and pinned teaching source +ok 309 - citation keeps only the canonical figure permalink and pinned teaching source + --- + duration_ms: 0.464504 + type: 'test' + ... +# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer +ok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer + --- + duration_ms: 1.486722 + type: 'test' + ... +# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes +ok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes + --- + duration_ms: 2.654203 + type: 'test' + ... +# Subtest: light theme colors are exported from the captured record +ok 312 - light theme colors are exported from the captured record + --- + duration_ms: 0.797776 + type: 'test' + ... +# Subtest: inherited native system font stacks remain self-contained without remote font syntax +ok 313 - inherited native system font stacks remain self-contained without remote font syntax + --- + duration_ms: 1.113561 + type: 'test' + ... +# Subtest: all diagram text and attribute values are XML escaped +ok 314 - all diagram text and attribute values are XML escaped + --- + duration_ms: 1.220881 + type: 'test' + ... +# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind +ok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind + --- + duration_ms: 2.747995 + type: 'test' + ... +# Subtest: blank, stale or unsupported diagram content is refused instead of exported +ok 316 - blank, stale or unsupported diagram content is refused instead of exported + --- + duration_ms: 2.917835 + type: 'test' + ... +# Subtest: clipboard absence exposes manual citation and never permits copy +ok 317 - clipboard absence exposes manual citation and never permits copy + --- + duration_ms: 0.417881 + type: 'test' + ... +# Subtest: clipboard denial preserves the current manual text and reports failure +ok 318 - clipboard denial preserves the current manual text and reports failure + --- + duration_ms: 0.27876 + type: 'test' + ... +# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied +ok 319 - pending clipboard writes are serialized and cannot report stale settings as copied + --- + duration_ms: 0.398784 + type: 'test' + ... +# Subtest: capture refusal clears the current citation text and blocks a later copy +ok 320 - capture refusal clears the current citation text and blocks a later copy + --- + duration_ms: 0.271745 + type: 'test' + ... +# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback +ok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback + --- + duration_ms: 0.482384 + type: 'test' + ... +# Subtest: a successful current write reports success, while unavailable figures block later writes +ok 322 - a successful current write reports success, while unavailable figures block later writes + --- + duration_ms: 0.246744 + type: 'test' + ... +# Subtest: evidence shows recorded links without promoting missing review or formal evidence +ok 323 - evidence shows recorded links without promoting missing review or formal evidence + --- + duration_ms: 2.696603 + type: 'test' + ... +# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification +ok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification + --- + duration_ms: 0.565768 + type: 'test' + ... +# Subtest: all-records and exact classification filters intersect text without relabeling nodes +ok 325 - all-records and exact classification filters intersect text without relabeling nodes + --- + duration_ms: 24.37089 + type: 'test' + ... +# Subtest: saved filters restore exact state and visibly reject unknown classifications +ok 326 - saved filters restore exact state and visibly reject unknown classifications + --- + duration_ms: 1.758954 + type: 'test' + ... +# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references +ok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references + --- + duration_ms: 3.355587 + type: 'test' + ... +# Subtest: absent context is visibly not recorded and is never inferred from dependencies +ok 328 - absent context is visibly not recorded and is never inferred from dependencies + --- + duration_ms: 2.142283 + type: 'test' + ... +# Subtest: unresolved and unsafe context references stay literal without executable destinations +ok 329 - unresolved and unsafe context references stay literal without executable destinations + --- + duration_ms: 1.74457 + type: 'test' + ... +# Subtest: malformed context preserves complete recorded values instead of inventing references +ok 330 - malformed context preserves complete recorded values instead of inventing references + --- + duration_ms: 2.286754 + type: 'test' + ... +# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search +ok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search + --- + duration_ms: 2.943739 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay +ok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay + --- + duration_ms: 47.779522 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay +ok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay + --- + duration_ms: 171.166578 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay +ok 334 - dependency startup preserves complete source metadata and \#object-evidence after 0 ms digest delay + --- + duration_ms: 18.009387 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay +ok 335 - dependency startup preserves complete source metadata and \#object-evidence after 150 ms digest delay + --- + duration_ms: 167.894286 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay +ok 336 - dependency startup preserves complete source metadata and \#object-audit after 0 ms digest delay + --- + duration_ms: 24.778938 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay +ok 337 - dependency startup preserves complete source metadata and \#object-audit after 150 ms digest delay + --- + duration_ms: 165.985956 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay +ok 338 - dependency startup preserves complete source metadata and \#object-reading-context after 0 ms digest delay + --- + duration_ms: 16.635258 + type: 'test' + ... +# Subtest: dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay +ok 339 - dependency startup preserves complete source metadata and \#object-reading-context after 150 ms digest delay + --- + duration_ms: 165.603748 + type: 'test' + ... +# Subtest: the pinned graph is complete and structurally valid +ok 340 - the pinned graph is complete and structurally valid + --- + duration_ms: 1.022785 + type: 'test' + ... +# Subtest: unresolved targets include open leaves with no recorded dependents +ok 341 - unresolved targets include open leaves with no recorded dependents + --- + duration_ms: 1.39785 + type: 'test' + ... +# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves +ok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves + --- + duration_ms: 1.283465 + type: 'test' + ... +# Subtest: downstream counts keep all-edge reach separate from required-only reach +ok 343 - downstream counts keep all-edge reach separate from required-only reach + --- + duration_ms: 0.781417 + type: 'test' + ... +# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts +ok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts + --- + duration_ms: 1.693113 + type: 'test' + ... +# Subtest: reach labels state their edge scope and do not describe reach as blocking +ok 345 - reach labels state their edge scope and do not describe reach as blocking + --- + duration_ms: 1.123033 + type: 'test' + ... +# Subtest: search covers ids, notes, source paths, classifications and edge relations +ok 346 - search covers ids, notes, source paths, classifications and edge relations + --- + duration_ms: 1.88801 + type: 'test' + ... +# Subtest: the app verifies graph bytes against a compiled source identity before parsing +ok 347 - the app verifies graph bytes against a compiled source identity before parsing + --- + duration_ms: 6.216494 + type: 'test' + ... +# Subtest: classification styling and metadata preserve source review lineage +ok 348 - classification styling and metadata preserve source review lineage + --- + duration_ms: 1.842842 + type: 'test' + ... +# Subtest: classification CSS identifiers use locale-neutral ASCII case folding +ok 349 - classification CSS identifiers use locale-neutral ASCII case folding + --- + duration_ms: 1.865722 + type: 'test' + ... +# Subtest: dependency paths use required source edges and retain relation metadata +ok 350 - dependency paths use required source edges and retain relation metadata + --- + duration_ms: 2.445667 + type: 'test' + ... +# Subtest: saved node links fail visibly instead of selecting an unrelated node +ok 351 - saved node links fail visibly instead of selecting an unrelated node + --- + duration_ms: 1.532601 + type: 'test' + ... +# Subtest: provenance pins the exact Math source bytes and labels the snapshot boundary +ok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary + --- + duration_ms: 3.20542 + type: 'test' + ... +# Subtest: the viewer page exposes its source boundary and accessible interaction contract +ok 353 - the viewer page exposes its source boundary and accessible interaction contract + --- + duration_ms: 2.590571 + type: 'test' + ... +# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail +ok 354 - the evidence table keeps automatic layout and breaks words only in Source detail + --- + duration_ms: 2.898851 + type: 'test' + ... +# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure +ok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure + --- + duration_ms: 3.491675 + type: 'test' + ... +# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists +ok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists + --- + duration_ms: 2.804907 + type: 'test' + ... +# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified +ok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified + --- + duration_ms: 3.147436 + type: 'test' + ... +# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph +ok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph + --- + duration_ms: 1.706025 + type: 'test' + ... +# Subtest: the unresolved-target sentence names exactly the viewer list rule +ok 359 - the unresolved-target sentence names exactly the viewer list rule + --- + duration_ms: 1.341994 + type: 'test' + ... +# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read +ok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read + --- + duration_ms: 8.2492 + type: 'test' + ... +# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries +ok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries + --- + duration_ms: 1.663466 + type: 'test' + ... +# Subtest: cone weight is determinant squared only on the negative-definite side +ok 362 - cone weight is determinant squared only on the negative-definite side + --- + duration_ms: 0.984953 + type: 'test' + ... +# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two +ok 363 - halving pin distance divides cubic gap by eight and annulus radii by two + --- + duration_ms: 0.542753 + type: 'test' + ... +# Subtest: remote membership uses fixed distance and an open height window +ok 364 - remote membership uses fixed distance and an open height window + --- + duration_ms: 0.353648 + type: 'test' + ... +# Subtest: all eight three-object subsets receive the correct capacity-one partition +ok 365 - all eight three-object subsets receive the correct capacity-one partition + --- + duration_ms: 0.499761 + type: 'test' + ... +# Subtest: models reject invalid or unrepresentable teaching parameters +ok 366 - models reject invalid or unrepresentable teaching parameters + --- + duration_ms: 0.835873 + type: 'test' + ... +# Subtest: shared parameters restore all three experiments, including empty selection +ok 367 - shared parameters restore all three experiments, including empty selection + --- + duration_ms: 1.313393 + type: 'test' + ... +# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion +ok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion + --- + duration_ms: 0.3954 + type: 'test' + ... +# Subtest: invalid choices cannot invent regions or objects +ok 369 - invalid choices cannot invent regions or objects + --- + duration_ms: 0.616872 + type: 'test' + ... +# Subtest: sharing serializes current controls and preserves section and unrelated query fields +ok 370 - sharing serializes current controls and preserves section and unrelated query fields + --- + duration_ms: 1.031817 + type: 'test' + ... +# Subtest: curvature presets draw and commit the selected controls with matching share and export state +ok 371 - curvature presets draw and commit the selected controls with matching share and export state + --- + duration_ms: 1.701393 + type: 'test' + ... +# Subtest: unknown curvature presets leave controls and current figure untouched +ok 372 - unknown curvature presets leave controls and current figure untouched + --- + duration_ms: 0.18036 + type: 'test' + ... +# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks +ok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks + --- + duration_ms: 4.040548 + type: 'test' + ... +# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes +ok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes + --- + duration_ms: 2.128083 + type: 'test' + ... +# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata +ok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata + --- + duration_ms: 2.379354 + type: 'test' + ... +# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions +ok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions + --- + duration_ms: 1.635418 + type: 'test' + ... +# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture +ok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture + --- + duration_ms: 1.012089 + type: 'test' + ... +# Subtest: controller coalesces repeated activation while a preparation is pending +ok 378 - controller coalesces repeated activation while a preparation is pending + --- + duration_ms: 0.475432 + type: 'test' + ... +# Subtest: changed or tampered final SVG, metadata or citation refuses download +ok 379 - changed or tampered final SVG, metadata or citation refuses download + --- + duration_ms: 1.129201 + type: 'test' + ... +# Subtest: control revision cancels work even after a change away and back +ok 380 - control revision cancels work even after a change away and back + --- + duration_ms: 0.557152 + type: 'test' + ... +# Subtest: late failure from an invalidated operation cannot erase newer successful state +ok 381 - late failure from an invalidated operation cannot erase newer successful state + --- + duration_ms: 0.865713 + type: 'test' + ... +# Subtest: capture, preparation, null result and download errors stay explicit and allow retry +ok 382 - capture, preparation, null result and download errors stay explicit and allow retry + --- + duration_ms: 2.322923 + type: 'test' + ... +# Subtest: unready controller cannot prepare or download a figure +ok 383 - unready controller cannot prepare or download a figure + --- + duration_ms: 0.354864 + type: 'test' + ... +# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid +ok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid + --- + duration_ms: 0.482209 + type: 'test' + ... +# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage +ok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage + --- + duration_ms: 0.721905 + type: 'test' + ... +# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources +ok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources + --- + duration_ms: 1.969226 + type: 'test' + ... +# Subtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks +ok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks + --- + duration_ms: 7.808184 + type: 'test' + ... +# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives +ok 388 - existing and unknown collection bookmarks retain Files while explicit text survives + --- + duration_ms: 1.945259 + type: 'test' + ... +# Subtest: collection links preserve literal query and independent state without changing the target +ok 389 - collection links preserve literal query and independent state without changing the target + --- + duration_ms: 0.623673 + type: 'test' + ... +# Subtest: an excerpt link retains exact source commit, literal filename and complete line range +ok 390 - an excerpt link retains exact source commit, literal filename and complete line range + --- + duration_ms: 0.414016 + type: 'test' + ... +# Subtest: invalid or missing excerpt ranges cannot become invented source line identities +ok 391 - invalid or missing excerpt ranges cannot become invented source line identities + --- + duration_ms: 0.290496 + type: 'test' + ... +# Subtest: search links preserve literal text and unrelated page state +ok 392 - search links preserve literal text and unrelated page state + --- + duration_ms: 1.160513 + type: 'test' + ... +# Subtest: empty queries remove only the current-source parameter +ok 393 - empty queries remove only the current-source parameter + --- + duration_ms: 0.351728 + type: 'test' + ... +# Subtest: no initialization on another page or before snapshot admission +ok 394 - no initialization on another page or before snapshot admission + --- + duration_ms: 0.281376 + type: 'test' + ... +# Subtest: aggregate count uses area, all realizations, and bin width exactly once +ok 395 - aggregate count uses area, all realizations, and bin width exactly once + --- + duration_ms: 3.146203 + type: 'test' + ... +# Subtest: twice the count gives twice the mass and density +ok 396 - twice the count gives twice the mass and density + --- + duration_ms: 0.477953 + type: 'test' + ... +# Subtest: adding zero-count realizations still increases the denominator +ok 397 - adding zero-count realizations still increases the denominator + --- + duration_ms: 0.263896 + type: 'test' + ... +# Subtest: a wider synthetic bin preserves mass and divides density by its width +ok 398 - a wider synthetic bin preserves mass and divides density by its width + --- + duration_ms: 0.42092 + type: 'test' + ... +# Subtest: zero counts produce valid zero estimates without a fabricated positive floor +ok 399 - zero counts produce valid zero estimates without a fabricated positive floor + --- + duration_ms: 0.346704 + type: 'test' + ... +# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers +ok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers + --- + duration_ms: 0.901537 + type: 'test' + ... +# Subtest: only positive ordered finite bin edges are accepted +ok 401 - only positive ordered finite bin edges are accepted + --- + duration_ms: 0.595041 + type: 'test' + ... +# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density +ok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density + --- + duration_ms: 0.472248 + type: 'test' + ... +# Subtest: input parsing rejects blanks instead of turning them into zero counts +ok 403 - input parsing rejects blanks instead of turning them into zero counts + --- + duration_ms: 1.665578 + type: 'test' + ... +# Subtest: decimal input, including scientific notation, reaches the same normalization +ok 404 - decimal input, including scientific notation, reaches the same normalization + --- + duration_ms: 1.421218 + type: 'test' + ... +# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero +ok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero + --- + duration_ms: 1.383561 + type: 'test' + ... +# Subtest: six complete inputs feed exactly one conditional conclusion +ok 406 - six complete inputs feed exactly one conditional conclusion + --- + duration_ms: 11.1067 + type: 'test' + ... +# Subtest: the normalization and fixed lower comparison are retained +ok 407 - the normalization and fixed lower comparison are retained + --- + duration_ms: 1.348074 + type: 'test' + ... +# Subtest: measurability and almost-everywhere quantifiers are retained +ok 408 - measurability and almost-everywhere quantifiers are retained + --- + duration_ms: 1.181321 + type: 'test' + ... +# Subtest: positive and zero cases and the density non-implication remain explicit +ok 409 - positive and zero cases and the density non-implication remain explicit + --- + duration_ms: 1.42857 + type: 'test' + ... +# Subtest: changed source bytes are refused before projection +ok 410 - changed source bytes are refused before projection + --- + duration_ms: 2.526794 + type: 'test' + ... +# Subtest: integer and mutable commit identities are refused +ok 411 - integer and mutable commit identities are refused + --- + duration_ms: 0.391793 + type: 'test' + ... +# Subtest: a numeric hash cannot be coerced into a string +ok 412 - a numeric hash cannot be coerced into a string + --- + duration_ms: 0.382248 + type: 'test' + ... +# Subtest: private repository and changed proof paths are refused +ok 413 - private repository and changed proof paths are refused + --- + duration_ms: 0.465825 + type: 'test' + ... +# Subtest: redirected URL and changed blob or size are refused +ok 414 - redirected URL and changed blob or size are refused + --- + duration_ms: 0.979521 + type: 'test' + ... +# Subtest: deleting H3 cannot silently weaken the route +ok 415 - deleting H3 cannot silently weaken the route + --- + duration_ms: 3.235563 + type: 'test' + ... +# Subtest: ALL cannot become ANY +ok 416 - ALL cannot become ANY + --- + duration_ms: 1.331626 + type: 'test' + ... +# Subtest: self dependency or unknown nodes are refused +ok 417 - self dependency or unknown nodes are refused + --- + duration_ms: 1.87793 + type: 'test' + ... +# Subtest: invented acceptance and independence fields are refused +ok 418 - invented acceptance and independence fields are refused + --- + duration_ms: 5.066317 + type: 'test' + ... +# Subtest: rendering exposes hypotheses, exact identity, and application boundary +ok 419 - rendering exposes hypotheses, exact identity, and application boundary + --- + duration_ms: 1.467874 + type: 'test' + ... +# Subtest: a failed load clears any earlier ready view and says so in the status line +ok 420 - a failed load clears any earlier ready view and says so in the status line + --- + duration_ms: 0.543808 + type: 'test' + ... +# Subtest: a page without the status line still shows the refusal in the host, without a role +ok 421 - a page without the status line still shows the refusal in the host, without a role + --- + duration_ms: 0.428753 + type: 'test' + ... +# Subtest: the source fixture is complete and immutable +ok 422 - the source fixture is complete and immutable + --- + duration_ms: 2.47941 + type: 'test' + ... +# Subtest: museum HTML has the route host, navigation and module without replacing existing cards +ok 423 - museum HTML has the route host, navigation and module without replacing existing cards + --- + duration_ms: 1.360897 + type: 'test' + ... +# Subtest: CLI projects the exact source and produces deterministic JSON +ok 424 - CLI projects the exact source and produces deterministic JSON + --- + duration_ms: 72.804268 + type: 'test' + ... +# Subtest: CLI rejects altered manifest bytes +ok 425 - CLI rejects altered manifest bytes + --- + duration_ms: 37.155687 + type: 'test' + ... +# Subtest: CLI refuses missing or repeated conditional claim +ok 426 - CLI refuses missing or repeated conditional claim + --- + duration_ms: 102.755938 + type: 'test' + ... +# Subtest: CLI rejects weakened projection in check mode +ok 427 - CLI rejects weakened projection in check mode + --- + duration_ms: 133.52309 + type: 'test' + ... +# Subtest: CLI rejects nonlocal manifest and malformed hash types +ok 428 - CLI rejects nonlocal manifest and malformed hash types + --- + duration_ms: 157.45766 + type: 'test' + ... +# Subtest: CLI refuses missing input and unknown options +ok 429 - CLI refuses missing input and unknown options + --- + duration_ms: 64.078843 + type: 'test' + ... +# Subtest: CLI rejects source substitution +ok 430 - CLI rejects source substitution + --- + duration_ms: 33.052234 + type: 'test' + ... +# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture +ok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture + --- + duration_ms: 1.299809 + type: 'test' + ... +# Subtest: a fixture-only change was missed before and now runs the conditional suites +ok 432 - a fixture-only change was missed before and now runs the conditional suites + --- + duration_ms: 0.560161 + type: 'test' + ... +# Subtest: existing matching paths stay matched and unrelated paths stay excluded +ok 433 - existing matching paths stay matched and unrelated paths stay excluded + --- + duration_ms: 1.083769 + type: 'test' + ... +# Subtest: every local file the conditional suites and replay tool load triggers the workflow +ok 434 - every local file the conditional suites and replay tool load triggers the workflow + --- + duration_ms: 3.681156 + type: 'test' + ... +# Subtest: a verified startup renders the route from the selected claim proof bytes +ok 435 - a verified startup renders the route from the selected claim proof bytes + --- + duration_ms: 36.813134 + type: 'test' + ... +# Subtest: the museum page and the conditional route share one verified startup and byte cache +ok 436 - the museum page and the conditional route share one verified startup and byte cache + --- + duration_ms: 23.879913 + type: 'test' + ... +# Subtest: a rejected startup is not retained for a later caller +ok 437 - a rejected startup is not retained for a later caller + --- + duration_ms: 6.057718 + type: 'test' + ... +# Subtest: changed proof bytes clear an earlier view and infer nothing +ok 438 - changed proof bytes clear an earlier view and infer nothing + --- + duration_ms: 5.077317 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched +ok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched + --- + duration_ms: 3.774372 + type: 'test' + ... +# Subtest: a stale manifest stops before any pinned remote request +ok 440 - a stale manifest stops before any pinned remote request + --- + duration_ms: 2.111419 + type: 'test' + ... +# Subtest: a page without the route container is left untouched +ok 441 - a page without the route container is left untouched + --- + duration_ms: 1.576385 + type: 'test' + ... +# Subtest: a verified route: the outcome is written to the attached role="status" line after the host changes +ok 442 - a verified route: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 7.774817 + type: 'test' + ... +# Subtest: a verified route: nothing inserted into the route host carries a role or is live +ok 443 - a verified route: nothing inserted into the route host carries a role or is live + --- + duration_ms: 11.412475 + type: 'test' + ... +# Subtest: a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes +ok 444 - a changed museum.json at startup: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 1.85625 + type: 'test' + ... +# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live +ok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live + --- + duration_ms: 1.272857 + type: 'test' + ... +# Subtest: a stale manifest: the outcome is written to the attached role="status" line after the host changes +ok 446 - a stale manifest: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 11.851476 + type: 'test' + ... +# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live +ok 447 - a stale manifest: nothing inserted into the route host carries a role or is live + --- + duration_ms: 5.544174 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes +ok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 4.143485 + type: 'test' + ... +# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live +ok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.525682 + type: 'test' + ... +# Subtest: changed proof bytes: the outcome is written to the attached role="status" line after the host changes +ok 450 - changed proof bytes: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 3.124811 + type: 'test' + ... +# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live +ok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live + --- + duration_ms: 2.645394 + type: 'test' + ... +# Subtest: an unavailable museum module: the outcome is written to the attached role="status" line after the host changes +ok 452 - an unavailable museum module: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.768873 + type: 'test' + ... +# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live +ok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.579313 + type: 'test' + ... +# Subtest: a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes +ok 454 - a manifest without the route claim: the outcome is written to the attached role="status" line after the host changes + --- + duration_ms: 0.788153 + type: 'test' + ... +# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live +ok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live + --- + duration_ms: 0.57376 + type: 'test' + ... +# Subtest: museum.html has exactly one route status line: static, role="status", directly before an empty host +ok 456 - museum.html has exactly one route status line: static, role="status", directly before an empty host + --- + duration_ms: 0.336233 + type: 'test' + ... +# Subtest: on a first run the static Verifying… line receives no write while the route is verified +ok 457 - on a first run the static Verifying… line receives no write while the route is verified + --- + duration_ms: 11.907108 + type: 'test' + ... +# Subtest: an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it +ok 458 - an older page without the status line shows one plain Verifying… paragraph in the host until the refusal replaces it + --- + duration_ms: 1.835018 + type: 'test' + ... +# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host +ok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host + --- + duration_ms: 0.981137 + type: 'test' + ... +# Subtest: an older page without the status line draws only the route on success +ok 460 - an older page without the status line draws only the route on success + --- + duration_ms: 2.391611 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 2.819171 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.539688 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 1.777042 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 464 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.77613 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 465 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 6.493799 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 1.053913 + type: 'test' + ... +# Subtest: museum exposes source-bound rendering rather than silently omitting the page +ok 467 - museum exposes source-bound rendering rather than silently omitting the page + --- + duration_ms: 0.32092 + type: 'test' + ... +# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched +ok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched + --- + duration_ms: 58.104101 + type: 'test' + ... +# Subtest: museum wheel while verifying sources cancels delayed focus and scroll +ok 469 - museum wheel while verifying sources cancels delayed focus and scroll + --- + duration_ms: 8.227736 + type: 'test' + ... +# Subtest: museum keydown while verifying sources cancels delayed focus and scroll +ok 470 - museum keydown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 12.28678 + type: 'test' + ... +# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll +ok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll + --- + duration_ms: 9.23017 + type: 'test' + ... +# Subtest: museum focusin while verifying sources cancels delayed focus and scroll +ok 472 - museum focusin while verifying sources cancels delayed focus and scroll + --- + duration_ms: 20.422101 + type: 'test' + ... +# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll +ok 473 - museum hashchange while verifying sources cancels delayed focus and scroll + --- + duration_ms: 13.609255 + type: 'test' + ... +# Subtest: museum popstate while verifying sources cancels delayed focus and scroll +ok 474 - museum popstate while verifying sources cancels delayed focus and scroll + --- + duration_ms: 7.730952 + type: 'test' + ... +# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll +ok 475 - museum pagehide while verifying sources cancels delayed focus and scroll + --- + duration_ms: 8.785737 + type: 'test' + ... +# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording +ok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording + --- + duration_ms: 4.182732 + type: 'test' + ... +# Subtest: source display cannot promote a counterexample or an AMEND row +ok 477 - source display cannot promote a counterexample or an AMEND row + --- + duration_ms: 1.091433 + type: 'test' + ... +# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope +ok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope + --- + duration_ms: 0.613681 + type: 'test' + ... +# Subtest: replay command must occur exactly in the verified replay source +ok 479 - replay command must occur exactly in the verified replay source + --- + duration_ms: 4.164572 + type: 'test' + ... +# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot +ok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot + --- + duration_ms: 0.796409 + type: 'test' + ... +# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch +ok 481 - malformed, mutable and falsely displayed source identities are refused before fetch + --- + duration_ms: 0.411761 + type: 'test' + ... +# Subtest: verified source bytes are required before a claim can be presented +ok 482 - verified source bytes are required before a claim can be presented + --- + duration_ms: 5.191933 + type: 'test' + ... +# Subtest: streamed responses stop at the byte cap and cancel the reader +ok 483 - streamed responses stop at the byte cap and cancel the reader + --- + duration_ms: 1.064177 + type: 'test' + ... +# Subtest: a stalled response body is aborted within its request deadline +ok 484 - a stalled response body is aborted within its request deadline + --- + duration_ms: 15.661737 + type: 'test' + ... +# Subtest: review comment pointers cannot masquerade as byte-frozen comment content +ok 485 - review comment pointers cannot masquerade as byte-frozen comment content + --- + duration_ms: 0.599952 + type: 'test' + ... +# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review +ok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review + --- + duration_ms: 1.155226 + type: 'test' + ... +# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path +ok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path + --- + duration_ms: 1.401937 + type: 'test' + ... +# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only +ok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only + --- + duration_ms: 1.144721 + type: 'test' + ... +# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer +ok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer + --- + duration_ms: 7.074704 + type: 'test' + ... +# Subtest: museum manifest must match the config byte count and SHA-256 before source projection +ok 490 - museum manifest must match the config byte count and SHA-256 before source projection + --- + duration_ms: 6.836287 + type: 'test' + ... +# Subtest: museum.html keeps its two evidence live regions and a separate current observation region +ok 491 - museum.html keeps its two evidence live regions and a separate current observation region + --- + duration_ms: 1.180073 + type: 'test' + ... +# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses +ok 492 - brand.css keeps the route status line visible and in the error colour when it refuses + --- + duration_ms: 1.65541 + type: 'test' + ... +# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them +ok 493 - refused cards carry no role and are not live; the museum status line counts every one of them + --- + duration_ms: 6.00147 + type: 'test' + ... +# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view +ok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view + --- + duration_ms: 3.825468 + type: 'test' + ... +# Subtest: a declared exhibit that cannot be shown is counted in the museum status line +ok 495 - a declared exhibit that cannot be shown is counted in the museum status line + --- + duration_ms: 3.984684 + type: 'test' + ... +# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title +ok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title + --- + duration_ms: 1.164322 + type: 'test' + ... +# Subtest: a coherent old browser cache cannot hide the newly pinned packet +ok 497 - a coherent old browser cache cannot hide the newly pinned packet + --- + duration_ms: 16.559921 + type: 'test' + ... +# Subtest: a mixed new config and stale museum manifest fails closed +ok 498 - a mixed new config and stale museum manifest fails closed + --- + duration_ms: 2.500907 + type: 'test' + ... +# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions +ok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions + --- + duration_ms: 18.315779 + type: 'test' + ... +# Subtest: verified claim quotes expose readable source and exact review citations +ok 500 - verified claim quotes expose readable source and exact review citations + --- + duration_ms: 4.38846 + type: 'test' + ... +# Subtest: readable presentation retains the exact original source quote in a disclosure +ok 501 - readable presentation retains the exact original source quote in a disclosure + --- + duration_ms: 7.267288 + type: 'test' + ... +# Subtest: packet cards render in manifest order when the first packet arrives last +ok 502 - packet cards render in manifest order when the first packet arrives last + --- + duration_ms: 9.425506 + type: 'test' + ... +# Subtest: a refused packet keeps its manifest slot when the other packet arrives later +ok 503 - a refused packet keeps its manifest slot when the other packet arrives later + --- + duration_ms: 8.338792 + type: 'test' + ... +# Subtest: every refused packet is counted in the museum status line +ok 504 - every refused packet is counted in the museum status line + --- + duration_ms: 9.187305 + type: 'test' + ... +# Subtest: a rendered packet replaces its Verifying placeholder +ok 505 - a rendered packet replaces its Verifying placeholder + --- + duration_ms: 6.762047 + type: 'test' + ... +# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders +ok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders + --- + duration_ms: 2.176866 + type: 'test' + ... +# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window +ok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window + --- + duration_ms: 0.454761 + type: 'test' + ... +# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two +ok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two + --- + duration_ms: 0.450568 + type: 'test' + ... +# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple +ok 509 - P15 exact finite example partitions every proper subset and rejects the full triple + --- + duration_ms: 0.493985 + type: 'test' + ... +# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code +ok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code + --- + duration_ms: 0.564888 + type: 'test' + ... +# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions +ok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions + --- + duration_ms: 3.067835 + type: 'test' + ... +# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches +ok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches + --- + duration_ms: 0.767041 + type: 'test' + ... +# Subtest: P15 vertex toggles change the actual decomposition result +ok 513 - P15 vertex toggles change the actual decomposition result + --- + duration_ms: 0.73064 + type: 'test' + ... +# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails +ok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails + --- + duration_ms: 1.824569 + type: 'test' + ... +# Subtest: EC014 live status follows the visible view through 3D, 2D and back +ok 515 - EC014 live status follows the visible view through 3D, 2D and back + --- + duration_ms: 4.399181 + type: 'test' + ... +# Subtest: correct source bytes cannot acquire a different valid-looking commit +ok 516 - correct source bytes cannot acquire a different valid-looking commit + --- + duration_ms: 1.324105 + type: 'test' + ... +# Subtest: exported projection preserves the complete audited source descriptor +ok 517 - exported projection preserves the complete audited source descriptor + --- + duration_ms: 7.46964 + type: 'test' + ... +# Subtest: offline CLI refuses coherent hash-correct source relabeling +ok 518 - offline CLI refuses coherent hash-correct source relabeling + --- + duration_ms: 41.303251 + type: 'test' + ... +# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags +ok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags + --- + duration_ms: 200.814689 + type: 'test' + ... +# Subtest: a record with an owner but no evidence_url fails validation +ok 520 - a record with an owner but no evidence_url fails validation + --- + duration_ms: 360.352135 + type: 'test' + ... +# Subtest: closed schema, evidence pattern, and primary source_rev are enforced +ok 521 - closed schema, evidence pattern, and primary source_rev are enforced + --- + duration_ms: 1102.573745 + type: 'test' + ... +# Subtest: pinned rev equals the blob or tree commit segment +ok 522 - pinned rev equals the blob or tree commit segment + --- + duration_ms: 305.161773 + type: 'test' + ... +# Subtest: carried_forward resolution_url uses the shared comment pattern +ok 523 - carried_forward resolution_url uses the shared comment pattern + --- + duration_ms: 442.199412 + type: 'test' + ... +# Subtest: released_url keeps the owner object and the atlas says released +ok 524 - released_url keeps the owner object and the atlas says released + --- + duration_ms: 146.839056 + type: 'test' + ... +# Subtest: resume projection shows a node-status view and refuses an owner without evidence +ok 525 - resume projection shows a node-status view and refuses an owner without evidence + --- + duration_ms: 578.558585 + type: 'test' + ... +# Subtest: a valid observed_at and source_rev refresh still validates and renders +ok 526 - a valid observed_at and source_rev refresh still validates and renders + --- + duration_ms: 192.75376 + type: 'test' + ... +# Subtest: the atlas resume section passes the published node-status view into resumeProjection +ok 527 - the atlas resume section passes the published node-status view into resumeProjection + --- + duration_ms: 1.515234 + type: 'test' + ... +# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim +ok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim + --- + duration_ms: 159.800158 + type: 'test' + ... +# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs +ok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs + --- + duration_ms: 3.870556 + type: 'test' + ... +# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition +ok 530 - the failed triple explicitly records an attempted placement rather than a valid partition + --- + duration_ms: 0.718905 + type: 'test' + ... +# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink +ok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink + --- + duration_ms: 0.241432 + type: 'test' + ... +# Subtest: malformed selections and noncanonical or false ISO timestamps are refused +ok 532 - malformed selections and noncanonical or false ISO timestamps are refused + --- + duration_ms: 1.276881 + type: 'test' + ... +# Subtest: metadata carries the exact pinned finite source and non-certifying scope +ok 533 - metadata carries the exact pinned finite source and non-certifying scope + --- + duration_ms: 0.459057 + type: 'test' + ... +# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement +ok 534 - plaintext citations identify selected objects, actual empty groups and failed placement + --- + duration_ms: 0.729465 + type: 'test' + ... +# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors +ok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors + --- + duration_ms: 2.163738 + type: 'test' + ... +# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer +ok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer + --- + duration_ms: 17.57713 + type: 'test' + ... +# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused +ok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused + --- + duration_ms: 2.440987 + type: 'test' + ... +# Subtest: the visible footer records the same ISO generation timestamp as export metadata +ok 538 - the visible footer records the same ISO generation timestamp as export metadata + --- + duration_ms: 1.303377 + type: 'test' + ... +# Subtest: inherited native font stacks on actual non-text primitives remain self-contained +ok 539 - inherited native font stacks on actual non-text primitives remain self-contained + --- + duration_ms: 1.068538 + type: 'test' + ... +# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export +ok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export + --- + duration_ms: 4.461772 + type: 'test' + ... +# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities +ok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities + --- + duration_ms: 2.304979 + type: 'test' + ... +# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted +ok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted + --- + duration_ms: 1.019769 + type: 'test' + ... +# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink +ok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink + --- + duration_ms: 0.5658 + type: 'test' + ... +# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings +ok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings + --- + duration_ms: 11.583132 + type: 'test' + ... +# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources +ok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources + --- + duration_ms: 3.043187 + type: 'test' + ... +# Subtest: the visible pin footer records the same ISO generation timestamp as metadata +ok 546 - the visible pin footer records the same ISO generation timestamp as metadata + --- + duration_ms: 1.487345 + type: 'test' + ... +# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection. +# Subtest: SIDE24 always identifies the engineering exhibit before the controls +ok 547 - SIDE24 always identifies the engineering exhibit before the controls + --- + duration_ms: 0.869841 + type: 'test' + ... +# Subtest: count cards and every status row retain their own source context +ok 548 - count cards and every status row retain their own source context + --- + duration_ms: 5.082949 + type: 'test' + ... +# Subtest: repository and path filters combine with search and reset pagination +ok 549 - repository and path filters combine with search and reset pagination + --- + duration_ms: 24.696434 + type: 'test' + ... +# Subtest: query view shows its pin and the local byte-check command without a live ref control +ok 550 - query view shows its pin and the local byte-check command without a live ref control + --- + duration_ms: 0.318696 + type: 'test' + ... +# Subtest: brand assets exist and declare no scientific authority +ok 551 - brand assets exist and declare no scientific authority + --- + duration_ms: 2.612083 + type: 'test' + ... +# Subtest: dark and light text, links and state labels meet 4.5:1 contrast +ok 552 - dark and light text, links and state labels meet 4.5:1 contrast + --- + duration_ms: 1.043257 + type: 'test' + ... +# Subtest: buttons and focus ring have explicit contrast +ok 553 - buttons and focus ring have explicit contrast + --- + duration_ms: 0.319601 + type: 'test' + ... +# Subtest: palette tokens are actually applied, not decorative metadata +ok 554 - palette tokens are actually applied, not decorative metadata + --- + duration_ms: 4.631133 + type: 'test' + ... +# Subtest: all public pages load local branding after legacy styles with no CSP relaxation +ok 555 - all public pages load local branding after legacy styles with no CSP relaxation + --- + duration_ms: 1.568289 + type: 'test' + ... +# Subtest: light, reduced-motion, forced-color and print modes are supplied +ok 556 - light, reduced-motion, forced-color and print modes are supplied + --- + duration_ms: 0.546496 + type: 'test' + ... +# Subtest: status classes retain redundant patterns and non-brand acceptance color +ok 557 - status classes retain redundant patterns and non-brand acceptance color + --- + duration_ms: 0.862681 + type: 'test' + ... +# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds +ok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds + --- + duration_ms: 0.745537 + type: 'test' + ... +# Subtest: body links remain underlined and keyboard focus is not removed +ok 559 - body links remain underlined and keyboard focus is not removed + --- + duration_ms: 1.199225 + type: 'test' + ... +# Subtest: navigation and grids can reflow on small screens +ok 560 - navigation and grids can reflow on small screens + --- + duration_ms: 1.471042 + type: 'test' + ... +# Subtest: styles do not hide evidence, scope disclaimers or refusal states +ok 561 - styles do not hide evidence, scope disclaimers or refusal states + --- + duration_ms: 1.137377 + type: 'test' + ... +# Subtest: low-contrast adversarial palette fails the same numerical threshold +ok 562 - low-contrast adversarial palette fails the same numerical threshold + --- + duration_ms: 0.137232 + type: 'test' + ... +# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it +ok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it + --- + duration_ms: 16.478297 + type: 'test' + ... +# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links +ok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links + --- + duration_ms: 14.811455 + type: 'test' + ... +# Subtest: valid source preserves exact strings +ok 565 - valid source preserves exact strings + --- + duration_ms: 33.283291 + type: 'test' + ... +# Subtest: local pinned data bypasses an older response while still verifying current bytes +ok 566 - local pinned data bypasses an older response while still verifying current bytes + --- + duration_ms: 4.346124 + type: 'test' + ... +# Subtest: digest mismatch refuses data +ok 567 - digest mismatch refuses data + --- + duration_ms: 1.700642 + type: 'test' + ... +# Subtest: byte count mismatch refuses data +ok 568 - byte count mismatch refuses data + --- + duration_ms: 0.439529 + type: 'test' + ... +# Subtest: mutable branch URL refused before request +ok 569 - mutable branch URL refused before request + --- + duration_ms: 0.198456 + type: 'test' + ... +# Subtest: HTTP failure gives no data +ok 570 - HTTP failure gives no data + --- + duration_ms: 0.350288 + type: 'test' + ... +# Subtest: status snapshot counts are selected rows +ok 571 - status snapshot counts are selected rows + --- + duration_ms: 1.031121 + type: 'test' + ... +# Subtest: unknown category refused +ok 572 - unknown category refused + --- + duration_ms: 0.306201 + type: 'test' + ... +# Subtest: changed count refused +ok 573 - changed count refused + --- + duration_ms: 0.175304 + type: 'test' + ... +# Subtest: promotion authority refused +ok 574 - promotion authority refused + --- + duration_ms: 0.10556 + type: 'test' + ... +# Subtest: coefficient endpoints remain distinct exactly +ok 575 - coefficient endpoints remain distinct exactly + --- + duration_ms: 0.234904 + type: 'test' + ... +# Subtest: float endpoints refused +ok 576 - float endpoints refused + --- + duration_ms: 0.188264 + type: 'test' + ... +# Subtest: coefficient acceptance flag cannot be flipped +ok 577 - coefficient acceptance flag cannot be flipped + --- + duration_ms: 0.133177 + type: 'test' + ... +# Subtest: catalog points at immutable public paths +ok 578 - catalog points at immutable public paths + --- + duration_ms: 0.22028 + type: 'test' + ... +# Subtest: catalog rejects private repo and traversal +ok 579 - catalog rejects private repo and traversal + --- + duration_ms: 0.2118 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different commit +ok 580 - correct bytes cannot be attributed to a different commit + --- + duration_ms: 0.262256 + type: 'test' + ... +# Subtest: correct bytes cannot be attributed to a different path +ok 581 - correct bytes cannot be attributed to a different path + --- + duration_ms: 0.258185 + type: 'test' + ... +# Subtest: Home explains the landscape before publication machinery +ok 582 - Home explains the landscape before publication machinery + --- + duration_ms: 1.347634 + type: 'test' + ... +# Subtest: Explore reaches a real local control and result before source publication +ok 583 - Explore reaches a real local control and result before source publication + --- + duration_ms: 0.480329 + type: 'test' + ... +# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive +ok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive + --- + duration_ms: 1.203409 + type: 'test' + ... +# Subtest: Research reading map routes to all four preserved introductory paths +ok 585 - Research reading map routes to all four preserved introductory paths + --- + duration_ms: 1.61001 + type: 'test' + ... +# Subtest: Library routes present-day discovery separately from dated records +ok 586 - Library routes present-day discovery separately from dated records + --- + duration_ms: 0.55092 + type: 'test' + ... +# Subtest: Deep archived fragments reveal every ancestor without focus or history writes +ok 587 - Deep archived fragments reveal every ancestor without focus or history writes + --- + duration_ms: 1.169578 + type: 'test' + ... +# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes +ok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes + --- + duration_ms: 0.57608 + type: 'test' + ... +# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched +ok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched + --- + duration_ms: 0.609481 + type: 'test' + ... +# Subtest: current readers expose consistent native task links with real destinations +ok 590 - current readers expose consistent native task links with real destinations + --- + duration_ms: 12.444588 + type: 'test' + ... +# Subtest: missing and already-enhanced menus receive no extra listeners +ok 591 - missing and already-enhanced menus receive no extra listeners + --- + duration_ms: 0.248072 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 592 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 85.446393 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 593 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 53.720671 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 594 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 53.584952 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 595 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 82.721478 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 596 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 159.433294 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 597 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 27.43462 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 22.323959 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 30.345839 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 600 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.652035 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 23.674897 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.043418 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 603 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 31.019016 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.747843 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 605 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.540415 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 25.316522 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 607 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 26.973988 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 608 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 21.08667 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 609 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 28.704774 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 610 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 26.837364 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 611 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 2.220314 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 612 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 22.075655 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 613 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 27.579877 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 614 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 27.390525 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 615 - a config refusal settles every pending source note + --- + duration_ms: 2.001034 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 616 - a query refusal preserves verified import custody information + --- + duration_ms: 21.105702 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 617 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 26.311683 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 618 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.311897 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 619 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 28.169293 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.671314 + type: 'test' + ... +# Subtest: a bookmarked combined search restores the one exact proof and source link +ok 621 - a bookmarked combined search restores the one exact proof and source link + --- + duration_ms: 23.010272 + type: 'test' + ... +# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters +ok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters + --- + duration_ms: 41.796307 + type: 'test' + ... +# Subtest: popstate restores filters and pagination without rewriting history or stealing focus +ok 623 - popstate restores filters and pagination without rewriting history or stealing focus + --- + duration_ms: 30.135495 + type: 'test' + ... +# Subtest: clear filters recovers from no matches and resets pagination with search focus +ok 624 - clear filters recovers from no matches and resets pagination with search focus + --- + duration_ms: 31.513384 + type: 'test' + ... +# Subtest: unknown repository and duplicate parameters use documented first-value rules +ok 625 - unknown repository and duplicate parameters use documented first-value rules + --- + duration_ms: 26.17006 + type: 'test' + ... +# Subtest: encoded punctuation stays inert search text +ok 626 - encoded punctuation stays inert search text + --- + duration_ms: 21.375302 + type: 'test' + ... +# Subtest: catalog readiness uses the latest location while sources are still loading +ok 627 - catalog readiness uses the latest location while sources are still loading + --- + duration_ms: 28.279701 + type: 'test' + ... +# Subtest: an unavailable inventory keeps new controls unavailable and infers no results +ok 628 - an unavailable inventory keeps new controls unavailable and infers no results + --- + duration_ms: 5.051278 + type: 'test' + ... +# Subtest: a refused history update leaves filtering and the explicit search link usable +ok 629 - a refused history update leaves filtering and the explicit search link usable + --- + duration_ms: 29.032606 + type: 'test' + ... +# Subtest: restored empty filters preserve the ordinary initial 50-row catalog +ok 630 - restored empty filters preserve the ordinary initial 50-row catalog + --- + duration_ms: 26.300955 + type: 'test' + ... +# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link +ok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link + --- + duration_ms: 22.397632 + type: 'test' + ... +# Subtest: every former landing section routes to its preserved workspace section +ok 632 - every former landing section routes to its preserved workspace section + --- + duration_ms: 0.427104 + type: 'test' + ... +# Subtest: new home fragments and untrusted fragments never become redirect destinations +ok 633 - new home fragments and untrusted fragments never become redirect destinations + --- + duration_ms: 0.122616 + type: 'test' + ... +# Subtest: browser entry follows a bookmarked section and future hash changes +ok 634 - browser entry follows a bookmarked section and future hash changes + --- + duration_ms: 0.644681 + type: 'test' + ... +# Subtest: the reader home does not preload the technical inventory or source viewer +ok 635 - the reader home does not preload the technical inventory or source viewer + --- + duration_ms: 0.258488 + type: 'test' + ... +# Subtest: verified source cards become reachable after asynchronous rendering +ok 636 - verified source cards become reachable after asynchronous rendering + --- + duration_ms: 2.189643 + type: 'test' + ... +# Subtest: saved source hands exact fields to the same-site reference builder +ok 637 - saved source hands exact fields to the same-site reference builder + --- + duration_ms: 3.514412 + type: 'test' + ... +# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field +ok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field + --- + duration_ms: 0.967913 + type: 'test' + ... +# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path +ok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path + --- + duration_ms: 0.903585 + type: 'test' + ... +# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal +ok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal + --- + duration_ms: 0.937121 + type: 'test' + ... +# Subtest: queries and malformed or overprivileged imported records cannot become references +ok 641 - queries and malformed or overprivileged imported records cannot become references + --- + duration_ms: 1.219057 + type: 'test' + ... +# Subtest: imported notes refuse raw duplicate schema and source identity keys +ok 642 - imported notes refuse raw duplicate schema and source identity keys + --- + duration_ms: 4.172045 + type: 'test' + ... +# Subtest: source-button identity matches legal filename URI spellings without conflating path segments +ok 643 - source-button identity matches legal filename URI spellings without conflating path segments + --- + duration_ms: 0.490729 + type: 'test' + ... +# Subtest: valid entries retain exact identities and normalize only search whitespace +ok 644 - valid entries retain exact identities and normalize only search whitespace + --- + duration_ms: 1.362169 + type: 'test' + ... +# Subtest: entries require exact plain JSON data records with no inherited or executable fields +ok 645 - entries require exact plain JSON data records with no inherited or executable fields + --- + duration_ms: 0.591457 + type: 'test' + ... +# Subtest: unexpected keys never become imported links, statuses or inferred metadata +ok 646 - unexpected keys never become imported links, statuses or inferred metadata + --- + duration_ms: 0.648104 + type: 'test' + ... +# Subtest: required properties and string types cannot be coerced or defaulted +ok 647 - required properties and string types cannot be coerced or defaulted + --- + duration_ms: 1.491234 + type: 'test' + ... +# Subtest: source repositories and commits must name an allowed owner and exact immutable commit +ok 648 - source repositories and commits must name an allowed owner and exact immutable commit + --- + duration_ms: 0.552488 + type: 'test' + ... +# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments +ok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments + --- + duration_ms: 0.610553 + type: 'test' + ... +# Subtest: dates reject calendar overflow, offsets and invalid timestamp types +ok 650 - dates reject calendar overflow, offsets and invalid timestamp types + --- + duration_ms: 1.305761 + type: 'test' + ... +# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types +ok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types + --- + duration_ms: 2.060658 + type: 'test' + ... +# Subtest: search filters are bounded inert text with collection-specific repositories +ok 652 - search filters are bounded inert text with collection-specific repositories + --- + duration_ms: 0.802793 + type: 'test' + ... +# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding +ok 653 - source links are reconstructed from exact pins with literal raw Git path encoding + --- + duration_ms: 0.410312 + type: 'test' + ... +# Subtest: current search links omit every catalog and unrelated parameter +ok 654 - current search links omit every catalog and unrelated parameter + --- + duration_ms: 0.493761 + type: 'test' + ... +# Subtest: catalog search links omit current parameters and roundtrip all catalog filters +ok 655 - catalog search links omit current parameters and roundtrip all catalog filters + --- + duration_ms: 0.27796 + type: 'test' + ... +# Subtest: blank saved searches restore their collection all-files view +ok 656 - blank saved searches restore their collection all-files view + --- + duration_ms: 0.310408 + type: 'test' + ... +# Subtest: entry identity separates source pins and normalized collection search contexts +ok 657 - entry identity separates source pins and normalized collection search contexts + --- + duration_ms: 0.574649 + type: 'test' + ... +# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields +ok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields + --- + duration_ms: 0.766657 + type: 'test' + ... +# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing +ok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing + --- + duration_ms: 6.805535 + type: 'test' + ... +# Subtest: merge validates every entry before returning and leaves inputs unchanged +ok 660 - merge validates every entry before returning and leaves inputs unchanged + --- + duration_ms: 0.760209 + type: 'test' + ... +# Subtest: deduplication keeps first context and enriches absent identity metadata +ok 661 - deduplication keeps first context and enriches absent identity metadata + --- + duration_ms: 3.269155 + type: 'test' + ... +# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge +ok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge + --- + duration_ms: 1.109209 + type: 'test' + ... +# Subtest: capacity counts unique entries and overflow is atomic +ok 663 - capacity counts unique entries and overflow is atomic + --- + duration_ms: 4.251333 + type: 'test' + ... +# Subtest: exported JSON carries only strict schema data and roundtrips identity types +ok 664 - exported JSON carries only strict schema data and roundtrips identity types + --- + duration_ms: 3.615988 + type: 'test' + ... +# Subtest: export rejects oversized identities instead of creating an unimportable file +ok 665 - export rejects oversized identities instead of creating an unimportable file + --- + duration_ms: 1.647609 + type: 'test' + ... +# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity +ok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity + --- + duration_ms: 10.391483 + type: 'test' + ... +# Subtest: comparison model is implemented +ok 667 - comparison model is implemented + --- + duration_ms: 7.138208 + type: 'test' + ... +# Subtest: literal fields preserve array order and number versus boolean +ok 668 - literal fields preserve array order and number versus boolean + --- + duration_ms: 0.534688 + type: 'test' + ... +# Subtest: real retained archives distinguish pin moves from blob/byte moves +ok 669 - real retained archives distinguish pin moves from blob/byte moves + --- + duration_ms: 322.334055 + type: 'test' + ... +# Subtest: payload integrity refuses byte and digest mismatch +ok 670 - payload integrity refuses byte and digest mismatch + --- + duration_ms: 3.136364 + type: 'test' + ... +# Subtest: unsafe public paths and unsupported versions refuse +ok 671 - unsafe public paths and unsupported versions refuse + --- + duration_ms: 0.741369 + type: 'test' + ... +# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives +ok 672 - duplicate inventory identities refuse; complete edge multiplicity survives + --- + duration_ms: 56.413106 + type: 'test' + ... +# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted +ok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted + --- + duration_ms: 31.227225 + type: 'test' + ... +# Subtest: registry binds selected own descriptors and metadata publication +ok 674 - registry binds selected own descriptors and metadata publication + --- + duration_ms: 7.154231 + type: 'test' + ... +# Subtest: bounded acquisition refuses oversized responses and follows no redirects +ok 675 - bounded acquisition refuses oversized responses and follows no redirects + --- + duration_ms: 17.835219 + type: 'test' + ... +# Subtest: publication acquisition verifies registry hash before admitting choices +ok 676 - publication acquisition verifies registry hash before admitting choices + --- + duration_ms: 45.490199 + type: 'test' + ... +# Subtest: page advertised identity refuses a different publication +ok 677 - page advertised identity refuses a different publication + --- + duration_ms: 2.757219 + type: 'test' + ... +# Subtest: decoded byte identity survives HTTP content encoding +ok 678 - decoded byte identity survives HTTP content encoding + --- + duration_ms: 0.918361 + type: 'test' + ... +# Subtest: raw duplicate node IDs refuse even when exact byte digest matches +ok 679 - raw duplicate node IDs refuse even when exact byte digest matches + --- + duration_ms: 7.25444 + type: 'test' + ... +# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys +ok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys + --- + duration_ms: 0.770985 + type: 'test' + ... +# Subtest: raw duplicate metadata and hash-matching registry keys refuse +ok 681 - raw duplicate metadata and hash-matching registry keys refuse + --- + duration_ms: 7.386351 + type: 'test' + ... +# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections +ok 682 - producer-admitted identical current/archive bytes retain distinct typed selections + --- + duration_ms: 83.484367 + type: 'test' + ... +# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes +ok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes + --- + duration_ms: 0.617929 + type: 'test' + ... +# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch +ok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch + --- + duration_ms: 1.30081 + type: 'test' + ... +# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities +ok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities + --- + duration_ms: 0.414672 + type: 'test' + ... +# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal +ok 686 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal + --- + duration_ms: 0.573313 + type: 'test' + ... +# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling +ok 687 - source HTML is always text and unsupported Markdown retains its literal spelling + --- + duration_ms: 1.828066 + type: 'test' + ... +# Subtest: every committed quote retains all wording and its original source independently of formatting +ok 688 - every committed quote retains all wording and its original source independently of formatting + --- + duration_ms: 6.438655 + type: 'test' + ... +# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal +ok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal + --- + duration_ms: 1.124329 + type: 'test' + ... +# Subtest: builds an immutable repository or file reference without attributing authorship +ok 690 - builds an immutable repository or file reference without attributing authorship + --- + duration_ms: 2.137146 + type: 'test' + ... +# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths +ok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths + --- + duration_ms: 1.56397 + type: 'test' + ... +# Subtest: allows unicode file names and unambiguous encoded URL delimiters +ok 692 - allows unicode file names and unambiguous encoded URL delimiters + --- + duration_ms: 0.325768 + type: 'test' + ... +# Subtest: real form wiring clears stale output and announces a corrected reference +ok 693 - real form wiring clears stale output and announces a corrected reference + --- + duration_ms: 1.264386 + type: 'test' + ... +# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity +ok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity + --- + duration_ms: 1.071569 + type: 'test' + ... +# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math +ok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math + --- + duration_ms: 0.400096 + type: 'test' + ... +# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources +ok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources + --- + duration_ms: 0.250481 + type: 'test' + ... +# Subtest: interval copying locks all formats until the actual write finishes and handles denial +ok 697 - interval copying locks all formats until the actual write finishes and handles denial + --- + duration_ms: 1.750202 + type: 'test' + ... +# Subtest: copy sends exactly the displayed pinned commands and never executes them +ok 698 - copy sends exactly the displayed pinned commands and never executes them + --- + duration_ms: 0.776544 + type: 'test' + ... +# Subtest: clipboard refusal provides manual fallback without success +ok 699 - clipboard refusal provides manual fallback without success + --- + duration_ms: 0.728864 + type: 'test' + ... +# Subtest: unsupported clipboard leaves the command block readable and gives fallback +ok 700 - unsupported clipboard leaves the command block readable and gives fallback + --- + duration_ms: 0.255745 + type: 'test' + ... +# Subtest: reproduction controls have static fallback and an explicit live announcement +ok 701 - reproduction controls have static fallback and an explicit live announcement + --- + duration_ms: 17.563674 + type: 'test' + ... +# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON +ok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON + --- + duration_ms: 0.33724 + type: 'test' + ... +# Subtest: rejects misleading or malformed digest identities +ok 703 - rejects misleading or malformed digest identities + --- + duration_ms: 0.522129 + type: 'test' + ... +# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields +ok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields + --- + duration_ms: 0.823313 + type: 'test' + ... +# Subtest: malformed shared references are refused without partial source identity +ok 705 - malformed shared references are refused without partial source identity + --- + duration_ms: 0.49088 + type: 'test' + ... +# Subtest: reference workflow copies selected representations and invalidates stale outputs +ok 706 - reference workflow copies selected representations and invalidates stale outputs + --- + duration_ms: 0.777521 + type: 'test' + ... +# Subtest: shared reference restoration and Back reject invalid state without publishing old output +ok 707 - shared reference restoration and Back reject invalid state without publishing old output + --- + duration_ms: 0.513985 + type: 'test' + ... +# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded +ok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded + --- + duration_ms: 0.685744 + type: 'test' + ... +# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes +ok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes + --- + duration_ms: 0.313753 + type: 'test' + ... +# Subtest: a pending clipboard operation prevents a newer reference from overtaking it +ok 710 - a pending clipboard operation prevents a newer reference from overtaking it + --- + duration_ms: 0.465056 + type: 'test' + ... +# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest +ok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest + --- + duration_ms: 0.321665 + type: 'test' + ... +# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity +ok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity + --- + duration_ms: 0.304584 + type: 'test' + ... +# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity +ok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity + --- + duration_ms: 0.760089 + type: 'test' + ... +# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success +ok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success + --- + duration_ms: 0.625152 + type: 'test' + ... +# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback +ok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback + --- + duration_ms: 0.578841 + type: 'test' + ... +# Subtest: legal unmatched and nested path braces produce parser-safe literal text +ok 716 - legal unmatched and nested path braces produce parser-safe literal text + --- + duration_ms: 13.713294 + type: 'test' + ... +# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted. +# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata +ok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata + --- + duration_ms: 4.202548 + type: 'test' + ... +# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state +ok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state + --- + duration_ms: 1.344906 + type: 'test' + ... +# Subtest: unsupported resources and unbounded or invisible styles refuse serialization +ok 719 - unsupported resources and unbounded or invisible styles refuse serialization + --- + duration_ms: 2.37753 + type: 'test' + ... +# Subtest: capture reads displayed primitives and their concrete computed styles +ok 720 - capture reads displayed primitives and their concrete computed styles + --- + duration_ms: 1.692049 + type: 'test' + ... +# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children +ok 721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children + --- + duration_ms: 1.324218 + type: 'test' + ... +# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes +ok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes + --- + duration_ms: 1.243889 + type: 'test' + ... +# Subtest: rounded rectangle height requires a matching native used-height witness +ok 723 - rounded rectangle height requires a matching native used-height witness + --- + duration_ms: 0.832617 + type: 'test' + ... +# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion +ok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion + --- + duration_ms: 0.312984 + type: 'test' + ... +# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string +ok 725 - native height equality cannot admit real CSS overrides sharing a rounded string + --- + duration_ms: 1.816842 + type: 'test' + ... +# Subtest: rectangle height witness is finite, bounded and fail-closed +ok 726 - rectangle height witness is finite, bounded and fail-closed + --- + duration_ms: 4.49486 + type: 'test' + ... +# Subtest: native representation check is bounded to positive rectangle height roundoff +ok 727 - native representation check is bounded to positive rectangle height roundoff + --- + duration_ms: 2.00141 + type: 'test' + ... +# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry +ok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry + --- + duration_ms: 0.372353 + type: 'test' + ... +# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles +ok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles + --- + duration_ms: 0.531384 + type: 'test' + ... +# Subtest: capture refuses root opacity that would be lost from the opaque standalone export +ok 730 - capture refuses root opacity that would be lost from the opaque standalone export + --- + duration_ms: 0.517713 + type: 'test' + ... +# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths +ok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths + --- + duration_ms: 1.292681 + type: 'test' + ... +# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes +ok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes + --- + duration_ms: 0.425273 + type: 'test' + ... +# Subtest: pending copies serialize writes and never claim success after control changes +ok 733 - pending copies serialize writes and never claim success after control changes + --- + duration_ms: 0.281072 + type: 'test' + ... +# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text +ok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text + --- + duration_ms: 0.457793 + type: 'test' + ... +# Subtest: current clipboard success and denial report only the current figure state +ok 735 - current clipboard success and denial report only the current figure state + --- + duration_ms: 0.405848 + type: 'test' + ... +# Subtest: workspace refreshes configuration before validating current source pins +ok 736 - workspace refreshes configuration before validating current source pins + --- + duration_ms: 85.857993 + type: 'test' + ... +# Subtest: catalog hashes remain metadata-only through pagination and filtering +ok 737 - catalog hashes remain metadata-only through pagination and filtering + --- + duration_ms: 51.517102 + type: 'test' + ... +# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle +ok 738 - initial Library navigation is restored only after delayed layout and failed sources settle + --- + duration_ms: 36.636438 + type: 'test' + ... +# Subtest: existing section bookmarks all receive keyboard focus after rendering +ok 739 - existing section bookmarks all receive keyboard focus after rendering + --- + duration_ms: 85.228257 + type: 'test' + ... +# Subtest: empty, unknown and malformed fragments never trigger a correction +ok 740 - empty, unknown and malformed fragments never trigger a correction + --- + duration_ms: 153.705 + type: 'test' + ... +# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing +ok 741 - reader wheel during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.129105 + type: 'test' + ... +# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing +ok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.019595 + type: 'test' + ... +# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing +ok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.514958 + type: 'test' + ... +# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing +ok 744 - reader keydown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.874898 + type: 'test' + ... +# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing +ok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 26.271388 + type: 'test' + ... +# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing +ok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 21.325254 + type: 'test' + ... +# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing +ok 747 - reader focusin during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.886074 + type: 'test' + ... +# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing +ok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.946258 + type: 'test' + ... +# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing +ok 749 - reader popstate during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 20.90463 + type: 'test' + ... +# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing +ok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing + --- + duration_ms: 24.653337 + type: 'test' + ... +# Subtest: unpressed pointer movement while sources load does not cancel Library navigation +ok 751 - unpressed pointer movement while sources load does not cancel Library navigation + --- + duration_ms: 25.478915 + type: 'test' + ... +# Subtest: a changed fragment is not restored even without a hashchange event +ok 752 - a changed fragment is not restored even without a hashchange event + --- + duration_ms: 21.623646 + type: 'test' + ... +# Subtest: changing a fragment and returning to it leaves the pending correction cancelled +ok 753 - changing a fragment and returning to it leaves the pending correction cancelled + --- + duration_ms: 25.091698 + type: 'test' + ... +# Subtest: browser fragment scrolling and layout shifts do not count as reader intent +ok 754 - browser fragment scrolling and layout shifts do not count as reader intent + --- + duration_ms: 25.147834 + type: 'test' + ... +# Subtest: a refused configuration still reveals the requested unavailable section +ok 755 - a refused configuration still reveals the requested unavailable section + --- + duration_ms: 2.037458 + type: 'test' + ... +# Subtest: a missing target is harmless after loading and removes temporary observers +ok 756 - a missing target is harmless after loading and removes temporary observers + --- + duration_ms: 20.913262 + type: 'test' + ... +# Subtest: reader movement between source settlement and final rendering prevents correction +ok 757 - reader movement between source settlement and final rendering prevents correction + --- + duration_ms: 30.006887 + type: 'test' + ... +# Subtest: an import refusal does not leave the separate query source loading forever +ok 758 - an import refusal does not leave the separate query source loading forever + --- + duration_ms: 25.20845 + type: 'test' + ... +# Subtest: a config refusal settles every pending source note +ok 759 - a config refusal settles every pending source note + --- + duration_ms: 1.964266 + type: 'test' + ... +# Subtest: a query refusal preserves verified import custody information +ok 760 - a query refusal preserves verified import custody information + --- + duration_ms: 21.203358 + type: 'test' + ... +# Subtest: a successful query remains usable when the unrelated import source fails +ok 761 - a successful query remains usable when the unrelated import source fails + --- + duration_ms: 23.996225 + type: 'test' + ... +# Subtest: the static proof link names the pinned proof that the script also assigns +ok 762 - the static proof link names the pinned proof that the script also assigns + --- + duration_ms: 0.283744 + type: 'test' + ... +# Subtest: a refused pinned source names the pinned GitHub route beside the refusal +ok 763 - a refused pinned source names the pinned GitHub route beside the refusal + --- + duration_ms: 25.135218 + type: 'test' + ... +# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through +ok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through + --- + duration_ms: 1.70313 + type: 'test' + ... +1..764 +# tests 764 +# suites 0 +# pass 764 +# fail 0 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 5602.232052 diff --git a/cbz/evidence/cold-start-node/red/both-poisoned-bytecode-hosted.log b/cbz/evidence/cold-start-node/red/both-poisoned-bytecode-hosted.log new file mode 100644 index 000000000..5016f055c --- /dev/null +++ b/cbz/evidence/cold-start-node/red/both-poisoned-bytecode-hosted.log @@ -0,0 +1,897 @@ +2026-10-29T20:59:32.3043235Z Current runner version: '2.338.0' +2026-10-29T20:59:32.3073286Z ##[group]Runner Image Provisioner +2026-10-29T20:59:32.3074314Z Hosted Compute Agent +2026-10-29T20:59:32.3074952Z Version: 20261021.618 +2026-10-29T20:59:32.3075674Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:59:32.3076497Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:59:32.3077629Z Worker ID: {75727e99-bbf6-4a1e-ad70-ae684cb94ec7} +2026-10-29T20:59:32.3078475Z Region: northcentralus +2026-10-29T20:59:32.3079149Z Cloud: Azure +2026-10-29T20:59:32.3079702Z ##[endgroup] +2026-10-29T20:59:32.3081846Z ##[group]Operating System +2026-10-29T20:59:32.3082499Z Ubuntu +2026-10-29T20:59:32.3083038Z 24.04.5 +2026-10-29T20:59:32.3083697Z LTS +2026-10-29T20:59:32.3084290Z ##[endgroup] +2026-10-29T20:59:32.3084942Z ##[group]Runner Image +2026-10-29T20:59:32.3085645Z Image: ubuntu-24.04-arm +2026-10-29T20:59:32.3086256Z Version: 20261025.165.1 +2026-10-29T20:59:32.3088092Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:59:32.3089865Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:59:32.3090862Z ##[endgroup] +2026-10-29T20:59:32.3092059Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:59:32.3095095Z Contents: read +2026-10-29T20:59:32.3095769Z Metadata: read +2026-10-29T20:59:32.3096583Z ##[endgroup] +2026-10-29T20:59:32.3100281Z Secret source: Actions +2026-10-29T20:59:32.3101457Z Cache mode: write +2026-10-29T20:59:32.3102217Z Prepare workflow directory +2026-10-29T20:59:32.3469372Z Prepare all required actions +2026-10-29T20:59:32.3518166Z Getting action download info +2026-10-29T20:59:32.5745643Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:59:32.7033874Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:59:32.8239710Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:59:33.0011854Z Complete job name: controls-and-prepared +2026-10-29T20:59:33.1055344Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:59:33.1056830Z with: +2026-10-29T20:59:33.1057916Z persist-credentials: false +2026-10-29T20:59:33.1058662Z fetch-depth: 0 +2026-10-29T20:59:33.1059279Z repository: d6g8k5htny-coder/main +2026-10-29T20:59:33.1063493Z token: *** +2026-10-29T20:59:33.1064068Z ssh-strict: true +2026-10-29T20:59:33.1064728Z ssh-user: git +2026-10-29T20:59:33.1065313Z clean: true +2026-10-29T20:59:33.1065909Z sparse-checkout-cone-mode: true +2026-10-29T20:59:33.1066657Z fetch-tags: false +2026-10-29T20:59:33.1067446Z show-progress: true +2026-10-29T20:59:33.1068164Z lfs: false +2026-10-29T20:59:33.1068739Z submodules: false +2026-10-29T20:59:33.1069323Z set-safe-directory: true +2026-10-29T20:59:33.1070128Z allow-unsafe-pr-checkout: false +2026-10-29T20:59:33.1071330Z ##[endgroup] +2026-10-29T20:59:33.1943840Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:59:33.1946240Z ##[group]Getting Git version info +2026-10-29T20:59:33.1947470Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:59:33.1976072Z [command]/usr/bin/git version +2026-10-29T20:59:33.2058647Z git version 2.56.0 +2026-10-29T20:59:33.2076607Z ##[endgroup] +2026-10-29T20:59:33.2090120Z Temporarily overriding HOME='/home/runner/work/_temp/f0b1841d-ed15-44be-91b8-d1ef37a11595' before making global git config changes +2026-10-29T20:59:33.2091876Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:59:33.2095046Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:59:33.2134141Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:59:33.2137850Z ##[group]Determining repository object format +2026-10-29T20:59:33.2139902Z ##[endgroup] +2026-10-29T20:59:33.2141262Z ##[group]Initializing the repository +2026-10-29T20:59:33.2143676Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:59:33.2218915Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:59:33.2220180Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:59:33.2221713Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:59:33.2222587Z hint: call: +2026-10-29T20:59:33.2223163Z hint: +2026-10-29T20:59:33.2223899Z hint: git config --global init.defaultBranch +2026-10-29T20:59:33.2224615Z hint: +2026-10-29T20:59:33.2225405Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:59:33.2226504Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:59:33.2227846Z hint: +2026-10-29T20:59:33.2228486Z hint: git branch -m +2026-10-29T20:59:33.2229112Z hint: +2026-10-29T20:59:33.2229993Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:59:33.2234805Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:59:33.2242413Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:59:33.2297953Z ##[endgroup] +2026-10-29T20:59:33.2299063Z ##[group]Disabling automatic garbage collection +2026-10-29T20:59:33.2309776Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:59:33.2340995Z ##[endgroup] +2026-10-29T20:59:33.2341924Z ##[group]Setting up auth +2026-10-29T20:59:33.2342639Z Removing SSH command configuration +2026-10-29T20:59:33.2343927Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:59:33.2400752Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:59:33.2688591Z Removing HTTP extra header +2026-10-29T20:59:33.2692663Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:59:33.2741521Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:59:33.2919431Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:59:33.2923505Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:59:33.2958661Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:59:33.3161092Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:59:33.3198950Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:33.3229501Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:33.3260223Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:33.3289954Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:33.3319831Z ##[endgroup] +2026-10-29T20:59:33.3320836Z ##[group]Fetching the repository +2026-10-29T20:59:33.3325574Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +590c601766d112f15b61a3e9e6990f0945db3812:refs/remotes/pull/707/merge +2026-10-29T20:59:43.5734002Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:59:43.5738376Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:59:43.5741241Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:59:43.5744053Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:59:43.5746982Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:59:43.5750303Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:59:43.5753356Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:59:43.5756684Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:59:43.5760055Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:59:43.5762860Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:59:43.5765518Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:59:43.5768330Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T20:59:43.5771158Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:59:43.5774207Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:59:43.5777566Z * [new branch] cbz/foundation-evidence-reconciliation-20261029 -> origin/cbz/foundation-evidence-reconciliation-20261029 +2026-10-29T20:59:43.5780991Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:59:43.5783941Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:59:43.5786819Z * [new branch] cbz/main-regression-skips-20261029 -> origin/cbz/main-regression-skips-20261029 +2026-10-29T20:59:43.5789989Z * [new branch] cbz/main-retire-superseded-20261029 -> origin/cbz/main-retire-superseded-20261029 +2026-10-29T20:59:43.5792698Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:59:43.5795917Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:59:43.5798670Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:59:43.5801483Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:59:43.5804246Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:59:43.5807164Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:59:43.5810393Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:59:43.5813432Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:59:43.5816164Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:59:43.5819113Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:59:43.5822465Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:59:43.5825670Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:59:43.5828746Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:59:43.5831335Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:59:43.5833878Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:59:43.5836430Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:59:43.5839287Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:59:43.5841825Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:59:43.5844505Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:59:43.5847458Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:59:43.5850009Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:59:43.5852645Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:59:43.5855163Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:59:43.5857906Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:59:43.5860880Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:59:43.5863495Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:59:43.5866184Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:59:43.5868924Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:59:43.5871479Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:59:43.5874526Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:59:43.5877600Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:59:43.5880068Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:59:43.5882212Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:59:43.5884372Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:59:43.5886755Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:59:43.5889488Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:59:43.5892170Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:59:43.5894701Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:59:43.5897145Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:59:43.5899729Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:59:43.5901922Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:59:43.5904213Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:59:43.5906449Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:59:43.5908861Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:59:43.5911354Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:59:43.5913754Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:59:43.5916305Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:59:43.5918898Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:59:43.5921051Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:59:43.5923506Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:59:43.5926007Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:59:43.5928617Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:59:43.5931034Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:59:43.5933525Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:59:43.5936104Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:59:43.5938664Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:59:43.5940690Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:59:43.5942750Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:59:43.5945134Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:59:43.5947909Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:59:43.5950113Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:59:43.5952277Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:59:43.5954284Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:59:43.5956390Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:59:43.5958863Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:59:43.5960968Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:59:43.5963173Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:59:43.5965852Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:59:43.5968353Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:59:43.5970571Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:59:43.5972764Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:59:43.5975254Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:59:43.5977887Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:59:43.5980403Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:59:43.5982958Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:59:43.5985456Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:59:43.5988057Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:59:43.5990682Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:59:43.5993316Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:59:43.5995853Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:59:43.5998469Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:59:43.6000834Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:59:43.6003802Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:59:43.6006424Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:59:43.6009113Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:59:43.6011596Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:59:43.6014074Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:59:43.6016477Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:59:43.6018909Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:59:43.6021281Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:59:43.6023608Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:59:43.6026105Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:59:43.6028876Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T20:59:43.6031072Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:59:43.6033454Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:59:43.6036172Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:59:43.6038787Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:59:43.6041656Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:59:43.6043998Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:59:43.6046078Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:59:43.6048871Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:59:43.6051843Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:59:43.6054885Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:59:43.6057733Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:59:43.6060171Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:59:43.6062228Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:59:43.6064557Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:59:43.6066933Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:59:43.6069325Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:59:43.6071830Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:59:43.6074016Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:59:43.6076256Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:59:43.6078826Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:59:43.6080904Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:59:43.6082997Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:59:43.6085531Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:59:43.6088411Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:59:43.6091263Z * [new branch] codex/public-intake-discovery-20261029 -> origin/codex/public-intake-discovery-20261029 +2026-10-29T20:59:43.6093411Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:59:43.6095500Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:59:43.6097936Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:59:43.6100518Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:59:43.6103358Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:59:43.6105745Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:59:43.6108373Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:59:43.6110875Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:59:43.6113221Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:59:43.6115536Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:59:43.6118392Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:59:43.6121093Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:59:43.6123185Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:59:43.6125153Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:59:43.6127660Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:59:43.6129859Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:59:43.6132111Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:59:43.6134469Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:59:43.6136699Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:59:43.6139595Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:59:43.6141849Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:59:43.6144184Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:59:43.6147057Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:59:43.6149781Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:59:43.6152346Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:59:43.6154566Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:59:43.6156948Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:59:43.6159851Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:59:43.6162052Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:59:43.6164290Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:59:43.6166619Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:59:43.6170109Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:59:43.6172817Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:59:43.6175160Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:59:43.6177637Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:59:43.6179740Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:59:43.6181872Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:59:43.6184244Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:59:43.6186673Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:59:43.6189160Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:59:43.6191369Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:59:43.6193974Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:59:43.6196820Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:59:43.6199733Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:59:43.6202443Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:59:43.6205287Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:59:43.6208161Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:59:43.6210777Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:59:43.6213019Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:59:43.6215372Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:59:43.6217998Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:59:43.6220308Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:59:43.6222821Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:59:43.6225387Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:59:43.6228055Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:59:43.6230176Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:59:43.6232163Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:59:43.6234396Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:59:43.6236681Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:59:43.6239676Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:59:43.6241831Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:59:43.6243889Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:59:43.6246082Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:59:43.6248269Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:59:43.6250329Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:59:43.6252695Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:59:43.6254926Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:59:43.6257516Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:59:43.6259993Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:59:43.6262334Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:59:43.6264525Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:59:43.6266753Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:59:43.6269237Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:59:43.6271710Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:59:43.6274132Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:59:43.6276264Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:59:43.6278543Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:59:43.6281005Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:59:43.6283322Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:59:43.6285482Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:59:43.6287776Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:59:43.6289732Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:59:43.6291748Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:59:43.6293765Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:59:43.6296359Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:59:43.6299522Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:59:43.6302048Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:59:43.6304966Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:59:43.6307465Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:59:43.6309915Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:59:43.6312430Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:59:43.6314491Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:59:43.6316450Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:59:43.6318715Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:59:43.6320974Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:59:43.6323137Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:59:43.6325413Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:59:43.6327948Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:59:43.6329992Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:59:43.6331821Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:59:43.6333851Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:59:43.6336055Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:59:43.6338391Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:59:43.6340576Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:59:43.6342675Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:59:43.6345044Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:59:43.6347121Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:59:43.6349331Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:59:43.6351387Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:59:43.6353640Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:59:43.6356258Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:59:43.6358857Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:59:43.6361265Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:59:43.6363675Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:59:43.6366493Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:59:43.6369254Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:59:43.6370963Z * [new branch] main -> origin/main +2026-10-29T20:59:43.6372938Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:59:43.6375377Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:59:43.6377778Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:59:43.6379877Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:59:43.6381774Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:59:43.6383643Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:59:43.6385227Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:59:43.6386812Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:59:43.6388647Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:59:43.6390173Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:59:43.6391859Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:59:43.6393412Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:59:43.6394876Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:59:43.6396401Z * [new ref] 590c601766d112f15b61a3e9e6990f0945db3812 -> pull/707/merge +2026-10-29T20:59:43.6399906Z ##[endgroup] +2026-10-29T20:59:43.6401190Z ##[group]Determining the checkout info +2026-10-29T20:59:43.6403025Z ##[endgroup] +2026-10-29T20:59:43.6403999Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:59:43.6406655Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:59:43.6409803Z ##[group]Checking out the ref +2026-10-29T20:59:43.6411070Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T20:59:43.8480715Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T20:59:43.8488243Z +2026-10-29T20:59:43.8488858Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T20:59:43.8489668Z changes and commit them, and you can discard any commits you make in this +2026-10-29T20:59:43.8490294Z state without impacting any branches by switching back to a branch. +2026-10-29T20:59:43.8490674Z +2026-10-29T20:59:43.8490999Z If you want to create a new branch to retain commits you create, you may +2026-10-29T20:59:43.8491636Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T20:59:43.8491992Z +2026-10-29T20:59:43.8492155Z git switch -c +2026-10-29T20:59:43.8492467Z +2026-10-29T20:59:43.8492633Z Or undo this operation with: +2026-10-29T20:59:43.8492956Z +2026-10-29T20:59:43.8493112Z git switch - +2026-10-29T20:59:43.8493303Z +2026-10-29T20:59:43.8493710Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T20:59:43.8494048Z +2026-10-29T20:59:43.8494540Z HEAD is now at 590c6017 Merge 3598f413da9be44263c2c6e853c7245012ee42f6 into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T20:59:43.8507756Z ##[endgroup] +2026-10-29T20:59:43.8549978Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:59:43.8574886Z 590c601766d112f15b61a3e9e6990f0945db3812 +2026-10-29T20:59:43.8583005Z ##[group]Removing auth +2026-10-29T20:59:43.8584239Z Removing SSH command configuration +2026-10-29T20:59:43.8587491Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:59:43.8618311Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:59:43.8822111Z Removing HTTP extra header +2026-10-29T20:59:43.8824231Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:59:43.8854533Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:59:43.9058359Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:59:43.9061025Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:59:43.9084611Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:59:43.9085510Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:59:43.9086067Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:59:43.9086998Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:59:43.9092463Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:59:43.9115551Z /home/runner/work/_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:43.9124405Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-4ffc4202\-bdc9\-44a2\-8c05\-50043fdecc73\.config +2026-10-29T20:59:43.9160481Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:59:43.9183828Z /home/runner/work/_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:43.9191050Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-4ffc4202\-bdc9\-44a2\-8c05\-50043fdecc73\.config +2026-10-29T20:59:43.9223591Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:59:43.9246647Z /github/runner_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:43.9254252Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-4ffc4202\-bdc9\-44a2\-8c05\-50043fdecc73\.config +2026-10-29T20:59:43.9285842Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:59:43.9309554Z /github/runner_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config +2026-10-29T20:59:43.9324461Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-4ffc4202\-bdc9\-44a2\-8c05\-50043fdecc73\.config +2026-10-29T20:59:43.9350792Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:59:43.9559068Z Removing credentials config '/home/runner/work/_temp/git-credentials-4ffc4202-bdc9-44a2-8c05-50043fdecc73.config' +2026-10-29T20:59:43.9569060Z ##[endgroup] +2026-10-29T20:59:43.9847871Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:59:43.9848691Z with: +2026-10-29T20:59:43.9849037Z python-version: 3.11 +2026-10-29T20:59:43.9849403Z check-latest: false +2026-10-29T20:59:43.9852335Z token: *** +2026-10-29T20:59:43.9852731Z update-environment: true +2026-10-29T20:59:43.9853269Z allow-prereleases: false +2026-10-29T20:59:43.9853589Z freethreaded: false +2026-10-29T20:59:43.9853932Z ##[endgroup] +2026-10-29T20:59:44.0817806Z ##[group]Installed versions +2026-10-29T20:59:44.0891726Z Successfully set up CPython (3.11.17) +2026-10-29T20:59:44.0892750Z ##[endgroup] +2026-10-29T20:59:44.1041089Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:59:44.1042189Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:59:44.1274472Z shell: /usr/bin/bash -e {0} +2026-10-29T20:59:44.1275108Z env: +2026-10-29T20:59:44.1275490Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:44.1276173Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:59:44.1276725Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:44.1277484Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:44.1278029Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:44.1278512Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:59:44.1279059Z ##[endgroup] +2026-10-29T20:59:45.5513178Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:59:45.5519929Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:59:45.5521243Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:59:45.5522584Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:59:45.5531949Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... FAIL +2026-10-29T20:59:45.5538627Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:59:45.5548657Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:59:45.5549633Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:59:45.5550601Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:59:45.5551500Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:59:45.5552397Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:59:45.5553326Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:59:45.5554373Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:59:45.5555346Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:59:45.8968862Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:59:45.9156063Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:59:46.0957811Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:59:46.1174953Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:59:46.1328074Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:59:46.1483620Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:59:46.1653755Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:59:46.1811672Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:59:46.3276795Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:59:46.3442897Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:59:46.3667638Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:59:46.3858074Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:59:46.4027097Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:59:46.4201211Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:59:46.4440909Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:59:46.4608576Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:59:46.5131410Z test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T20:59:46.5302960Z test_poisoned_runner_bytecode_cannot_execute_in_test_loader (test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) ... FAIL +2026-10-29T20:59:46.5474963Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:59:46.5659565Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:59:46.6645040Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:59:46.6806866Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:59:46.7033085Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:59:46.7284232Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:59:46.7521522Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:59:46.7768717Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:59:46.8489329Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:59:46.8742884Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:59:46.8910136Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:59:46.9077728Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:59:46.9356864Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:59:46.9522997Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:59:46.9699541Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:59:49.8181869Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:59:50.4974543Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:59:51.5851266Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... FAIL +2026-10-29T20:59:51.5852311Z +2026-10-29T20:59:51.5852532Z ====================================================================== +2026-10-29T20:59:51.5853473Z FAIL: test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) +2026-10-29T20:59:51.5854343Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5854762Z Traceback (most recent call last): +2026-10-29T20:59:51.5862120Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 660, in test_fixture_receipt_requires_successful_node_exit +2026-10-29T20:59:51.5862921Z self.assertFalse(receipt.exists(), mutation) +2026-10-29T20:59:51.5863456Z AssertionError: True is not false : fixture-domain +2026-10-29T20:59:51.5863750Z +2026-10-29T20:59:51.5863872Z ====================================================================== +2026-10-29T20:59:51.5864682Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T20:59:51.5865460Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5865834Z Traceback (most recent call last): +2026-10-29T20:59:51.5866598Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 204, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T20:59:51.5867651Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T20:59:51.5868222Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T20:59:51.5868512Z +2026-10-29T20:59:51.5868674Z ====================================================================== +2026-10-29T20:59:51.5869449Z FAIL: test_poisoned_runner_bytecode_cannot_execute_in_test_loader (test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) +2026-10-29T20:59:51.5870308Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5870686Z Traceback (most recent call last): +2026-10-29T20:59:51.5871416Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 174, in test_poisoned_runner_bytecode_cannot_execute_in_test_loader +2026-10-29T20:59:51.5872211Z self.assertFalse(getattr(module, "POISON_RUNNER", False)) +2026-10-29T20:59:51.5872604Z AssertionError: True is not false +2026-10-29T20:59:51.5872769Z +2026-10-29T20:59:51.5873006Z ====================================================================== +2026-10-29T20:59:51.5874050Z FAIL: test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) +2026-10-29T20:59:51.5874857Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5875319Z Traceback (most recent call last): +2026-10-29T20:59:51.5875998Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 739, in test_unmodified_copied_source_passes +2026-10-29T20:59:51.5876833Z self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +2026-10-29T20:59:51.5877932Z AssertionError: 1 != 0 : test_all_byte_identities_are_required (tests.test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:59:51.5879104Z test_ambient_git_redirect_cannot_select_another_object_database (tests.test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:59:51.5880356Z test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:59:51.5881325Z test_clean_snapshot_binds_head (tests.test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:59:51.5882263Z test_duplicate_config_keys_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:59:51.5883184Z test_existing_output_is_never_overwritten (tests.test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:59:51.5884190Z test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:59:51.5885226Z test_invalid_descriptor_domains_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:59:51.5886275Z test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:59:51.5887556Z test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:59:51.5888668Z test_materialization_checks_every_input_before_writing (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:59:51.5889728Z test_materialization_preserves_exact_bytes (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:59:51.5890780Z test_missing_executable_is_an_execution_error (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:59:51.5891930Z test_missing_historical_object_does_not_fall_back_to_worktree (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:59:51.5893123Z test_node_command_enumerates_every_tracked_test (tests.test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:59:51.5894111Z test_output_in_any_source_root_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:59:51.5895153Z test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T20:59:51.5896394Z test_poisoned_runner_bytecode_cannot_execute_in_test_loader (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) ... FAIL +2026-10-29T20:59:51.5897638Z test_preflight_failure_produces_fail_report (tests.test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:59:51.5898782Z test_reads_immutable_blob_instead_of_dirty_working_copy (tests.test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:59:51.5900320Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:59:51.5901405Z test_report_is_atomic_and_keeps_running_distinct_from_pass (tests.test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:59:51.5902586Z test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:59:51.5903647Z test_snapshot_detects_assume_unchanged_source_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:59:51.5904829Z test_snapshot_detects_hidden_executable_mode_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:59:51.5905929Z test_snapshot_detects_index_and_untracked_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:59:51.5906966Z test_subprocess_exit_and_output_are_preserved (tests.test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:59:51.5908420Z test_symlink_is_not_admitted_as_a_regular_fixture (tests.test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:59:51.5909456Z test_tap_missing_or_duplicate_fields_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:59:51.5910584Z test_tap_requires_nonzero_complete_all_passed_summary (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:59:51.5911766Z test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:59:51.5912761Z test_url_alias_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:59:51.5913663Z test_zero_tracked_node_tests_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:59:51.5914169Z +2026-10-29T20:59:51.5914293Z ====================================================================== +2026-10-29T20:59:51.5915108Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T20:59:51.5915890Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5916250Z Traceback (most recent call last): +2026-10-29T20:59:51.5917114Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 204, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T20:59:51.5918102Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T20:59:51.5918612Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T20:59:51.5918926Z +2026-10-29T20:59:51.5919066Z ====================================================================== +2026-10-29T20:59:51.5919828Z FAIL: test_poisoned_runner_bytecode_cannot_execute_in_test_loader (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) +2026-10-29T20:59:51.5920724Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5921103Z Traceback (most recent call last): +2026-10-29T20:59:51.5921849Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 174, in test_poisoned_runner_bytecode_cannot_execute_in_test_loader +2026-10-29T20:59:51.5922558Z self.assertFalse(getattr(module, "POISON_RUNNER", False)) +2026-10-29T20:59:51.5922962Z AssertionError: True is not false +2026-10-29T20:59:51.5923495Z +2026-10-29T20:59:51.5923777Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5924164Z Ran 33 tests in 1.008s +2026-10-29T20:59:51.5924307Z +2026-10-29T20:59:51.5924461Z FAILED (failures=2) +2026-10-29T20:59:51.5924634Z +2026-10-29T20:59:51.5924638Z +2026-10-29T20:59:51.5924789Z ---------------------------------------------------------------------- +2026-10-29T20:59:51.5925186Z Ran 50 tests in 6.034s +2026-10-29T20:59:51.5925375Z +2026-10-29T20:59:51.5925482Z FAILED (failures=4) +2026-10-29T20:59:51.6004757Z ##[error]Process completed with exit code 1. +2026-10-29T20:59:51.6083366Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:59:51.6084254Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:59:51.6132826Z shell: /usr/bin/bash -e {0} +2026-10-29T20:59:51.6133320Z env: +2026-10-29T20:59:51.6133647Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:51.6134209Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:59:51.6134725Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:51.6135138Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:51.6135625Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:59:51.6136051Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:59:51.6136467Z ##[endgroup] +2026-10-29T20:59:53.2390950Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:59:53.2398244Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:59:53.2399330Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:59:53.2401710Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:59:53.2411200Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... FAIL +2026-10-29T20:59:53.2412229Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:59:53.2413382Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:59:53.2418591Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:59:53.2438416Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:59:53.2444795Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:59:53.2445784Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:59:53.2446820Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:59:53.2448040Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:59:53.2449018Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:59:53.7070462Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:59:53.7251543Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:59:53.8306297Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:59:53.8526140Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:59:53.8684954Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:59:53.8842240Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:59:53.9009790Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:59:53.9164598Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:59:54.4595836Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:59:54.4767155Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:59:54.4994878Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:59:54.5191037Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:59:54.5363063Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:59:54.5543739Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:59:54.5785019Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:59:54.5954400Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:59:54.7602324Z test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T20:59:54.7769096Z test_poisoned_runner_bytecode_cannot_execute_in_test_loader (test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) ... FAIL +2026-10-29T20:59:54.7942052Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:59:54.8122901Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:59:54.9118597Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:59:54.9293611Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:59:54.9539808Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:59:54.9786043Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:59:55.0016529Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:59:55.0257210Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:59:55.0512560Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:59:55.0791401Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:59:55.0962354Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:59:55.1121717Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:59:55.1393080Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:59:55.1543902Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:59:55.1706349Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T21:00:03.6090501Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T21:00:05.6988981Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T21:00:07.5169242Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... FAIL +2026-10-29T21:00:07.5169913Z +2026-10-29T21:00:07.5170505Z ====================================================================== +2026-10-29T21:00:07.5171264Z FAIL: test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) +2026-10-29T21:00:07.5172005Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5172432Z Traceback (most recent call last): +2026-10-29T21:00:07.5173337Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 660, in test_fixture_receipt_requires_successful_node_exit +2026-10-29T21:00:07.5174115Z self.assertFalse(receipt.exists(), mutation) +2026-10-29T21:00:07.5174490Z AssertionError: True is not false : fixture-domain +2026-10-29T21:00:07.5174731Z +2026-10-29T21:00:07.5174842Z ====================================================================== +2026-10-29T21:00:07.5175627Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T21:00:07.5176448Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5176833Z Traceback (most recent call last): +2026-10-29T21:00:07.5177888Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 204, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T21:00:07.5178544Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T21:00:07.5179025Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T21:00:07.5179355Z +2026-10-29T21:00:07.5179487Z ====================================================================== +2026-10-29T21:00:07.5180306Z FAIL: test_poisoned_runner_bytecode_cannot_execute_in_test_loader (test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) +2026-10-29T21:00:07.5181086Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5181439Z Traceback (most recent call last): +2026-10-29T21:00:07.5182741Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 174, in test_poisoned_runner_bytecode_cannot_execute_in_test_loader +2026-10-29T21:00:07.5183460Z self.assertFalse(getattr(module, "POISON_RUNNER", False)) +2026-10-29T21:00:07.5183882Z AssertionError: True is not false +2026-10-29T21:00:07.5184099Z +2026-10-29T21:00:07.5184245Z ====================================================================== +2026-10-29T21:00:07.5184849Z FAIL: test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) +2026-10-29T21:00:07.5185875Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5186292Z Traceback (most recent call last): +2026-10-29T21:00:07.5186941Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 739, in test_unmodified_copied_source_passes +2026-10-29T21:00:07.5187901Z self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +2026-10-29T21:00:07.5188713Z AssertionError: 1 != 0 : test_all_byte_identities_are_required (tests.test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T21:00:07.5189962Z test_ambient_git_redirect_cannot_select_another_object_database (tests.test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T21:00:07.5191126Z test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T21:00:07.5192093Z test_clean_snapshot_binds_head (tests.test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T21:00:07.5192945Z test_duplicate_config_keys_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T21:00:07.5193866Z test_existing_output_is_never_overwritten (tests.test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T21:00:07.5194963Z test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T21:00:07.5195953Z test_invalid_descriptor_domains_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T21:00:07.5197000Z test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T21:00:07.5198551Z test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T21:00:07.5199707Z test_materialization_checks_every_input_before_writing (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T21:00:07.5200845Z test_materialization_preserves_exact_bytes (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T21:00:07.5201847Z test_missing_executable_is_an_execution_error (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T21:00:07.5202983Z test_missing_historical_object_does_not_fall_back_to_worktree (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T21:00:07.5204124Z test_node_command_enumerates_every_tracked_test (tests.test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T21:00:07.5205142Z test_output_in_any_source_root_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T21:00:07.5206221Z test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T21:00:07.5207827Z test_poisoned_runner_bytecode_cannot_execute_in_test_loader (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) ... FAIL +2026-10-29T21:00:07.5208995Z test_preflight_failure_produces_fail_report (tests.test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T21:00:07.5210075Z test_reads_immutable_blob_instead_of_dirty_working_copy (tests.test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T21:00:07.5211306Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T21:00:07.5212437Z test_report_is_atomic_and_keeps_running_distinct_from_pass (tests.test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T21:00:07.5213515Z test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T21:00:07.5214714Z test_snapshot_detects_assume_unchanged_source_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T21:00:07.5215884Z test_snapshot_detects_hidden_executable_mode_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T21:00:07.5216996Z test_snapshot_detects_index_and_untracked_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T21:00:07.5218327Z test_subprocess_exit_and_output_are_preserved (tests.test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T21:00:07.5219371Z test_symlink_is_not_admitted_as_a_regular_fixture (tests.test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T21:00:07.5220433Z test_tap_missing_or_duplicate_fields_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T21:00:07.5221534Z test_tap_requires_nonzero_complete_all_passed_summary (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T21:00:07.5222726Z test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T21:00:07.5223775Z test_url_alias_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T21:00:07.5224597Z test_zero_tracked_node_tests_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T21:00:07.5225092Z +2026-10-29T21:00:07.5225239Z ====================================================================== +2026-10-29T21:00:07.5226034Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T21:00:07.5226813Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5227226Z Traceback (most recent call last): +2026-10-29T21:00:07.5228174Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 204, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T21:00:07.5228949Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T21:00:07.5229419Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T21:00:07.5229701Z +2026-10-29T21:00:07.5229822Z ====================================================================== +2026-10-29T21:00:07.5230642Z FAIL: test_poisoned_runner_bytecode_cannot_execute_in_test_loader (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_runner_bytecode_cannot_execute_in_test_loader) +2026-10-29T21:00:07.5231669Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5232608Z Traceback (most recent call last): +2026-10-29T21:00:07.5233340Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 174, in test_poisoned_runner_bytecode_cannot_execute_in_test_loader +2026-10-29T21:00:07.5234029Z self.assertFalse(getattr(module, "POISON_RUNNER", False)) +2026-10-29T21:00:07.5234434Z AssertionError: True is not false +2026-10-29T21:00:07.5234628Z +2026-10-29T21:00:07.5234943Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5235374Z Ran 33 tests in 1.579s +2026-10-29T21:00:07.5235525Z +2026-10-29T21:00:07.5235634Z FAILED (failures=2) +2026-10-29T21:00:07.5235762Z +2026-10-29T21:00:07.5235766Z +2026-10-29T21:00:07.5235930Z ---------------------------------------------------------------------- +2026-10-29T21:00:07.5236309Z Ran 50 tests in 14.278s +2026-10-29T21:00:07.5236473Z +2026-10-29T21:00:07.5236562Z FAILED (failures=4) +2026-10-29T21:00:07.5337972Z ##[error]Process completed with exit code 1. +2026-10-29T21:00:07.5383117Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T21:00:07.5383963Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T21:00:07.5384638Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T21:00:07.5418878Z shell: /usr/bin/bash -e {0} +2026-10-29T21:00:07.5419333Z env: +2026-10-29T21:00:07.5419692Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:07.5420204Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:00:07.5420697Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:07.5421122Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:07.5421606Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:07.5422166Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:00:07.5422576Z ##[endgroup] +2026-10-29T21:00:07.5490085Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T21:00:09.0545396Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T21:00:09.3972435Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T21:00:09.3973651Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T21:00:09.4010349Z shell: /usr/bin/bash -e {0} +2026-10-29T21:00:09.4010649Z env: +2026-10-29T21:00:09.4011133Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:09.4011638Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:00:09.4012213Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:09.4012640Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:09.4013060Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:09.4013610Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:00:09.4014068Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T21:00:09.4014636Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T21:00:09.4014929Z ##[endgroup] +2026-10-29T21:00:15.5040399Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T21:00:15.5202312Z ##[group]Run python -B -S - <<'PY' +2026-10-29T21:00:15.5202824Z python -B -S - <<'PY' +2026-10-29T21:00:15.5203190Z import hashlib, json, os +2026-10-29T21:00:15.5203566Z from pathlib import Path +2026-10-29T21:00:15.5203934Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T21:00:15.5204697Z record = json.loads((root / "result.json").read_text()) +2026-10-29T21:00:15.5205170Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T21:00:15.5205628Z raw = (root / "node.tap").read_bytes() +2026-10-29T21:00:15.5206028Z def verify_log(value): +2026-10-29T21:00:15.5206392Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T21:00:15.5206934Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T21:00:15.5207766Z verify_log(raw) +2026-10-29T21:00:15.5208177Z try: +2026-10-29T21:00:15.5208420Z  verify_log(raw + b"\0") +2026-10-29T21:00:15.5208708Z except ValueError: +2026-10-29T21:00:15.5209071Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T21:00:15.5209395Z else: +2026-10-29T21:00:15.5209764Z  raise SystemExit("modified transcript was admitted") +2026-10-29T21:00:15.5210173Z text = raw.decode("utf-8") +2026-10-29T21:00:15.5210518Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T21:00:15.5210986Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T21:00:15.5211401Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T21:00:15.5211850Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T21:00:15.5212281Z for number, chunk in enumerate(chunks): +2026-10-29T21:00:15.5212700Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T21:00:15.5213134Z PY +2026-10-29T21:00:15.5245751Z shell: /usr/bin/bash -e {0} +2026-10-29T21:00:15.5246069Z env: +2026-10-29T21:00:15.5246381Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.5246917Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:00:15.5247798Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.5248294Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.5248728Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.5249163Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:00:15.5249600Z ##[endgroup] +2026-10-29T21:00:15.5745512Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T21:00:15.488528+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "68fe8d799a6cc33ba47079c7bb8ac0698e122c284c1417e0c442e9e8570f5c7c", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "590c601766d112f15b61a3e9e6990f0945db3812", "source_before": "590c601766d112f15b61a3e9e6990f0945db3812", "started_utc": "2026-10-29T21:00:09.461558+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T21:00:15.5784410Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T21:00:15.5784652Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T21:00:15.5784913Z CBZ_NODE_TAP_GIT_BLOB 177302b1cf5e6d5539c52c2f42023cb2133a7815 +2026-10-29T21:00:15.5798119Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 30.781148\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 27.414731\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.662577\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 3.692126\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.087762\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.5709\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.58574\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.163431\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.577011\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.679376\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.532365\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.064531\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.805932\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.457592\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 5.243119\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.739942\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.638705\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 2.956584\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.000493\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.573164\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit bri" +2026-10-29T21:00:15.5824117Z CBZ_NODE_TAP_JSON 1 "dge\n ---\n duration_ms: 0.598203\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.264844\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.55882\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.777885\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.528526\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.086426\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.869026\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.831258\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.968134\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.237028\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.21459\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.734494\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.79914\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 4.756392\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 1.70214\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.302501\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.354011\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.365395\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.361627\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.219592\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot remains" +2026-10-29T21:00:15.5850121Z CBZ_NODE_TAP_JSON 2 " a visible reading action\n ---\n duration_ms: 0.125699\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.188065\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.307658\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.254159\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.175818\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 1.863086\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.757901\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 0.98835\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.137944\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 0.902689\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 0.994845\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 1.789857\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.782594\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.478519\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.467333\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.327201\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.312909\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.043635\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are determi" +2026-10-29T21:00:15.5875948Z CBZ_NODE_TAP_JSON 3 "nistic and inputs remain unchanged\n ---\n duration_ms: 1.008444\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.309341\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.225616\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 4.26961\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.507056\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 2.131885\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.302982\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 3.906855\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.600095\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.667008\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.942343\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.718295\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.245068\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.977013\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.113489\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.143267\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 9.991785\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 10.482623\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 650.255525\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history state; " +2026-10-29T21:00:15.5901815Z CBZ_NODE_TAP_JSON 4 "share link only includes filters\n ---\n duration_ms: 42.001969\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 32.347501\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 34.044857\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 24.038321\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 25.644377\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 30.871513\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 4.353279\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 24.053705\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 23.922558\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 24.054449\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 19.859781\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 10.932904\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 9.36391\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 5.207152\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.101918\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 9.656708\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.815883\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.191998\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.725982\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers use " +2026-10-29T21:00:15.5927803Z CBZ_NODE_TAP_JSON 5 "distinct identities and ordinary, non-live count spans\n ---\n duration_ms: 6.426774\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 16.106537\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 2.883866\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.3746\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.794281\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.188046\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 1.151367\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 1.009549\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 1.758602\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 1.679725\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.524314\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 0.990437\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 1.048787\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.90608\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.737334\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.819667\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 2.944912\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.844978\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.653377\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 1.129544\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 1.072858\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 5.60229\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.761477\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.447288\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 0.456976\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid range\n " +2026-10-29T21:00:15.5953931Z CBZ_NODE_TAP_JSON 6 " ---\n duration_ms: 0.434481\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.438049\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 0.495902\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.197529\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 0.676176\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.52487\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 2.770934\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 0.860897\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 3.025166\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 0.692808\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.732126\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 1.822808\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.584428\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.534549\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.488639\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.602378\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.601051\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.825315\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.723102\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.718567\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.552294\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 9.429076\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort sig" +2026-10-29T21:00:15.5979908Z CBZ_NODE_TAP_JSON 7 "nal\n ---\n duration_ms: 1.958451\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.590088\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.168167\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.47068\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.270935\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 2.954104\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 1.133888\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.885601\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.807395\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.601947\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 11.981618\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 1.991306\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 11.366008\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.446229\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.577923\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.3245\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 1.638862\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 3.529332\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.824227\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.831738\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can con" +2026-10-29T21:00:15.6005648Z CBZ_NODE_TAP_JSON 8 "struct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.64305\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.774901\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.304197\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.22816\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.553061\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.470991\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.18405\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.27911\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.149259\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.639986\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 157.715784\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.342492\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.389467\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.271163\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.581611\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.432161\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.319957\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewriting th" +2026-10-29T21:00:15.6031677Z CBZ_NODE_TAP_JSON 9 "e address\n ---\n duration_ms: 0.272686\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.797364\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.601611\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.420361\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.416521\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.24716\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.332468\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.275623\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.531165\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.392866\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.502735\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.359955\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.650569\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 7.858332\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 0.817724\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.69788\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 0.918023\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.684496\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.5" +2026-10-29T21:00:15.6057477Z CBZ_NODE_TAP_JSON 10 "41237\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 0.548628\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.487119\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.661873\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.499511\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.593227\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.507926\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.61541\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.51795\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.539229\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.53147\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.519381\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.469248\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.529005\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.599099\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.619483\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.485279\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.522013\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.474423\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 0.671961\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.565292\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.556428\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.15945\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 2.748607\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.735231\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 0.623562\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.553612\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.605987\n type: 'test'\n ...\n# Subtest: acquisition: independ" +2026-10-29T21:00:15.6083413Z CBZ_NODE_TAP_JSON 11 "ent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.804977\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.551196\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.564444\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.527629\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.513366\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.436217\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.489054\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.52131\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.971814\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.460608\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.491959\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.219425\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.724654\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.087253\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.147314\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.412737\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.17981\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.403602\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 2.468961\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 1.742043\n type: 'test'\n ...\n# Subtest: equation " +2026-10-29T21:00:15.6110395Z CBZ_NODE_TAP_JSON 12 "and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.156683\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.115316\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.561309\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 12.454082\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.483343\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.176034\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.268782\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.302421\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 5.130332\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.557077\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 3.850024\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.358684\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 0.892032\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.812948\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 14.467891\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 4.950306\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 4.181557\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_ms: " +2026-10-29T21:00:15.6136690Z CBZ_NODE_TAP_JSON 13 "6.30869\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 11.128864\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 27.058031\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 18.552243\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 12.550166\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 2.393252\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.183025\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.474375\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.452552\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 44.272657\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 3.185295\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 4.237147\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.138373\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.493175\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.261359\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.486958\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.746493\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.201601\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - only" +2026-10-29T21:00:15.6162783Z CBZ_NODE_TAP_JSON 14 " exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.486383\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.188737\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.025804\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 171.4783\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.136304\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.40181\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.942707\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.551068\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.525309\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.322324\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.437425\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 1.399623\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.719255\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.984861\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.399594\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.220472\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.301213\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.206928\n type: 'test'\n ...\n# Subtest: w" +2026-10-29T21:00:15.6188707Z CBZ_NODE_TAP_JSON 15 "idening the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.458328\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.290606\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.483207\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.265455\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.121032\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 3.758884\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 6.281443\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 4.012267\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.564564\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.426345\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.275812\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 2.386572\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.688344\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.097818\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.20775\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 2.636203\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 3.870648\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---\n " +2026-10-29T21:00:15.6214788Z CBZ_NODE_TAP_JSON 16 "duration_ms: 0.356603\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.245799\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.275246\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.28003\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.402898\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.237376\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 1.611184\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.510294\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 19.098567\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 1.58168\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.134125\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.031504\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 3.065708\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 1.93798\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 2.855395\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 110.99546\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 166.658957\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-evi" +2026-10-29T21:00:15.6240885Z CBZ_NODE_TAP_JSON 17 "dence after 0 ms digest delay\n ---\n duration_ms: 13.307004\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 162.299279\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 22.090574\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 163.287668\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 14.975696\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 166.798608\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 3.098579\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 1.09185\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 1.077458\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.644234\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 1.738971\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 0.893001\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 1.316034\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 1.838568\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 1.630983\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 2.56699\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 2.280592\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 0.970589\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and labels t" +2026-10-29T21:00:15.6266813Z CBZ_NODE_TAP_JSON 18 "he snapshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 0.547917\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 1.535314\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.273651\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 1.334169\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 2.09731\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 1.720899\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 2.884386\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 0.872529\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 6.590424\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.420917\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 0.89184\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.505934\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.293701\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.462535\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.709767\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 1.840967\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 0.316541\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - inv" +2026-10-29T21:00:15.6292972Z CBZ_NODE_TAP_JSON 19 "alid choices cannot invent regions or objects\n ---\n duration_ms: 0.560348\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.881217\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.450005\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.141451\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 3.781131\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 2.003745\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 1.599311\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 2.202826\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 0.961654\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.428\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.058931\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.494078\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.833266\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 2.193347\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.300622\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.453768\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.666057\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.786105\n type: 'test'\n ...\n# S" +2026-10-29T21:00:15.6319012Z CBZ_NODE_TAP_JSON 20 "ubtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 8.480893\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.462077\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.516942\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.355564\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.201185\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.045603\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.307645\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.251559\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.375197\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.368411\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.229016\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.382779\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.329669\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.799316\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.511542\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.405074\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.454957\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.197957\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.18" +2026-10-29T21:00:15.6344701Z CBZ_NODE_TAP_JSON 21 "2343\n type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 9.033354\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.096402\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 0.942511\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 0.98687\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.397548\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.364372\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.352332\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.423329\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.916416\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 2.979239\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.127856\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 1.741586\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 3.426407\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.377264\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.428913\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.40129\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 2.074135\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.246068\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 69.020674\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 29.816879\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 64.875476\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 121.781105\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and malf" +2026-10-29T21:00:15.6370277Z CBZ_NODE_TAP_JSON 22 "ormed hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 104.108343\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 59.448507\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 30.923448\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.141312\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.502439\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 0.915407\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.352146\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 32.134893\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 13.185216\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 4.217155\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 5.306549\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 2.264137\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 1.445405\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.557748\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 4.254099\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 6.376119\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 1.653974\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.155975\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: " +2026-10-29T21:00:15.6395596Z CBZ_NODE_TAP_JSON 23 "6.990986\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.474073\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.020009\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.907405\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.866315\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.373229\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.693696\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.538493\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.771813\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.491454\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.361531\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 6.962491\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.1334\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 0.809172\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 2.090167\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.326574\n type: 'test'" +2026-10-29T21:00:15.6421420Z CBZ_NODE_TAP_JSON 24 "\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.730558\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.601503\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.642734\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 5.868761\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.006333\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.267991\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 39.292305\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 9.32372\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 6.062835\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 9.48797\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.369032\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 5.749966\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 6.215053\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 5.310885\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 0.91036\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.869105\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.514998\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified replay " +2026-10-29T21:00:15.6447164Z CBZ_NODE_TAP_JSON 25 "source\n ---\n duration_ms: 3.897991\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.709895\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.355372\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 2.027801\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 0.878849\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 15.708455\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 2.8539\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.057939\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 2.834028\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.095082\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 6.959627\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 5.832635\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.882681\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.260875\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 9.295721\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 9.831669\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 4.911243\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.061587\n type: 'te" +2026-10-29T21:00:15.6473043Z CBZ_NODE_TAP_JSON 26 "st'\n ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 12.375085\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.134597\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 14.259002\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 4.692347\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 7.074311\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 8.123306\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 7.773095\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 7.704625\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 7.34347\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.731283\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.437632\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.362923\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.487959\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.465055\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 3.178072\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.684464\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.697456\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.708652\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view throu" +2026-10-29T21:00:15.6498941Z CBZ_NODE_TAP_JSON 27 "gh 3D, 2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 3.928038\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.228325\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 6.397951\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 38.71027\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 174.908627\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 348.21755\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1024.183914\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 259.321095\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 387.415386\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 137.070527\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 527.050879\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 176.442493\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.378999\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 150.008799\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 3.537955\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.684312\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.242536\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.542482\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n duratio" +2026-10-29T21:00:15.6524986Z CBZ_NODE_TAP_JSON 28 "n_ms: 0.560268\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.707591\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.062088\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 18.401112\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 1.930084\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.191734\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 1.013476\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 2.438874\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 1.962203\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.879545\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.546892\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 11.072242\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 2.844268\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.358313\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.828891\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 2.620652\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 12.209874\n type: 'test'\n ...\n# Sub" +2026-10-29T21:00:15.6550750Z CBZ_NODE_TAP_JSON 29 "test: query view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 0.236704\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.490168\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 0.999821\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.298462\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.497313\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.490275\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.50615\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.909784\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.719239\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.14516\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.427118\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.105505\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.116044\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 12.102854\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 14.377678\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 38.285637\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 3.728349\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 1.601679\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.388402\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.169146\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.311637\n type: 'test'\n ...\n# Subtest: " +2026-10-29T21:00:15.6576549Z CBZ_NODE_TAP_JSON 30 "status snapshot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 0.815155\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.222648\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.195697\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.10298\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.213633\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.146515\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.112324\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.218857\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.190945\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.214217\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.203265\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.187766\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.4508\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.161623\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.583729\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.549844\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.242325\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.568972\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.625922\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 12.193531\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.242248\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 79.682683\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through" +2026-10-29T21:00:15.6602534Z CBZ_NODE_TAP_JSON 31 " pagination and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 57.911425\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 43.502261\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 85.625673\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 144.41294\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.626506\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 29.348046\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.189897\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 35.906912\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.244021\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.945424\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.734241\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.229652\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.667271\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.142037\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 24.19334\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 26.340353\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 20.445072\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 21.737779\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused con" +2026-10-29T21:00:15.6628436Z CBZ_NODE_TAP_JSON 32 "figuration still reveals the requested unavailable section\n ---\n duration_ms: 1.492963\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 24.776791\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 20.196481\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 22.924601\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.53677\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 24.43426\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 19.373702\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.219312\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 29.877044\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.384951\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 23.048941\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 26.289331\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 23.294276\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 27.283279\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 25.655521\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 21.420293\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 25.269134\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 5.123196\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 25.058126\n type: 'test'\n " +2026-10-29T21:00:15.6654526Z CBZ_NODE_TAP_JSON 33 "...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 22.42269\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 25.658041\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.435553\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.1115\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 0.619731\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.22612\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.604616\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 3.298108\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.996733\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.914208\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.945903\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.221925\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.599545\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.461304\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.229844\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.582371\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.588867\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 1.495379\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable co" +2026-10-29T21:00:15.6680596Z CBZ_NODE_TAP_JSON 34 "mmit\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 1.179471\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.601251\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.310817\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.349129\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.778453\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.349995\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.418729\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.229248\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.268263\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.56354\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.728502\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 4.977753\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.536997\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 0.52703\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 1.000308\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 3.677263\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.497094\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 3.229695\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 6.961723\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - compari" +2026-10-29T21:00:15.6706534Z CBZ_NODE_TAP_JSON 35 "son model is implemented\n ---\n duration_ms: 6.556289\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.427592\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 328.769131\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 1.851551\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.654713\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 35.573803\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 28.141658\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 3.148913\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 16.272355\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 37.834612\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 2.613964\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.861474\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 7.840268\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 0.61101\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 7.771495\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 73.071604\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.481943\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.267171\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.389058\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, encode" +2026-10-29T21:00:15.6732734Z CBZ_NODE_TAP_JSON 36 "d traversal and malformed identities stay literal\n ---\n duration_ms: 0.533653\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.688501\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.456709\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.065603\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 1.786689\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.4719\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.257607\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.145368\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 0.968358\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.39153\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.244207\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.804964\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 1.427614\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 0.669088\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.367123\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 10.615611\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.324125\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.475799\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields\n " +2026-10-29T21:00:15.6759015Z CBZ_NODE_TAP_JSON 37 "---\n duration_ms: 0.821747\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.503031\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.657297\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.528213\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.621034\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.353571\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.417178\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.319173\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.266078\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.769676\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.528813\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.562108\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 12.057208\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 3.805714\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.171598\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 2.149836\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.47766\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok 72" +2026-10-29T21:00:15.6785223Z CBZ_NODE_TAP_JSON 38 "1 - capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.139232\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.115105\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.748438\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.290941\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.732555\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 4.388621\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.811208\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.347756\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.466535\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.495095\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.116841\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.387354\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.261663\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.436897\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.310149\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 77.77375\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 56.185774\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 41.01" +2026-10-29T21:00:15.6811507Z CBZ_NODE_TAP_JSON 39 "7924\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 76.413446\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 136.492484\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.152876\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.559181\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.06735\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.152172\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.497989\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.574551\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.289632\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.641603\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.326376\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.985146\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 22.876394\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 19.974713\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 22.821029\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 23.514916\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.642711\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 19.335767\n type: 'test'\n ...\n# Subtest: reader movement between source settlemen" +2026-10-29T21:00:15.6830137Z CBZ_NODE_TAP_JSON 40 "t and final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 22.501416\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 23.433463\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.577768\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 19.667052\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 27.124173\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.23652\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 23.92539\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.356656\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5136.703535\n" +2026-10-29T21:00:15.6987963Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T21:00:15.6988397Z with: +2026-10-29T21:00:15.6988571Z name: cbz-node-result +2026-10-29T21:00:15.6988800Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T21:00:15.6989072Z if-no-files-found: error +2026-10-29T21:00:15.6989281Z compression-level: 6 +2026-10-29T21:00:15.6989475Z overwrite: false +2026-10-29T21:00:15.6989663Z include-hidden-files: false +2026-10-29T21:00:15.6989875Z archive: true +2026-10-29T21:00:15.6990047Z env: +2026-10-29T21:00:15.6990275Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.6990672Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T21:00:15.6991069Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.6991435Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.6991838Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T21:00:15.6992498Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T21:00:15.6992797Z ##[endgroup] +2026-10-29T21:00:15.8348284Z With the provided path, there will be 41 files uploaded +2026-10-29T21:00:15.8352763Z Artifact name is valid! +2026-10-29T21:00:15.8352993Z Root directory input is valid! +2026-10-29T21:00:16.1042363Z Uploading artifact: cbz-node-result.zip +2026-10-29T21:00:16.1073099Z Beginning upload of artifact content to blob storage +2026-10-29T21:00:16.4082767Z Uploaded bytes 504887 +2026-10-29T21:00:16.4429984Z Finished uploading artifact content to blob storage! +2026-10-29T21:00:16.4430667Z SHA256 digest of uploaded artifact is 928c2acbbc8ac10edd483977e79c3b1f6e8efcae7b3ab1d9be9ccc5c26359ff7 +2026-10-29T21:00:16.4431277Z Finalizing artifact upload +2026-10-29T21:00:17.0124036Z Artifact cbz-node-result successfully finalized. Artifact ID 12932701911 +2026-10-29T21:00:17.0124715Z Artifact cbz-node-result has been successfully uploaded! Final size is 504887 bytes. Artifact ID is 12932701911 +2026-10-29T21:00:17.0128042Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40953041841/artifacts/12932701911 +2026-10-29T21:00:17.0337882Z Post job cleanup. +2026-10-29T21:00:17.1074366Z [command]/usr/bin/git version +2026-10-29T21:00:17.1107589Z git version 2.56.0 +2026-10-29T21:00:17.1139265Z Temporarily overriding HOME='/home/runner/work/_temp/f3e76224-239d-4f5a-987c-56c41f948320' before making global git config changes +2026-10-29T21:00:17.1140255Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T21:00:17.1143465Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T21:00:17.1178891Z Removing SSH command configuration +2026-10-29T21:00:17.1184876Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T21:00:17.1218226Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T21:00:17.1432785Z Removing HTTP extra header +2026-10-29T21:00:17.1438423Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T21:00:17.1471947Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T21:00:17.1684931Z Removing includeIf entries pointing to credentials config files +2026-10-29T21:00:17.1692422Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T21:00:17.1726418Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T21:00:17.2073152Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/failure-count-hosted.log b/cbz/evidence/cold-start-node/red/failure-count-hosted.log new file mode 100644 index 000000000..d7acbbcf9 --- /dev/null +++ b/cbz/evidence/cold-start-node/red/failure-count-hosted.log @@ -0,0 +1,818 @@ +2026-10-29T20:45:57.0125039Z Current runner version: '2.338.0' +2026-10-29T20:45:57.0156058Z ##[group]Runner Image Provisioner +2026-10-29T20:45:57.0157010Z Hosted Compute Agent +2026-10-29T20:45:57.0157853Z Version: 20261021.618 +2026-10-29T20:45:57.0158619Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:45:57.0159753Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:45:57.0160529Z Worker ID: {f5a9c407-f017-4ce8-ab79-83ff8b7c1cc9} +2026-10-29T20:45:57.0161308Z Region: northcentralus +2026-10-29T20:45:57.0162018Z Cloud: Azure +2026-10-29T20:45:57.0162599Z ##[endgroup] +2026-10-29T20:45:57.0164901Z ##[group]Operating System +2026-10-29T20:45:57.0165614Z Ubuntu +2026-10-29T20:45:57.0166167Z 24.04.5 +2026-10-29T20:45:57.0166837Z LTS +2026-10-29T20:45:57.0167403Z ##[endgroup] +2026-10-29T20:45:57.0168074Z ##[group]Runner Image +2026-10-29T20:45:57.0168755Z Image: ubuntu-24.04-arm +2026-10-29T20:45:57.0169377Z Version: 20261025.165.1 +2026-10-29T20:45:57.0171216Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:45:57.0173061Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:45:57.0174137Z ##[endgroup] +2026-10-29T20:45:57.0175469Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:45:57.0178788Z Contents: read +2026-10-29T20:45:57.0179780Z Metadata: read +2026-10-29T20:45:57.0180554Z ##[endgroup] +2026-10-29T20:45:57.0184282Z Secret source: Actions +2026-10-29T20:45:57.0185472Z Cache mode: write +2026-10-29T20:45:57.0186342Z Prepare workflow directory +2026-10-29T20:45:57.0566254Z Prepare all required actions +2026-10-29T20:45:57.0614693Z Getting action download info +2026-10-29T20:45:57.3158714Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:45:57.4358893Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:45:57.5917011Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:45:57.7569170Z Complete job name: controls-and-prepared +2026-10-29T20:45:57.8568557Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:45:57.8570421Z with: +2026-10-29T20:45:57.8571205Z persist-credentials: false +2026-10-29T20:45:57.8571848Z fetch-depth: 0 +2026-10-29T20:45:57.8572605Z repository: d6g8k5htny-coder/main +2026-10-29T20:45:57.8576709Z token: *** +2026-10-29T20:45:57.8577318Z ssh-strict: true +2026-10-29T20:45:57.8577943Z ssh-user: git +2026-10-29T20:45:57.8578493Z clean: true +2026-10-29T20:45:57.8579081Z sparse-checkout-cone-mode: true +2026-10-29T20:45:57.8580113Z fetch-tags: false +2026-10-29T20:45:57.8580733Z show-progress: true +2026-10-29T20:45:57.8581403Z lfs: false +2026-10-29T20:45:57.8581966Z submodules: false +2026-10-29T20:45:57.8582546Z set-safe-directory: true +2026-10-29T20:45:57.8583320Z allow-unsafe-pr-checkout: false +2026-10-29T20:45:57.8584550Z ##[endgroup] +2026-10-29T20:45:57.9507912Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:45:57.9511058Z ##[group]Getting Git version info +2026-10-29T20:45:57.9512089Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:45:57.9513566Z [command]/usr/bin/git version +2026-10-29T20:45:57.9563761Z git version 2.56.0 +2026-10-29T20:45:57.9582872Z ##[endgroup] +2026-10-29T20:45:57.9592069Z Temporarily overriding HOME='/home/runner/work/_temp/db98bd30-7ed1-4079-aa09-b1a2b169cdd6' before making global git config changes +2026-10-29T20:45:57.9594110Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:45:57.9596616Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:45:57.9636046Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:45:57.9640123Z ##[group]Determining repository object format +2026-10-29T20:45:57.9642583Z ##[endgroup] +2026-10-29T20:45:57.9643830Z ##[group]Initializing the repository +2026-10-29T20:45:57.9647450Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:45:57.9721802Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:45:57.9742700Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:45:57.9744428Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:45:57.9745874Z hint: call: +2026-10-29T20:45:57.9746671Z hint: +2026-10-29T20:45:57.9747734Z hint: git config --global init.defaultBranch +2026-10-29T20:45:57.9748720Z hint: +2026-10-29T20:45:57.9749879Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:45:57.9761133Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:45:57.9762433Z hint: +2026-10-29T20:45:57.9763250Z hint: git branch -m +2026-10-29T20:45:57.9764112Z hint: +2026-10-29T20:45:57.9765384Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:45:57.9769803Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:45:57.9772650Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:45:57.9798860Z ##[endgroup] +2026-10-29T20:45:57.9809110Z ##[group]Disabling automatic garbage collection +2026-10-29T20:45:57.9810349Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:45:57.9838934Z ##[endgroup] +2026-10-29T20:45:57.9841233Z ##[group]Setting up auth +2026-10-29T20:45:57.9842371Z Removing SSH command configuration +2026-10-29T20:45:57.9843562Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:45:57.9877088Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:45:58.0194789Z Removing HTTP extra header +2026-10-29T20:45:58.0201720Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:45:58.0243793Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:45:58.0463585Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:45:58.0466664Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:45:58.0503482Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:45:58.0736042Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:45:58.0781935Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:45:58.0813452Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:45:58.0851952Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:45:58.0891386Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:45:58.0921675Z ##[endgroup] +2026-10-29T20:45:58.0922871Z ##[group]Fetching the repository +2026-10-29T20:45:58.0928107Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +b9c51cc179a4818bb593c8ef09495fc09dc5aa4a:refs/remotes/pull/707/merge +2026-10-29T20:46:08.4608525Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:46:08.4613948Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:46:08.4614916Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:46:08.4615928Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:46:08.4616941Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:46:08.4618038Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:46:08.4618964Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:46:08.4620154Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:46:08.4621421Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:46:08.4622325Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:46:08.4623333Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:46:08.4624253Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T20:46:08.4625233Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:46:08.4626173Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:46:08.4627125Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:46:08.4628479Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:46:08.4629745Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:46:08.4630921Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:46:08.4631795Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:46:08.4632696Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:46:08.4633711Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:46:08.4634704Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:46:08.4636368Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:46:08.4637583Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:46:08.4638568Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:46:08.4639743Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:46:08.4640715Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:46:08.4641735Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:46:08.4643114Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:46:08.4644256Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:46:08.4645290Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:46:08.4646182Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:46:08.4647048Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:46:08.4648101Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:46:08.4649056Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:46:08.4650431Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:46:08.4651489Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:46:08.4652382Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:46:08.4653391Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:46:08.4654332Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:46:08.4655342Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:46:08.4656233Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:46:08.4657141Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:46:08.4658438Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:46:08.4659699Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:46:08.4660912Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:46:08.4662007Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:46:08.4662816Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:46:08.4663719Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:46:08.4664561Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:46:08.4665483Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:46:08.4666479Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:46:08.4667467Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:46:08.4668410Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:46:08.4669227Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:46:08.4670367Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:46:08.4671248Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:46:08.4672385Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:46:08.4673415Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:46:08.4674271Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:46:08.4675201Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:46:08.4676108Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:46:08.4677067Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:46:08.4678015Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:46:08.4678890Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:46:08.4680176Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:46:08.4681154Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:46:08.4682090Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:46:08.4683052Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:46:08.4683927Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:46:08.4684884Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:46:08.4685818Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:46:08.4686602Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:46:08.4687693Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:46:08.4688735Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:46:08.4690031Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:46:08.4690926Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:46:08.4691769Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:46:08.4692620Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:46:08.4693449Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:46:08.4694280Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:46:08.4695257Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:46:08.4696092Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:46:08.4697051Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:46:08.4697906Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:46:08.4698693Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:46:08.4700287Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:46:08.4701300Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:46:08.4702333Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:46:08.4703277Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:46:08.4704185Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:46:08.4705224Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:46:08.4706175Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:46:08.4707249Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:46:08.4708213Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:46:08.4709145Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:46:08.4710457Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:46:08.4711397Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:46:08.4712476Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:46:08.4713480Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:46:08.4714434Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:46:08.4715825Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:46:08.4716902Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:46:08.4717922Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:46:08.4718916Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:46:08.4720069Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:46:08.4721099Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:46:08.4722159Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:46:08.4723207Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T20:46:08.4724132Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:46:08.4725104Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:46:08.4726191Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:46:08.4727144Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:46:08.4728232Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:46:08.4729720Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:46:08.4730633Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:46:08.4731804Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:46:08.4732999Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:46:08.4734185Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:46:08.4735290Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:46:08.4736317Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:46:08.4737282Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:46:08.4738212Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:46:08.4739198Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:46:08.4740302Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:46:08.4741224Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:46:08.4742192Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:46:08.4743133Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:46:08.4744347Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:46:08.4745327Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:46:08.4746144Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:46:08.4747102Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:46:08.4748296Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:46:08.4749697Z * [new branch] codex/public-intake-discovery-20261029 -> origin/codex/public-intake-discovery-20261029 +2026-10-29T20:46:08.4750728Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:46:08.4751579Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:46:08.4752582Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:46:08.4753594Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:46:08.4754564Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:46:08.4755727Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:46:08.4756696Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:46:08.4758071Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:46:08.4759070Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:46:08.4760215Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:46:08.4761564Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:46:08.4762591Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:46:08.4763494Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:46:08.4764319Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:46:08.4765194Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:46:08.4766171Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:46:08.4767075Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:46:08.4768116Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:46:08.4769046Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:46:08.4770236Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:46:08.4771233Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:46:08.4772248Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:46:08.4773709Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:46:08.4774772Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:46:08.4775828Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:46:08.4776866Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:46:08.4777842Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:46:08.4778971Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:46:08.4780182Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:46:08.4781132Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:46:08.4782249Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:46:08.4783288Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:46:08.4784344Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:46:08.4785326Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:46:08.4786562Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:46:08.4787589Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:46:08.4788465Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:46:08.4789465Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:46:08.4790766Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:46:08.4791737Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:46:08.4792788Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:46:08.4793858Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:46:08.4795011Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:46:08.4796194Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:46:08.4797265Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:46:08.4798359Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:46:08.4799357Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:46:08.4800623Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:46:08.4801905Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:46:08.4802928Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:46:08.4804130Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:46:08.4805116Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:46:08.4806140Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:46:08.4807495Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:46:08.4808523Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:46:08.4809676Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:46:08.4810551Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:46:08.4811552Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:46:08.4812522Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:46:08.4813490Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:46:08.4814462Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:46:08.4815327Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:46:08.4816677Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:46:08.4817569Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:46:08.4818409Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:46:08.4819747Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:46:08.4820773Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:46:08.4821844Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:46:08.4822869Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:46:08.4823929Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:46:08.4824872Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:46:08.4825922Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:46:08.4826885Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:46:08.4827862Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:46:08.4828822Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:46:08.4830066Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:46:08.4831351Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:46:08.4832519Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:46:08.4833533Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:46:08.4834422Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:46:08.4835364Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:46:08.4836249Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:46:08.4837042Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:46:08.4838087Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:46:08.4839160Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:46:08.4840747Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:46:08.4841870Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:46:08.4842828Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:46:08.4843985Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:46:08.4845288Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:46:08.4846423Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:46:08.4847335Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:46:08.4848251Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:46:08.4849194Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:46:08.4850322Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:46:08.4851387Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:46:08.4852387Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:46:08.4853347Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:46:08.4854294Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:46:08.4855118Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:46:08.4856025Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:46:08.4856805Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:46:08.4857658Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:46:08.4858641Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:46:08.4860194Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:46:08.4861453Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:46:08.4862405Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:46:08.4863206Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:46:08.4864190Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:46:08.4865158Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:46:08.4866283Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:46:08.4867297Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:46:08.4868263Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:46:08.4869393Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:46:08.4870734Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:46:08.4871836Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:46:08.4872574Z * [new branch] main -> origin/main +2026-10-29T20:46:08.4873385Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:46:08.4874787Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:46:08.4875834Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:46:08.4876746Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:46:08.4877565Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:46:08.4878308Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:46:08.4879036Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:46:08.4880022Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:46:08.4880800Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:46:08.4881501Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:46:08.4882201Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:46:08.4882931Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:46:08.4883685Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:46:08.4884453Z * [new ref] b9c51cc179a4818bb593c8ef09495fc09dc5aa4a -> pull/707/merge +2026-10-29T20:46:08.4886347Z ##[endgroup] +2026-10-29T20:46:08.4887213Z ##[group]Determining the checkout info +2026-10-29T20:46:08.4887964Z ##[endgroup] +2026-10-29T20:46:08.4888366Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:46:08.4889793Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:46:08.4891352Z ##[group]Checking out the ref +2026-10-29T20:46:08.4891907Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T20:46:08.7401981Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T20:46:08.7403780Z +2026-10-29T20:46:08.7404817Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T20:46:08.7405521Z changes and commit them, and you can discard any commits you make in this +2026-10-29T20:46:08.7406268Z state without impacting any branches by switching back to a branch. +2026-10-29T20:46:08.7406585Z +2026-10-29T20:46:08.7406924Z If you want to create a new branch to retain commits you create, you may +2026-10-29T20:46:08.7407473Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T20:46:08.7407855Z +2026-10-29T20:46:08.7408001Z git switch -c +2026-10-29T20:46:08.7408227Z +2026-10-29T20:46:08.7408392Z Or undo this operation with: +2026-10-29T20:46:08.7408655Z +2026-10-29T20:46:08.7408881Z git switch - +2026-10-29T20:46:08.7409064Z +2026-10-29T20:46:08.7409664Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T20:46:08.7410039Z +2026-10-29T20:46:08.7410478Z HEAD is now at b9c51cc1 Merge 05343dc2ce194823158eb96877e333aff439c335 into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T20:46:08.7429447Z ##[endgroup] +2026-10-29T20:46:08.7474219Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:46:08.7503248Z b9c51cc179a4818bb593c8ef09495fc09dc5aa4a +2026-10-29T20:46:08.7511581Z ##[group]Removing auth +2026-10-29T20:46:08.7512310Z Removing SSH command configuration +2026-10-29T20:46:08.7516438Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:46:08.7550669Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:46:08.7785456Z Removing HTTP extra header +2026-10-29T20:46:08.7788220Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:46:08.7821912Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:46:08.8052469Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:46:08.8055100Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:46:08.8080546Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:46:08.8081372Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:46:08.8081912Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:46:08.8082452Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:46:08.8088322Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:46:08.8113845Z /home/runner/work/_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:46:08.8123354Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-34630434\-0bb7\-4c92\-8f29\-b2d0ae8e01c1\.config +2026-10-29T20:46:08.8161246Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:46:08.8186363Z /home/runner/work/_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:46:08.8195240Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-34630434\-0bb7\-4c92\-8f29\-b2d0ae8e01c1\.config +2026-10-29T20:46:08.8231009Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:46:08.8254710Z /github/runner_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:46:08.8262425Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-34630434\-0bb7\-4c92\-8f29\-b2d0ae8e01c1\.config +2026-10-29T20:46:08.8296135Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:46:08.8321906Z /github/runner_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config +2026-10-29T20:46:08.8329846Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-34630434\-0bb7\-4c92\-8f29\-b2d0ae8e01c1\.config +2026-10-29T20:46:08.8366961Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:46:08.8596888Z Removing credentials config '/home/runner/work/_temp/git-credentials-34630434-0bb7-4c92-8f29-b2d0ae8e01c1.config' +2026-10-29T20:46:08.8607325Z ##[endgroup] +2026-10-29T20:46:08.8891954Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:46:08.8892762Z with: +2026-10-29T20:46:08.8893105Z python-version: 3.11 +2026-10-29T20:46:08.8893486Z check-latest: false +2026-10-29T20:46:08.8896313Z token: *** +2026-10-29T20:46:08.8896632Z update-environment: true +2026-10-29T20:46:08.8897102Z allow-prereleases: false +2026-10-29T20:46:08.8897415Z freethreaded: false +2026-10-29T20:46:08.8897738Z ##[endgroup] +2026-10-29T20:46:08.9925383Z ##[group]Installed versions +2026-10-29T20:46:09.0003558Z Successfully set up CPython (3.11.17) +2026-10-29T20:46:09.0004577Z ##[endgroup] +2026-10-29T20:46:09.0169079Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:46:09.0170458Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:46:09.0362517Z shell: /usr/bin/bash -e {0} +2026-10-29T20:46:09.0363430Z env: +2026-10-29T20:46:09.0364634Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:09.0365606Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:46:09.0366164Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:09.0366637Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:09.0367512Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:09.0368028Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:46:09.0368579Z ##[endgroup] +2026-10-29T20:46:10.0129346Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... FAIL +2026-10-29T20:46:10.0136330Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:46:10.0137404Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:46:10.0138395Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... FAIL +2026-10-29T20:46:10.0139428Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:46:10.0140592Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:46:10.0141612Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:46:10.0142454Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:46:10.0143430Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... FAIL +2026-10-29T20:46:10.0144368Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:46:10.0145283Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:46:10.0146387Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... +2026-10-29T20:46:10.0147534Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') ... FAIL +2026-10-29T20:46:10.0148847Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') ... FAIL +2026-10-29T20:46:10.0150454Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') ... FAIL +2026-10-29T20:46:10.0151547Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:46:10.2509903Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:46:10.2742684Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:46:12.1548988Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:46:12.1798733Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:46:12.1981820Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:46:12.2157650Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:46:12.2350856Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:46:12.2530402Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:46:12.4091447Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:46:12.4267009Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:46:12.4512827Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:46:12.4715946Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:46:12.4895824Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:46:12.5084387Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:46:12.5342388Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:46:12.5516107Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:46:12.5698694Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:46:12.5911571Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:46:12.6932002Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:46:12.7119800Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:46:12.7383580Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:46:12.7672296Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:46:12.7941519Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:46:12.8215481Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:46:12.8654901Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:46:12.8924964Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:46:12.9100371Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:46:12.9280385Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:46:12.9584392Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:46:12.9755110Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:46:12.9954978Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:46:15.9767615Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:46:16.5906143Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:46:17.6845307Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:46:17.6845983Z +2026-10-29T20:46:17.6846144Z ====================================================================== +2026-10-29T20:46:17.6847012Z FAIL: test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) +2026-10-29T20:46:17.6847743Z ---------------------------------------------------------------------- +2026-10-29T20:46:17.6848130Z Traceback (most recent call last): +2026-10-29T20:46:17.6856022Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 523, in test_abnormal_test_process_exit_cannot_kill +2026-10-29T20:46:17.6856909Z self.assertFalse(assertion_kill(self.result(code=86), "test_expected")) +2026-10-29T20:46:17.6857526Z AssertionError: True is not false +2026-10-29T20:46:17.6857738Z +2026-10-29T20:46:17.6857913Z ====================================================================== +2026-10-29T20:46:17.6858714Z FAIL: test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) +2026-10-29T20:46:17.6860492Z ---------------------------------------------------------------------- +2026-10-29T20:46:17.6860902Z Traceback (most recent call last): +2026-10-29T20:46:17.6861649Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 513, in test_expected_and_foreign_failures_cannot_kill +2026-10-29T20:46:17.6862454Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T20:46:17.6862873Z AssertionError: True is not false +2026-10-29T20:46:17.6863041Z +2026-10-29T20:46:17.6863281Z ====================================================================== +2026-10-29T20:46:17.6863952Z FAIL: test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) +2026-10-29T20:46:17.6864639Z ---------------------------------------------------------------------- +2026-10-29T20:46:17.6865090Z Traceback (most recent call last): +2026-10-29T20:46:17.6865834Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 526, in test_mismatched_failure_count_cannot_kill +2026-10-29T20:46:17.6866647Z self.assertFalse(assertion_kill(self.result(summary="failures=2"), "test_expected")) +2026-10-29T20:46:17.6867128Z AssertionError: True is not false +2026-10-29T20:46:17.6867302Z +2026-10-29T20:46:17.6867439Z ====================================================================== +2026-10-29T20:46:17.6868763Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') +2026-10-29T20:46:17.6870047Z ---------------------------------------------------------------------- +2026-10-29T20:46:17.6870587Z Traceback (most recent call last): +2026-10-29T20:46:17.6871314Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:46:17.6872358Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:46:17.6872962Z AssertionError: True is not false +2026-10-29T20:46:17.6873161Z +2026-10-29T20:46:17.6873284Z ====================================================================== +2026-10-29T20:46:17.6874144Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') +2026-10-29T20:46:17.6875019Z ---------------------------------------------------------------------- +2026-10-29T20:46:17.6875393Z Traceback (most recent call last): +2026-10-29T20:46:17.6876157Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:46:17.6876880Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:46:17.6877373Z AssertionError: True is not false +2026-10-29T20:46:17.6877589Z +2026-10-29T20:46:17.6877726Z ====================================================================== +2026-10-29T20:46:17.6878561Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') +2026-10-29T20:46:17.6879713Z ---------------------------------------------------------------------- +2026-10-29T20:46:17.6880135Z Traceback (most recent call last): +2026-10-29T20:46:17.6880906Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:46:17.6881656Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:46:17.6882114Z AssertionError: True is not false +2026-10-29T20:46:17.6882384Z +2026-10-29T20:46:17.6882577Z ---------------------------------------------------------------------- +2026-10-29T20:46:17.6882960Z Ran 47 tests in 7.677s +2026-10-29T20:46:17.6883100Z +2026-10-29T20:46:17.6883258Z FAILED (failures=6) +2026-10-29T20:46:17.7002656Z ##[error]Process completed with exit code 1. +2026-10-29T20:46:17.7081412Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:46:17.7082192Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:46:17.7133427Z shell: /usr/bin/bash -e {0} +2026-10-29T20:46:17.7133753Z env: +2026-10-29T20:46:17.7134148Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:17.7134660Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:46:17.7135189Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:17.7135693Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:17.7136124Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:17.7136610Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:46:17.7136992Z ##[endgroup] +2026-10-29T20:46:20.4336184Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... FAIL +2026-10-29T20:46:20.4343717Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:46:20.4344686Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:46:20.4346078Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... FAIL +2026-10-29T20:46:20.4347301Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:46:20.4348274Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:46:20.4349892Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:46:20.4350825Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:46:20.4351763Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... FAIL +2026-10-29T20:46:20.4352724Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:46:20.4353651Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:46:20.4354802Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... +2026-10-29T20:46:20.4356025Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') ... FAIL +2026-10-29T20:46:20.4357295Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') ... FAIL +2026-10-29T20:46:20.4358677Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') ... FAIL +2026-10-29T20:46:20.4359884Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:46:21.0831549Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:46:21.1053761Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:46:21.2152439Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:46:21.2396940Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:46:21.2568949Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:46:21.2743304Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:46:21.2928262Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:46:21.3104816Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:46:21.8653357Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:46:21.8833899Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:46:21.9086208Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:46:21.9304305Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:46:21.9494735Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:46:21.9696108Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:46:21.9959927Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:46:22.0148628Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:46:22.0333134Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:46:22.0559068Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:46:22.1651343Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:46:22.1839892Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:46:22.2111322Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:46:22.2412660Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:46:22.2686139Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:46:22.2965951Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:46:22.3264014Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:46:22.3550798Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:46:22.3734071Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:46:22.3921728Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:46:22.4240528Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:46:22.4422620Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:46:22.4614575Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:46:31.5693155Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:46:33.4542737Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:46:35.1574814Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:46:35.1575473Z +2026-10-29T20:46:35.1575624Z ====================================================================== +2026-10-29T20:46:35.1576492Z FAIL: test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) +2026-10-29T20:46:35.1577308Z ---------------------------------------------------------------------- +2026-10-29T20:46:35.1578245Z Traceback (most recent call last): +2026-10-29T20:46:35.1579146Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 523, in test_abnormal_test_process_exit_cannot_kill +2026-10-29T20:46:35.1580244Z self.assertFalse(assertion_kill(self.result(code=86), "test_expected")) +2026-10-29T20:46:35.1580691Z AssertionError: True is not false +2026-10-29T20:46:35.1580968Z +2026-10-29T20:46:35.1581188Z ====================================================================== +2026-10-29T20:46:35.1581897Z FAIL: test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) +2026-10-29T20:46:35.1582666Z ---------------------------------------------------------------------- +2026-10-29T20:46:35.1583069Z Traceback (most recent call last): +2026-10-29T20:46:35.1583757Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 513, in test_expected_and_foreign_failures_cannot_kill +2026-10-29T20:46:35.1584500Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T20:46:35.1584966Z AssertionError: True is not false +2026-10-29T20:46:35.1585146Z +2026-10-29T20:46:35.1585343Z ====================================================================== +2026-10-29T20:46:35.1586018Z FAIL: test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) +2026-10-29T20:46:35.1586707Z ---------------------------------------------------------------------- +2026-10-29T20:46:35.1587161Z Traceback (most recent call last): +2026-10-29T20:46:35.1587835Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 526, in test_mismatched_failure_count_cannot_kill +2026-10-29T20:46:35.1588651Z self.assertFalse(assertion_kill(self.result(summary="failures=2"), "test_expected")) +2026-10-29T20:46:35.1589143Z AssertionError: True is not false +2026-10-29T20:46:35.1589318Z +2026-10-29T20:46:35.1589465Z ====================================================================== +2026-10-29T20:46:35.1590968Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') +2026-10-29T20:46:35.1591827Z ---------------------------------------------------------------------- +2026-10-29T20:46:35.1592197Z Traceback (most recent call last): +2026-10-29T20:46:35.1593024Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:46:35.1593761Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:46:35.1594301Z AssertionError: True is not false +2026-10-29T20:46:35.1594480Z +2026-10-29T20:46:35.1594642Z ====================================================================== +2026-10-29T20:46:35.1595460Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') +2026-10-29T20:46:35.1596381Z ---------------------------------------------------------------------- +2026-10-29T20:46:35.1596792Z Traceback (most recent call last): +2026-10-29T20:46:35.1597770Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:46:35.1598508Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:46:35.1598953Z AssertionError: True is not false +2026-10-29T20:46:35.1599203Z +2026-10-29T20:46:35.1599329Z ====================================================================== +2026-10-29T20:46:35.1600690Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') +2026-10-29T20:46:35.1601721Z ---------------------------------------------------------------------- +2026-10-29T20:46:35.1602345Z Traceback (most recent call last): +2026-10-29T20:46:35.1603045Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:46:35.1603890Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:46:35.1604395Z AssertionError: True is not false +2026-10-29T20:46:35.1604604Z +2026-10-29T20:46:35.1604807Z ---------------------------------------------------------------------- +2026-10-29T20:46:35.1605209Z Ran 47 tests in 14.725s +2026-10-29T20:46:35.1605363Z +2026-10-29T20:46:35.1605469Z FAILED (failures=6) +2026-10-29T20:46:35.1741838Z ##[error]Process completed with exit code 1. +2026-10-29T20:46:35.1788105Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:46:35.1789111Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:46:35.1790151Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:46:35.1823831Z shell: /usr/bin/bash -e {0} +2026-10-29T20:46:35.1824131Z env: +2026-10-29T20:46:35.1824602Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:35.1825131Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:46:35.1825649Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:35.1826113Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:35.1826539Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:35.1827147Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:46:35.1827536Z ##[endgroup] +2026-10-29T20:46:35.1896213Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:46:36.9120148Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:46:37.2352810Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:46:37.2354064Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:46:37.2400525Z shell: /usr/bin/bash -e {0} +2026-10-29T20:46:37.2400841Z env: +2026-10-29T20:46:37.2401322Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:37.2401808Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:46:37.2402396Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:37.2402846Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:37.2403272Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:37.2403865Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:46:37.2404369Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:46:37.2404825Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:46:37.2405118Z ##[endgroup] +2026-10-29T20:46:43.5603487Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:46:43.5768868Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:46:43.5769428Z python -B -S - <<'PY' +2026-10-29T20:46:43.5770087Z import hashlib, json, os +2026-10-29T20:46:43.5770402Z from pathlib import Path +2026-10-29T20:46:43.5770827Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T20:46:43.5771293Z record = json.loads((root / "result.json").read_text()) +2026-10-29T20:46:43.5771807Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T20:46:43.5772277Z raw = (root / "node.tap").read_bytes() +2026-10-29T20:46:43.5772596Z def verify_log(value): +2026-10-29T20:46:43.5772999Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T20:46:43.5773788Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T20:46:43.5774922Z verify_log(raw) +2026-10-29T20:46:43.5775422Z try: +2026-10-29T20:46:43.5775668Z  verify_log(raw + b"\0") +2026-10-29T20:46:43.5776043Z except ValueError: +2026-10-29T20:46:43.5776365Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T20:46:43.5776770Z else: +2026-10-29T20:46:43.5777076Z  raise SystemExit("modified transcript was admitted") +2026-10-29T20:46:43.5777437Z text = raw.decode("utf-8") +2026-10-29T20:46:43.5777833Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T20:46:43.5778249Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T20:46:43.5778659Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T20:46:43.5779149Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T20:46:43.5779853Z for number, chunk in enumerate(chunks): +2026-10-29T20:46:43.5780366Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T20:46:43.5780768Z PY +2026-10-29T20:46:43.5813557Z shell: /usr/bin/bash -e {0} +2026-10-29T20:46:43.5813857Z env: +2026-10-29T20:46:43.5814334Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.5814804Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:46:43.5815426Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.5815848Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.5816262Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.5816741Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:46:43.5817113Z ##[endgroup] +2026-10-29T20:46:43.6109232Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:46:43.559151+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "c8f6c0afc6952303a24e1dfcda1817ffe657a17127da328644434c85e0093ede", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "b9c51cc179a4818bb593c8ef09495fc09dc5aa4a", "source_before": "b9c51cc179a4818bb593c8ef09495fc09dc5aa4a", "started_utc": "2026-10-29T20:46:37.301930+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:46:43.6149450Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T20:46:43.6149985Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T20:46:43.6150406Z CBZ_NODE_TAP_GIT_BLOB b1492077b75c80f0b678fefee9d13b2a320e5faa +2026-10-29T20:46:43.6163855Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 43.472513\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 10.811944\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.80021\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 5.575599\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.243782\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.59056\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.66023\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.855405\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.570233\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.64991\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.572968\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.220903\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.869697\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.477203\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 4.60041\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.762387\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.687277\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.107059\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.041523\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.605992\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit bridg" +2026-10-29T20:46:43.6190365Z CBZ_NODE_TAP_JSON 1 "e\n ---\n duration_ms: 0.621327\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.212255\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.551721\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.821065\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.5798\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.148305\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.899943\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.893207\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.001661\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.277421\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.287373\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.78921\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.797258\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.801387\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 1.993914\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.315272\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.339887\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.328607\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.354478\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.261137\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot remains " +2026-10-29T20:46:43.6216725Z CBZ_NODE_TAP_JSON 2 "a visible reading action\n ---\n duration_ms: 0.130213\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.531505\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.478616\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.281568\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.22397\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 2.0452\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.837153\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 1.062163\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.29062\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 1.028164\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 1.040956\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 1.461272\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.695786\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.482723\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.770015\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.344363\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.324239\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.419873\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are determinist" +2026-10-29T20:46:43.6243151Z CBZ_NODE_TAP_JSON 3 "ic and inputs remain unchanged\n ---\n duration_ms: 1.219895\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.338343\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.252081\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 4.054137\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.70163\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.910188\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.351958\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.130071\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.733344\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.668126\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 1.034868\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.707364\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.246814\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.979477\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.191575\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.146772\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 10.608286\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 11.496278\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 598.733342\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history state; sha" +2026-10-29T20:46:43.6269336Z CBZ_NODE_TAP_JSON 4 "re link only includes filters\n ---\n duration_ms: 117.474631\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 33.663278\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 39.211654\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 24.838992\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 24.560999\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 29.207984\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 4.629473\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 27.050916\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 20.669778\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 24.543008\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 20.322963\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 9.79102\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 10.338013\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 5.284375\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.980702\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 11.45903\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.883344\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.290933\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.768043\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers use di" +2026-10-29T20:46:43.6295728Z CBZ_NODE_TAP_JSON 5 "stinct identities and ordinary, non-live count spans\n ---\n duration_ms: 6.357986\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 15.80136\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.203863\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.953094\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.290789\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.107458\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.789899\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 0.937055\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.823833\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 2.320264\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.269758\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 2.790627\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.573656\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.662669\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.806498\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.545698\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 0.596055\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.58432\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.52369\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.670694\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.621039\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 2.635079\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 1.933939\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.538081\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 0.550249\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid range\n " +2026-10-29T20:46:43.6322168Z CBZ_NODE_TAP_JSON 6 "---\n duration_ms: 0.523241\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.461515\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 0.566032\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.14498\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 0.766323\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.574392\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 3.215624\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 1.223839\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.573168\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 0.545233\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.775355\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.664062\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 1.218862\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.574297\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.428204\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 1.000749\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.556225\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.774731\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 1.213743\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 1.036427\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.547626\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 9.421526\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort sign" +2026-10-29T20:46:43.6348336Z CBZ_NODE_TAP_JSON 7 "al\n ---\n duration_ms: 2.552306\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.557261\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.198855\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.452836\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.325815\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 3.01123\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 1.045692\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.923959\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.895879\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.615727\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 11.51954\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 1.929979\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 12.924326\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.511831\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.588088\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.322455\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 1.565877\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 2.628264\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.867176\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.870712\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can con" +2026-10-29T20:46:43.6374624Z CBZ_NODE_TAP_JSON 8 "struct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.572385\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.788522\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.327207\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.249177\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.544337\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.504946\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.168035\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.274632\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.147332\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.635423\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 137.586265\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.344302\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.422957\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.290037\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.643694\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.406924\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.332183\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewritin" +2026-10-29T20:46:43.6401060Z CBZ_NODE_TAP_JSON 9 "g the address\n ---\n duration_ms: 0.358486\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.825882\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.540497\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.484131\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.37339\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.271856\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.39307\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.243401\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.583576\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.36603\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.558329\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.348558\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.738036\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 8.211463\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 0.885368\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.621279\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 0.987645\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.611839\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: " +2026-10-29T20:46:43.6427230Z CBZ_NODE_TAP_JSON 10 "0.668494\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 0.624903\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.575736\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.692797\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.590616\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.499786\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.616263\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.644502\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.557729\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.540617\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.58264\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.543626\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.478947\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.648326\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.623991\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.615111\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.5854\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.549041\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.493834\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 0.708949\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.502346\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.639406\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.16998\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 1.130369\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.710501\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 1.093226\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.660142\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 1.768215\n type: 'test'\n ...\n# Subtest: acquisition: indep" +2026-10-29T20:46:43.6453681Z CBZ_NODE_TAP_JSON 11 "endent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 0.564537\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.532617\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.704885\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.49293\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.519898\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.459539\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.531993\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.573265\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.94595\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.516657\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.616999\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.241722\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.746203\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.086517\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.149252\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.456012\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.183707\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.36363\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 3.164737\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 1.76016\n type: 'test'\n ...\n# Subtest: equation" +2026-10-29T20:46:43.6480178Z CBZ_NODE_TAP_JSON 12 " and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.167812\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.111429\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.556513\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 98.88278\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.546049\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.18597\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.245817\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.323047\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 5.478578\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.505922\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 3.973899\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.858849\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 1.390882\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.389701\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 15.372531\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 5.168587\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 4.407095\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_ms: 6" +2026-10-29T20:46:43.6506620Z CBZ_NODE_TAP_JSON 13 ".593755\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 13.237197\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 26.998325\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 26.359606\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 22.971419\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 3.622732\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.242618\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.480475\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.52501\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 68.455382\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 3.467098\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 4.391192\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.151893\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.467355\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.290816\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.482723\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.754555\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.196955\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - only " +2026-10-29T20:46:43.6533057Z CBZ_NODE_TAP_JSON 14 "exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.447155\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.194651\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.02442\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 141.468926\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.210703\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.421237\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.977218\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.585128\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.538994\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.325407\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 1.122234\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.844977\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.717101\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.966358\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.376301\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.261105\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.304824\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.195643\n type: 'test'\n ...\n# Subtest: " +2026-10-29T20:46:43.6559440Z CBZ_NODE_TAP_JSON 15 "widening the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.471867\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.2958\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.453355\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.271704\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.198223\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 31.045326\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 6.609803\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 4.086688\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.578744\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.392853\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.362603\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 2.420757\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.772131\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.089874\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.186008\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 2.612825\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 2.704054\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---\n " +2026-10-29T20:46:43.6585972Z CBZ_NODE_TAP_JSON 16 " duration_ms: 0.342479\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.328631\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.2722\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.234786\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.414061\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.219834\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 2.813915\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.541417\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 18.436751\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 1.716146\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.203451\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.006849\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 1.921795\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 2.19274\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 4.727919\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 46.477464\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 169.306588\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-ev" +2026-10-29T20:46:43.6612855Z CBZ_NODE_TAP_JSON 17 "idence after 0 ms digest delay\n ---\n duration_ms: 12.902007\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 162.361114\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 23.536252\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 164.008198\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 12.330694\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 165.66352\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 0.927199\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 1.311724\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 1.260717\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.917287\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 2.419622\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 2.13995\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 1.755472\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 4.996223\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 2.526283\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 0.235657\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 3.620965\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 1.124097\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and labels " +2026-10-29T20:46:43.6639283Z CBZ_NODE_TAP_JSON 18 "the snapshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 0.724364\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 1.473\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.379323\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 5.69274\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 4.834708\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 2.649024\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 1.819702\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 2.119606\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 7.787842\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.4692\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 0.89084\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.494058\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.289736\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.479787\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.79373\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 1.940147\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 0.2884\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - invalid ch" +2026-10-29T20:46:43.6665986Z CBZ_NODE_TAP_JSON 19 "oices cannot invent regions or objects\n ---\n duration_ms: 0.626679\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.922487\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.497078\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.172964\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 3.904902\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 2.122758\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 2.331424\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 1.581349\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 0.978685\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.421548\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.01266\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.471875\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.829529\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 2.014777\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.327303\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.443163\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.702709\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.881724\n type: 'test'\n ...\n# Subtes" +2026-10-29T20:46:43.6692486Z CBZ_NODE_TAP_JSON 20 "t: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 8.40709\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.586141\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.536409\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.422116\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.201971\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.073275\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.321183\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.250777\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.557394\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.370638\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.224586\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.379966\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.320032\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.808378\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.525594\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.401349\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.489128\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.232406\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.272621\n " +2026-10-29T20:46:43.6718619Z CBZ_NODE_TAP_JSON 21 " type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 9.086048\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.080131\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 0.918679\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 0.894343\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.346384\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.374214\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.388949\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.409725\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.919935\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 3.181377\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.175887\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 1.721601\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 3.672267\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.381154\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.427437\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.366678\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 1.611612\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.290061\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 71.026407\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 32.064674\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 66.440965\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 121.831624\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and malforme" +2026-10-29T20:46:43.6744438Z CBZ_NODE_TAP_JSON 22 "d hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 105.360747\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 62.584975\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 32.388121\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.183751\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.495011\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 1.019532\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.423354\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 35.800124\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 13.619699\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 5.79237\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 14.215955\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 2.996966\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 2.49706\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.586295\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 16.027818\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 8.171224\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 1.704537\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.139336\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 16.2" +2026-10-29T20:46:43.6770167Z CBZ_NODE_TAP_JSON 23 "43932\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 4.683776\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.498156\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.886629\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.806755\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.447885\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.710757\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.515786\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.753156\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.527857\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.300335\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 10.778304\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.489551\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 0.858553\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 2.409774\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.374751\n type: 'test'" +2026-10-29T20:46:43.6796192Z CBZ_NODE_TAP_JSON 24 "\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.438036\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.585965\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.582581\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.045474\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.016132\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.276689\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 44.883051\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 7.997589\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 15.727297\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 9.494916\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.090737\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 7.577665\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 7.175852\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 6.639466\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 1.002173\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.87968\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.573617\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified repl" +2026-10-29T20:46:43.6822570Z CBZ_NODE_TAP_JSON 25 "ay source\n ---\n duration_ms: 1.89798\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.708653\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.387405\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 4.405639\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 1.121505\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 15.556134\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 0.56972\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.083843\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 1.251062\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.208151\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 6.12256\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 3.792016\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.916887\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.378242\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 4.035753\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 4.369016\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 4.687568\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.22899\n type: 't" +2026-10-29T20:46:43.6848709Z CBZ_NODE_TAP_JSON 26 "est'\n ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 14.722309\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.218043\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 16.66036\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 3.045597\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 2.992374\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 8.695514\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 6.669025\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 6.378057\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 7.22133\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.720345\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.456812\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.380189\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.440964\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.453724\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 3.177305\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.694325\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.672197\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.625027\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view throu" +2026-10-29T20:46:43.6875042Z CBZ_NODE_TAP_JSON 27 "gh 3D, 2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 3.716818\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.295532\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 6.291212\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 33.9148\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 164.572366\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 329.967669\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1027.303792\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 288.881643\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 406.36067\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 137.99023\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 552.029995\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 186.031174\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.45811\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 155.011453\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 3.780761\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.725484\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.249577\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 0.580632\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n duration_m" +2026-10-29T20:46:43.7007212Z CBZ_NODE_TAP_JSON 28 "s: 0.501058\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.718796\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.190684\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 19.832305\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 2.060432\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.530958\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 3.43877\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 4.520388\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 2.142342\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.937926\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.542497\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 10.990147\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 2.780764\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.355995\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.865904\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 4.337049\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 27.350163\n type: 'test'\n ...\n# Subtest" +2026-10-29T20:46:43.7033305Z CBZ_NODE_TAP_JSON 29 ": query view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 2.75138\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.635176\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.021364\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.296312\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.748294\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.541806\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.526898\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.846265\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.719285\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.125634\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.37629\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.095626\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.116852\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 8.988706\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 9.087831\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 28.334232\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 2.622872\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 2.047696\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.410628\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.213066\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.367198\n type: 'test'\n ...\n# Subtest: status" +2026-10-29T20:46:43.7059216Z CBZ_NODE_TAP_JSON 30 " snapshot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 1.069066\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.268152\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.162099\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.124996\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.257409\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.194667\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.104005\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.197898\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.20673\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.270984\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.222794\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.261118\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.45618\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.18244\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.575349\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.543673\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.268165\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.600392\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.659222\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 15.359955\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.334727\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 81.130755\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagin" +2026-10-29T20:46:43.7085387Z CBZ_NODE_TAP_JSON 31 "ation and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 58.315139\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 40.306936\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 81.257599\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 168.212298\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.830187\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.536941\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.883821\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.440195\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.939205\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.095614\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.31454\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.738833\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.703305\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.743517\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 28.716838\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 20.595236\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 25.48683\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 24.762834\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused configura" +2026-10-29T20:46:43.7111629Z CBZ_NODE_TAP_JSON 32 "tion still reveals the requested unavailable section\n ---\n duration_ms: 1.858717\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 20.849413\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 31.706804\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 23.799757\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.582309\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 20.371586\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 24.729882\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.257865\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 26.811482\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.388762\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 20.993873\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 28.752461\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 28.894377\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 29.262399\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 25.211782\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 20.752216\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 24.860055\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 4.829332\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 29.747246\n type: 'test'\n ...\n" +2026-10-29T20:46:43.7137477Z CBZ_NODE_TAP_JSON 33 "# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 24.019996\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 25.391549\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 1.158726\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.162755\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 0.639413\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.242328\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.572874\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 3.365076\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.966125\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.862929\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.921247\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.177839\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.654156\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.450764\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.219126\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.56968\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.585536\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 1.510855\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable com" +2026-10-29T20:46:43.7163385Z CBZ_NODE_TAP_JSON 34 "mit\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.561449\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.642326\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.291677\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.994489\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.748836\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.385173\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.422316\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.235922\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.281969\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.551457\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.730228\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 7.930543\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.573688\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 3.42685\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 1.085722\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 3.740602\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.539561\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 1.580524\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 6.917666\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - compari" +2026-10-29T20:46:43.7189323Z CBZ_NODE_TAP_JSON 35 "son model is implemented\n ---\n duration_ms: 6.009323\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.475243\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 330.823638\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 2.333665\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.561992\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 40.717957\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 35.4725\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 5.067413\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 17.180241\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 45.770331\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 7.309743\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.905127\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 7.511243\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 0.674758\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 11.409976\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 77.117793\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.43958\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.192447\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.363742\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, encoded" +2026-10-29T20:46:43.7215707Z CBZ_NODE_TAP_JSON 36 " traversal and malformed identities stay literal\n ---\n duration_ms: 0.525865\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.750208\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.362954\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.122458\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 2.169317\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.412377\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.275568\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.141873\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 0.963901\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.344342\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.272689\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.820049\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 0.730388\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 1.445624\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.287384\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 12.884344\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.337535\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.461868\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields\n" +2026-10-29T20:46:43.7241836Z CBZ_NODE_TAP_JSON 37 " ---\n duration_ms: 0.81181\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.443572\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.673622\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.496523\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.682685\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.521985\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.399005\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.318848\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.262217\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 1.624676\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.56872\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.531033\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 22.667892\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 4.02969\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.162968\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 1.949563\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.485047\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok 72" +2026-10-29T20:46:43.7267994Z CBZ_NODE_TAP_JSON 38 "1 - capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.241086\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.16044\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.773323\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.292696\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.827542\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 3.79056\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 2.121798\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.347335\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.521138\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.49449\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.263541\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.422092\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.29832\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.422748\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.302232\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 78.420722\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 60.200543\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 35.87274" +2026-10-29T20:46:43.7294321Z CBZ_NODE_TAP_JSON 39 "7\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 75.741458\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 141.252494\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.84108\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.596211\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.890813\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.943079\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.353043\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.926287\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.079408\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.953927\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.785378\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.179645\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 24.569412\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 21.305244\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 24.665737\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 24.58658\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.941767\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 22.926924\n type: 'test'\n ...\n# Subtest: reader movement between source settlement an" +2026-10-29T20:46:43.7312992Z CBZ_NODE_TAP_JSON 40 "d final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 24.70336\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 25.013144\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.873841\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 21.274757\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 29.324745\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.327791\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 24.199695\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.531067\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5359.964467\n" +2026-10-29T20:46:43.7411603Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:46:43.7412027Z with: +2026-10-29T20:46:43.7412195Z name: cbz-node-result +2026-10-29T20:46:43.7412424Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:46:43.7412697Z if-no-files-found: error +2026-10-29T20:46:43.7412904Z compression-level: 6 +2026-10-29T20:46:43.7413092Z overwrite: false +2026-10-29T20:46:43.7413302Z include-hidden-files: false +2026-10-29T20:46:43.7413509Z archive: true +2026-10-29T20:46:43.7413682Z env: +2026-10-29T20:46:43.7413903Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.7414300Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:46:43.7414697Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.7415051Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.7415446Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:46:43.7415811Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:46:43.7416107Z ##[endgroup] +2026-10-29T20:46:43.8892675Z With the provided path, there will be 41 files uploaded +2026-10-29T20:46:43.8911927Z Artifact name is valid! +2026-10-29T20:46:43.8912184Z Root directory input is valid! +2026-10-29T20:46:44.1255495Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:46:44.1286785Z Beginning upload of artifact content to blob storage +2026-10-29T20:46:44.4324174Z Uploaded bytes 504881 +2026-10-29T20:46:44.4630346Z Finished uploading artifact content to blob storage! +2026-10-29T20:46:44.4631236Z SHA256 digest of uploaded artifact is 15266c20096da4405c9db0991b5fbaf87d94e7cdb8d0dd3aed5f028dfc82e26e +2026-10-29T20:46:44.4631977Z Finalizing artifact upload +2026-10-29T20:46:44.9736812Z Artifact cbz-node-result successfully finalized. Artifact ID 12932490712 +2026-10-29T20:46:44.9737489Z Artifact cbz-node-result has been successfully uploaded! Final size is 504881 bytes. Artifact ID is 12932490712 +2026-10-29T20:46:44.9740455Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40951302609/artifacts/12932490712 +2026-10-29T20:46:44.9955205Z Post job cleanup. +2026-10-29T20:46:45.0737756Z [command]/usr/bin/git version +2026-10-29T20:46:45.0792701Z git version 2.56.0 +2026-10-29T20:46:45.0831334Z Temporarily overriding HOME='/home/runner/work/_temp/7913e42f-0372-40dd-ac46-3c537277377a' before making global git config changes +2026-10-29T20:46:45.0832304Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:46:45.0833739Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:46:45.0871105Z Removing SSH command configuration +2026-10-29T20:46:45.0878168Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:46:45.0917401Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:46:45.1158348Z Removing HTTP extra header +2026-10-29T20:46:45.1164017Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:46:45.1203036Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:46:45.1442206Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:46:45.1448900Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:46:45.1492225Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:46:45.1880125Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/first-implementation-normal.log b/cbz/evidence/cold-start-node/red/first-implementation-normal.log new file mode 100644 index 000000000..8c3302c7c --- /dev/null +++ b/cbz/evidence/cold-start-node/red/first-implementation-normal.log @@ -0,0 +1,522 @@ +2026-10-29T19:45:25.9800274Z Current runner version: '2.338.0' +2026-10-29T19:45:25.9817459Z ##[group]Runner Image Provisioner +2026-10-29T19:45:25.9817968Z Hosted Compute Agent +2026-10-29T19:45:25.9818469Z Version: 20261021.618 +2026-10-29T19:45:25.9818841Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:45:25.9819287Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:45:25.9819732Z Worker ID: {466a7175-fe3b-45ef-b177-32618fa69e2b} +2026-10-29T19:45:25.9820160Z Region: centralus +2026-10-29T19:45:25.9820535Z Cloud: Azure +2026-10-29T19:45:25.9820860Z ##[endgroup] +2026-10-29T19:45:25.9822094Z ##[group]Operating System +2026-10-29T19:45:25.9822471Z Ubuntu +2026-10-29T19:45:25.9822814Z 24.04.5 +2026-10-29T19:45:25.9823155Z LTS +2026-10-29T19:45:25.9823461Z ##[endgroup] +2026-10-29T19:45:25.9823779Z ##[group]Runner Image +2026-10-29T19:45:25.9824208Z Image: ubuntu-24.04 +2026-10-29T19:45:25.9824571Z Version: 20261025.353.1 +2026-10-29T19:45:25.9825349Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:45:25.9826231Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:45:25.9826789Z ##[endgroup] +2026-10-29T19:45:25.9827690Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:45:25.9829060Z Contents: read +2026-10-29T19:45:25.9829397Z Metadata: read +2026-10-29T19:45:25.9829779Z ##[endgroup] +2026-10-29T19:45:25.9831104Z Secret source: Actions +2026-10-29T19:45:25.9831969Z Cache mode: write +2026-10-29T19:45:25.9832539Z Prepare workflow directory +2026-10-29T19:45:26.0030314Z Prepare all required actions +2026-10-29T19:45:26.0060621Z Getting action download info +2026-10-29T19:45:26.2259606Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:45:26.3347737Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:45:26.4866454Z Complete job name: controls (0) +2026-10-29T19:45:26.5357315Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:45:26.5357827Z with: +2026-10-29T19:45:26.5358075Z persist-credentials: false +2026-10-29T19:45:26.5358352Z fetch-depth: 0 +2026-10-29T19:45:26.5358609Z repository: d6g8k5htny-coder/main +2026-10-29T19:45:26.5360620Z token: *** +2026-10-29T19:45:26.5360853Z ssh-strict: true +2026-10-29T19:45:26.5361094Z ssh-user: git +2026-10-29T19:45:26.5361531Z clean: true +2026-10-29T19:45:26.5361861Z sparse-checkout-cone-mode: true +2026-10-29T19:45:26.5362151Z fetch-tags: false +2026-10-29T19:45:26.5362402Z show-progress: true +2026-10-29T19:45:26.5362651Z lfs: false +2026-10-29T19:45:26.5362882Z submodules: false +2026-10-29T19:45:26.5363136Z set-safe-directory: true +2026-10-29T19:45:26.5363421Z allow-unsafe-pr-checkout: false +2026-10-29T19:45:26.5363804Z ##[endgroup] +2026-10-29T19:45:26.7576021Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:45:26.7577484Z ##[group]Getting Git version info +2026-10-29T19:45:26.7577861Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:45:26.7578392Z [command]/usr/bin/git version +2026-10-29T19:45:26.7653713Z git version 2.56.0 +2026-10-29T19:45:26.7667776Z ##[endgroup] +2026-10-29T19:45:26.7675209Z Temporarily overriding HOME='/home/runner/work/_temp/354fa6b5-32b6-47f3-b021-387359ce860a' before making global git config changes +2026-10-29T19:45:26.7676258Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:45:26.7679545Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:45:26.7731525Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:45:26.7732550Z ##[group]Determining repository object format +2026-10-29T19:45:26.7733260Z ##[endgroup] +2026-10-29T19:45:26.7733837Z ##[group]Initializing the repository +2026-10-29T19:45:26.7734382Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:45:26.7824600Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:45:26.7825514Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:45:26.7826304Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:45:26.7826942Z hint: call: +2026-10-29T19:45:26.7827281Z hint: +2026-10-29T19:45:26.7827722Z hint: git config --global init.defaultBranch +2026-10-29T19:45:26.7828247Z hint: +2026-10-29T19:45:26.7828716Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:45:26.7829531Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:45:26.7830174Z hint: +2026-10-29T19:45:26.7830520Z hint: git branch -m +2026-10-29T19:45:26.7830896Z hint: +2026-10-29T19:45:26.7831544Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:45:26.7836370Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:45:26.7844411Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:45:26.7886518Z ##[endgroup] +2026-10-29T19:45:26.7887153Z ##[group]Disabling automatic garbage collection +2026-10-29T19:45:26.7889088Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:45:26.7928888Z ##[endgroup] +2026-10-29T19:45:26.7929790Z ##[group]Setting up auth +2026-10-29T19:45:26.7930241Z Removing SSH command configuration +2026-10-29T19:45:26.7937150Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:45:26.7963427Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:45:26.8276071Z Removing HTTP extra header +2026-10-29T19:45:26.8280311Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:45:26.8319505Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:45:26.8507497Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:45:26.8511363Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:45:26.8548221Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:45:26.8736127Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:45:26.8776245Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:26.8812488Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:26.8848189Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:26.8884330Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:26.8918853Z ##[endgroup] +2026-10-29T19:45:26.8919438Z ##[group]Fetching the repository +2026-10-29T19:45:26.8923810Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T19:45:36.4047227Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:45:36.4048904Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T19:45:36.4050958Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T19:45:36.4052837Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T19:45:36.4054649Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T19:45:36.4056518Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T19:45:36.4058287Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T19:45:36.4059980Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T19:45:36.4061736Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.4063702Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T19:45:36.4065664Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T19:45:36.4067353Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T19:45:36.4069151Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T19:45:36.4071085Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T19:45:36.4073567Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T19:45:36.4075868Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T19:45:36.4078270Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T19:45:36.4080333Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T19:45:36.4082263Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T19:45:36.4084080Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T19:45:36.4086088Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T19:45:36.4088275Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T19:45:36.4090208Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T19:45:36.4092079Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T19:45:36.4093914Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T19:45:36.4095714Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T19:45:36.4097571Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T19:45:36.4099292Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T19:45:36.4101250Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T19:45:36.4103310Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T19:45:36.4105191Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T19:45:36.4107154Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T19:45:36.4109115Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T19:45:36.4111443Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T19:45:36.4113957Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T19:45:36.4116329Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T19:45:36.4119024Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T19:45:36.4122120Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T19:45:36.4125004Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T19:45:36.4128247Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T19:45:36.4131533Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T19:45:36.4133509Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T19:45:36.4134973Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T19:45:36.4136531Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T19:45:36.4138247Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T19:45:36.4140355Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T19:45:36.4142393Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T19:45:36.4144540Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T19:45:36.4146095Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T19:45:36.4147685Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T19:45:36.4149234Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T19:45:36.4151342Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T19:45:36.4153794Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T19:45:36.4156472Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T19:45:36.4159164Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T19:45:36.4161978Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T19:45:36.4164681Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T19:45:36.4167165Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T19:45:36.4169327Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T19:45:36.4172008Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T19:45:36.4174101Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T19:45:36.4176019Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T19:45:36.4177807Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T19:45:36.4179359Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T19:45:36.4181068Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T19:45:36.4183243Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T19:45:36.4184916Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T19:45:36.4186285Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T19:45:36.4188077Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T19:45:36.4189835Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T19:45:36.4191490Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T19:45:36.4192913Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T19:45:36.4194237Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T19:45:36.4195693Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T19:45:36.4197258Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T19:45:36.4198651Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T19:45:36.4200304Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T19:45:36.4202201Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T19:45:36.4203820Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T19:45:36.4205281Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T19:45:36.4206871Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T19:45:36.4208682Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T19:45:36.4211097Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T19:45:36.4214198Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T19:45:36.4217275Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T19:45:36.4220020Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T19:45:36.4222858Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T19:45:36.4225547Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T19:45:36.4228252Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T19:45:36.4230969Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T19:45:36.4233159Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T19:45:36.4234934Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T19:45:36.4236842Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T19:45:36.4238800Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T19:45:36.4240726Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T19:45:36.4243165Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T19:45:36.4245097Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T19:45:36.4246789Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T19:45:36.4248391Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T19:45:36.4250069Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T19:45:36.4252093Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T19:45:36.4255009Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T19:45:36.4257794Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T19:45:36.4259779Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T19:45:36.4261857Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T19:45:36.4263840Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T19:45:36.4265589Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T19:45:36.4267031Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T19:45:36.4269042Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T19:45:36.4271529Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T19:45:36.4273740Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T19:45:36.4275834Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T19:45:36.4277573Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T19:45:36.4279010Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T19:45:36.4280717Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T19:45:36.4282544Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T19:45:36.4284137Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T19:45:36.4285747Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T19:45:36.4287443Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T19:45:36.4289038Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T19:45:36.4290602Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T19:45:36.4292232Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T19:45:36.4293670Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T19:45:36.4295219Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T19:45:36.4297231Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T19:45:36.4299253Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T19:45:36.4300991Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T19:45:36.4302629Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T19:45:36.4304497Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T19:45:36.4306281Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T19:45:36.4308072Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T19:45:36.4309942Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T19:45:36.4311778Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T19:45:36.4313522Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T19:45:36.4315157Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T19:45:36.4317155Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T19:45:36.4319052Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T19:45:36.4320508Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T19:45:36.4322050Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T19:45:36.4323563Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T19:45:36.4325049Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T19:45:36.4326583Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T19:45:36.4328311Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T19:45:36.4329962Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T19:45:36.4331722Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T19:45:36.4333300Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T19:45:36.4335139Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T19:45:36.4337131Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T19:45:36.4339001Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T19:45:36.4340872Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T19:45:36.4342539Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T19:45:36.4344253Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T19:45:36.4346164Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T19:45:36.4347723Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T19:45:36.4349294Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T19:45:36.4351005Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T19:45:36.4353009Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T19:45:36.4354836Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T19:45:36.4356549Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T19:45:36.4358203Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T19:45:36.4359687Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T19:45:36.4361300Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T19:45:36.4362985Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T19:45:36.4364778Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T19:45:36.4366339Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T19:45:36.4367921Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T19:45:36.4369828Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T19:45:36.4371937Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T19:45:36.4374027Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T19:45:36.4376027Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T19:45:36.4377860Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T19:45:36.4379698Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T19:45:36.4381580Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T19:45:36.4383323Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T19:45:36.4384964Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T19:45:36.4386659Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T19:45:36.4388330Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T19:45:36.4390085Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T19:45:36.4392114Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T19:45:36.4393916Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T19:45:36.4395367Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T19:45:36.4396661Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T19:45:36.4398139Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T19:45:36.4399806Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T19:45:36.4401586Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T19:45:36.4403143Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T19:45:36.4404739Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T19:45:36.4406281Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T19:45:36.4407670Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T19:45:36.4409086Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T19:45:36.4410751Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T19:45:36.4412502Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T19:45:36.4414149Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T19:45:36.4415961Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T19:45:36.4417648Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T19:45:36.4419153Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T19:45:36.4420759Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T19:45:36.4422395Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T19:45:36.4423921Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T19:45:36.4425570Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T19:45:36.4427098Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T19:45:36.4428675Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T19:45:36.4430399Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T19:45:36.4432167Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T19:45:36.4433638Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T19:45:36.4435025Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T19:45:36.4436340Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T19:45:36.4437647Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T19:45:36.4498513Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T19:45:36.4501657Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T19:45:36.4504890Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T19:45:36.4507954Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T19:45:36.4510735Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T19:45:36.4512966Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T19:45:36.4514669Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T19:45:36.4516621Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T19:45:36.4518061Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T19:45:36.4519324Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T19:45:36.4520685Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T19:45:36.4522352Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T19:45:36.4523922Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T19:45:36.4525572Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T19:45:36.4527254Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T19:45:36.4528667Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T19:45:36.4529915Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T19:45:36.4531156Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T19:45:36.4532471Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T19:45:36.4533836Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T19:45:36.4535347Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T19:45:36.4536850Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T19:45:36.4538561Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T19:45:36.4539970Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T19:45:36.4541308Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T19:45:36.4542724Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T19:45:36.4544488Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T19:45:36.4546263Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T19:45:36.4547888Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T19:45:36.4549441Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T19:45:36.4551298Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T19:45:36.4553059Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T19:45:36.4554622Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T19:45:36.4555725Z * [new branch] main -> origin/main +2026-10-29T19:45:36.4556997Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T19:45:36.4558799Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T19:45:36.4560372Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T19:45:36.4561831Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T19:45:36.4562993Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T19:45:36.4564024Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T19:45:36.4564924Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T19:45:36.4565824Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T19:45:36.4566721Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T19:45:36.4567626Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T19:45:36.4568552Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T19:45:36.4569477Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T19:45:36.4570348Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T19:45:36.4572505Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.4573498Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.4574958Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.4575856Z deba06f8d8a25e7c879e9aa6f2afc2a5ad2038e6 +2026-10-29T19:45:36.4577390Z ##[endgroup] +2026-10-29T19:45:36.4578201Z ##[group]Determining the checkout info +2026-10-29T19:45:36.4579079Z ##[endgroup] +2026-10-29T19:45:36.4579596Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:45:36.4581072Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:45:36.4582938Z ##[group]Checking out the ref +2026-10-29T19:45:36.4584070Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.7220959Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:45:36.7224073Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:45:36.7251587Z ##[endgroup] +2026-10-29T19:45:36.7303242Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:45:36.7336422Z deba06f8d8a25e7c879e9aa6f2afc2a5ad2038e6 +2026-10-29T19:45:36.7344323Z ##[group]Removing auth +2026-10-29T19:45:36.7344556Z Removing SSH command configuration +2026-10-29T19:45:36.7346927Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:45:36.7385409Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:45:36.7580221Z Removing HTTP extra header +2026-10-29T19:45:36.7582983Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:45:36.7619868Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:45:36.7808289Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:45:36.7811598Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:45:36.7849071Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:45:36.7849604Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:45:36.7850015Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:45:36.7850370Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:45:36.7856762Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:45:36.7892275Z /home/runner/work/_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:36.7899848Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-db69d3ab\-f1f1\-475a\-8c05\-bffa485feb2d\.config +2026-10-29T19:45:36.7937993Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:45:36.7968200Z /home/runner/work/_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:36.7974124Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-db69d3ab\-f1f1\-475a\-8c05\-bffa485feb2d\.config +2026-10-29T19:45:36.8013192Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:45:36.8042876Z /github/runner_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:36.8048083Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-db69d3ab\-f1f1\-475a\-8c05\-bffa485feb2d\.config +2026-10-29T19:45:36.8084345Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:45:36.8112659Z /github/runner_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config +2026-10-29T19:45:36.8117216Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-db69d3ab\-f1f1\-475a\-8c05\-bffa485feb2d\.config +2026-10-29T19:45:36.8153014Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:45:36.8340442Z Removing credentials config '/home/runner/work/_temp/git-credentials-db69d3ab-f1f1-475a-8c05-bffa485feb2d.config' +2026-10-29T19:45:36.8348820Z ##[endgroup] +2026-10-29T19:45:36.8539455Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:45:36.8539703Z with: +2026-10-29T19:45:36.8539849Z python-version: 3.11 +2026-10-29T19:45:36.8540006Z check-latest: false +2026-10-29T19:45:36.8541486Z token: *** +2026-10-29T19:45:36.8541638Z update-environment: true +2026-10-29T19:45:36.8541806Z allow-prereleases: false +2026-10-29T19:45:36.8541965Z freethreaded: false +2026-10-29T19:45:36.8542117Z ##[endgroup] +2026-10-29T19:45:36.9301040Z ##[group]Installed versions +2026-10-29T19:45:36.9358261Z Successfully set up CPython (3.11.17) +2026-10-29T19:45:36.9358734Z ##[endgroup] +2026-10-29T19:45:36.9507276Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:45:36.9507979Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:45:36.9540138Z shell: /usr/bin/bash -e {0} +2026-10-29T19:45:36.9540419Z env: +2026-10-29T19:45:36.9540725Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:36.9541146Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:45:36.9541725Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:36.9542097Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:36.9542478Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:36.9542851Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:45:36.9543175Z PYTHONOPTIMIZE: 0 +2026-10-29T19:45:36.9543396Z ##[endgroup] +2026-10-29T19:45:37.0717242Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T19:45:37.0718235Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T19:45:37.0719055Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T19:45:37.0719883Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T19:45:37.0720666Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T19:45:37.0721626Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T19:45:37.1513272Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:45:37.1706042Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:45:37.1842538Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:45:37.1976849Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:45:37.2109303Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:45:37.2298936Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:45:37.2471444Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:45:37.2618535Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:45:37.2769724Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:45:37.3004823Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:45:37.3144716Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:45:37.3339973Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:45:37.3504503Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:45:37.5778502Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:45:37.5932612Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:45:37.6162588Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:45:37.6379030Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:45:37.6601092Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:45:37.6822687Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:45:37.7033465Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:45:37.7165238Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:45:37.7340691Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:45:37.7477310Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:45:37.7622551Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:45:38.6951842Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... +2026-10-29T19:45:39.0368859Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) (name='skip-summary') ... FAIL +2026-10-29T19:45:39.0369947Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... +2026-10-29T19:45:39.0370973Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='exit') ... FAIL +2026-10-29T19:45:39.0372388Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='errors') ... FAIL +2026-10-29T19:45:39.0373399Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='foreign') ... FAIL +2026-10-29T19:45:39.5804561Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T19:45:39.5805086Z +2026-10-29T19:45:39.5805180Z ====================================================================== +2026-10-29T19:45:39.5805645Z FAIL: test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) (name='skip-summary') +2026-10-29T19:45:39.5806261Z ---------------------------------------------------------------------- +2026-10-29T19:45:39.5806457Z Traceback (most recent call last): +2026-10-29T19:45:39.5810755Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 356, in test_every_source_mutation_has_its_intended_assertion +2026-10-29T19:45:39.5811350Z self.assertTrue(assertion_kill(result, expected), +2026-10-29T19:45:39.5811556Z AssertionError: False is not true : skip-summary +2026-10-29T19:45:39.5812039Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:45:39.5812308Z +2026-10-29T19:45:39.5812393Z ---------------------------------------------------------------------- +2026-10-29T19:45:39.5812574Z Ran 1 test in 0.092s +2026-10-29T19:45:39.5812651Z +2026-10-29T19:45:39.5812706Z OK +2026-10-29T19:45:39.5812763Z +2026-10-29T19:45:39.5812766Z +2026-10-29T19:45:39.5812832Z ====================================================================== +2026-10-29T19:45:39.5813217Z FAIL: test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='exit') +2026-10-29T19:45:39.5813605Z ---------------------------------------------------------------------- +2026-10-29T19:45:39.5813786Z Traceback (most recent call last): +2026-10-29T19:45:39.5814124Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 372, in test_harness_mutations_are_rejected_by_named_controls +2026-10-29T19:45:39.5814459Z self.assertEqual(source.count(old), 1, "harness anchor drift") +2026-10-29T19:45:39.5814657Z AssertionError: 2 != 1 : harness anchor drift +2026-10-29T19:45:39.5814760Z +2026-10-29T19:45:39.5814821Z ====================================================================== +2026-10-29T19:45:39.5815199Z FAIL: test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='errors') +2026-10-29T19:45:39.5815587Z ---------------------------------------------------------------------- +2026-10-29T19:45:39.5815763Z Traceback (most recent call last): +2026-10-29T19:45:39.5816063Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 372, in test_harness_mutations_are_rejected_by_named_controls +2026-10-29T19:45:39.5816391Z self.assertEqual(source.count(old), 1, "harness anchor drift") +2026-10-29T19:45:39.5816586Z AssertionError: 2 != 1 : harness anchor drift +2026-10-29T19:45:39.5816689Z +2026-10-29T19:45:39.5816751Z ====================================================================== +2026-10-29T19:45:39.5817127Z FAIL: test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='foreign') +2026-10-29T19:45:39.5817521Z ---------------------------------------------------------------------- +2026-10-29T19:45:39.5817694Z Traceback (most recent call last): +2026-10-29T19:45:39.5817992Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 372, in test_harness_mutations_are_rejected_by_named_controls +2026-10-29T19:45:39.5818344Z self.assertEqual(source.count(old), 1, "harness anchor drift") +2026-10-29T19:45:39.5818535Z AssertionError: 2 != 1 : harness anchor drift +2026-10-29T19:45:39.5818636Z +2026-10-29T19:45:39.5818714Z ---------------------------------------------------------------------- +2026-10-29T19:45:39.5818883Z Ran 33 tests in 2.509s +2026-10-29T19:45:39.5818957Z +2026-10-29T19:45:39.5819003Z FAILED (failures=4) +2026-10-29T19:45:39.5927934Z ##[error]Process completed with exit code 1. +2026-10-29T19:45:39.6018339Z Post job cleanup. +2026-10-29T19:45:39.6585018Z [command]/usr/bin/git version +2026-10-29T19:45:39.6656542Z git version 2.56.0 +2026-10-29T19:45:39.6677907Z Temporarily overriding HOME='/home/runner/work/_temp/f4da5b2b-29a1-4fac-a603-e86c6a06c2b0' before making global git config changes +2026-10-29T19:45:39.6678579Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:45:39.6682397Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:45:39.6714319Z Removing SSH command configuration +2026-10-29T19:45:39.6719415Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:45:39.6749650Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:45:39.6960958Z Removing HTTP extra header +2026-10-29T19:45:39.6970615Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:45:39.6995422Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:45:39.7189531Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:45:39.7195177Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:45:39.7234352Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:45:39.7538197Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/first-implementation-optimized.log b/cbz/evidence/cold-start-node/red/first-implementation-optimized.log new file mode 100644 index 000000000..0dfbc503b --- /dev/null +++ b/cbz/evidence/cold-start-node/red/first-implementation-optimized.log @@ -0,0 +1,522 @@ +2026-10-29T19:45:25.9050928Z Current runner version: '2.338.0' +2026-10-29T19:45:25.9076227Z ##[group]Runner Image Provisioner +2026-10-29T19:45:25.9077570Z Hosted Compute Agent +2026-10-29T19:45:25.9078164Z Version: 20261021.618 +2026-10-29T19:45:25.9078898Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:45:25.9079642Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:45:25.9080389Z Worker ID: {748dfda3-c164-4351-8513-2aeddb849b24} +2026-10-29T19:45:25.9081180Z Region: eastus2 +2026-10-29T19:45:25.9081771Z Cloud: Azure +2026-10-29T19:45:25.9082391Z ##[endgroup] +2026-10-29T19:45:25.9084226Z ##[group]Operating System +2026-10-29T19:45:25.9084959Z Ubuntu +2026-10-29T19:45:25.9085553Z 24.04.5 +2026-10-29T19:45:25.9086078Z LTS +2026-10-29T19:45:25.9086874Z ##[endgroup] +2026-10-29T19:45:25.9087450Z ##[group]Runner Image +2026-10-29T19:45:25.9088095Z Image: ubuntu-24.04 +2026-10-29T19:45:25.9088997Z Version: 20261025.353.1 +2026-10-29T19:45:25.9090234Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:45:25.9091992Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:45:25.9093322Z ##[endgroup] +2026-10-29T19:45:25.9094619Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:45:25.9097234Z Contents: read +2026-10-29T19:45:25.9097891Z Metadata: read +2026-10-29T19:45:25.9098469Z ##[endgroup] +2026-10-29T19:45:25.9100668Z Secret source: Actions +2026-10-29T19:45:25.9101616Z Cache mode: write +2026-10-29T19:45:25.9102799Z Prepare workflow directory +2026-10-29T19:45:25.9429573Z Prepare all required actions +2026-10-29T19:45:25.9478180Z Getting action download info +2026-10-29T19:45:26.1491131Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:45:26.3029163Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:45:26.5303219Z Complete job name: controls (1) +2026-10-29T19:45:26.6167422Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:45:26.6168868Z with: +2026-10-29T19:45:26.6169342Z persist-credentials: false +2026-10-29T19:45:26.6169856Z fetch-depth: 0 +2026-10-29T19:45:26.6170321Z repository: d6g8k5htny-coder/main +2026-10-29T19:45:26.6174409Z token: *** +2026-10-29T19:45:26.6174859Z ssh-strict: true +2026-10-29T19:45:26.6175343Z ssh-user: git +2026-10-29T19:45:26.6175786Z clean: true +2026-10-29T19:45:26.6176536Z sparse-checkout-cone-mode: true +2026-10-29T19:45:26.6177155Z fetch-tags: false +2026-10-29T19:45:26.6177609Z show-progress: true +2026-10-29T19:45:26.6178071Z lfs: false +2026-10-29T19:45:26.6178495Z submodules: false +2026-10-29T19:45:26.6178961Z set-safe-directory: true +2026-10-29T19:45:26.6179525Z allow-unsafe-pr-checkout: false +2026-10-29T19:45:26.6180577Z ##[endgroup] +2026-10-29T19:45:26.8711331Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:45:26.8714243Z ##[group]Getting Git version info +2026-10-29T19:45:26.8715083Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:45:26.8717138Z [command]/usr/bin/git version +2026-10-29T19:45:26.8775417Z git version 2.56.0 +2026-10-29T19:45:26.8805302Z ##[endgroup] +2026-10-29T19:45:26.8821731Z Temporarily overriding HOME='/home/runner/work/_temp/dfa1449c-1724-423a-97c0-82a9f5f3f824' before making global git config changes +2026-10-29T19:45:26.8828827Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:45:26.8831194Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:45:26.8879353Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:45:26.8883463Z ##[group]Determining repository object format +2026-10-29T19:45:26.8885777Z ##[endgroup] +2026-10-29T19:45:26.8887814Z ##[group]Initializing the repository +2026-10-29T19:45:26.8901571Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:45:26.9009106Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:45:26.9012750Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:45:26.9014995Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:45:26.9017132Z hint: call: +2026-10-29T19:45:26.9018207Z hint: +2026-10-29T19:45:26.9019465Z hint: git config --global init.defaultBranch +2026-10-29T19:45:26.9020931Z hint: +2026-10-29T19:45:26.9022429Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:45:26.9024995Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:45:26.9027583Z hint: +2026-10-29T19:45:26.9028931Z hint: git branch -m +2026-10-29T19:45:26.9030282Z hint: +2026-10-29T19:45:26.9031902Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:45:26.9034167Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:45:26.9038543Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:45:26.9092025Z ##[endgroup] +2026-10-29T19:45:26.9094132Z ##[group]Disabling automatic garbage collection +2026-10-29T19:45:26.9095983Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:45:26.9145638Z ##[endgroup] +2026-10-29T19:45:26.9148013Z ##[group]Setting up auth +2026-10-29T19:45:26.9149436Z Removing SSH command configuration +2026-10-29T19:45:26.9151637Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:45:26.9200966Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:45:26.9664251Z Removing HTTP extra header +2026-10-29T19:45:26.9672288Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:45:26.9745168Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:45:27.0004592Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:45:27.0012019Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:45:27.0066636Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:45:27.0327313Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:45:27.0378121Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:27.0421445Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:27.0467219Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:27.0513616Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:27.0555592Z ##[endgroup] +2026-10-29T19:45:27.0556988Z ##[group]Fetching the repository +2026-10-29T19:45:27.0563029Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T19:45:36.9151600Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:45:36.9156944Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T19:45:36.9158483Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T19:45:36.9159654Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T19:45:36.9160775Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T19:45:36.9162420Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T19:45:36.9163912Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T19:45:36.9165346Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T19:45:36.9166946Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.9168249Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T19:45:36.9169808Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T19:45:36.9171116Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T19:45:36.9172442Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T19:45:36.9173945Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T19:45:36.9175159Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T19:45:36.9176141Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T19:45:36.9177845Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T19:45:36.9178798Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T19:45:36.9179597Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T19:45:36.9180393Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T19:45:36.9181271Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T19:45:36.9182233Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T19:45:36.9183054Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T19:45:36.9183815Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T19:45:36.9184646Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T19:45:36.9185460Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T19:45:36.9186621Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T19:45:36.9187482Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T19:45:36.9188312Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T19:45:36.9189280Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T19:45:36.9190570Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T19:45:36.9192062Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T19:45:36.9193071Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T19:45:36.9193884Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T19:45:36.9194687Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T19:45:36.9195485Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T19:45:36.9196606Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T19:45:36.9197460Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T19:45:36.9198447Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T19:45:36.9199457Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T19:45:36.9200414Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T19:45:36.9201149Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T19:45:36.9201795Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T19:45:36.9202520Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T19:45:36.9203299Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T19:45:36.9204320Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T19:45:36.9205214Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T19:45:36.9205940Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T19:45:36.9206936Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T19:45:36.9207680Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T19:45:36.9208412Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T19:45:36.9209183Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T19:45:36.9209945Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T19:45:36.9210736Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T19:45:36.9211498Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T19:45:36.9212326Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T19:45:36.9213210Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T19:45:36.9214030Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T19:45:36.9214750Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T19:45:36.9215538Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T19:45:36.9216696Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T19:45:36.9217749Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T19:45:36.9218596Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T19:45:36.9219332Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T19:45:36.9220164Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T19:45:36.9220988Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T19:45:36.9221647Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T19:45:36.9222310Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T19:45:36.9223182Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T19:45:36.9224017Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T19:45:36.9224738Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T19:45:36.9225422Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T19:45:36.9226070Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T19:45:36.9227028Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T19:45:36.9227782Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T19:45:36.9228455Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T19:45:36.9229361Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T19:45:36.9230231Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T19:45:36.9231020Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T19:45:36.9231893Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T19:45:36.9232712Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T19:45:36.9233604Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T19:45:36.9234489Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T19:45:36.9235390Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T19:45:36.9236496Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T19:45:36.9237405Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T19:45:36.9238286Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T19:45:36.9239158Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T19:45:36.9240025Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T19:45:36.9240893Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T19:45:36.9241969Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T19:45:36.9242835Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T19:45:36.9244228Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T19:45:36.9245220Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T19:45:36.9246080Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T19:45:36.9247335Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T19:45:36.9248727Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T19:45:36.9249942Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T19:45:36.9250830Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T19:45:36.9251724Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T19:45:36.9252838Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T19:45:36.9254204Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T19:45:36.9255266Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T19:45:36.9256658Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T19:45:36.9257686Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T19:45:36.9258653Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T19:45:36.9259508Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T19:45:36.9260222Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T19:45:36.9261133Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T19:45:36.9262283Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T19:45:36.9263374Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T19:45:36.9264407Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T19:45:36.9265274Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T19:45:36.9266049Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T19:45:36.9267146Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T19:45:36.9268010Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T19:45:36.9269016Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T19:45:36.9269837Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T19:45:36.9270794Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T19:45:36.9271608Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T19:45:36.9272408Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T19:45:36.9273167Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T19:45:36.9273906Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T19:45:36.9274681Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T19:45:36.9275716Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T19:45:36.9277084Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T19:45:36.9277846Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T19:45:36.9278634Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T19:45:36.9279594Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T19:45:36.9280495Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T19:45:36.9281374Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T19:45:36.9282401Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T19:45:36.9283344Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T19:45:36.9284245Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T19:45:36.9285091Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T19:45:36.9286120Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T19:45:36.9287320Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T19:45:36.9288070Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T19:45:36.9288784Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T19:45:36.9289567Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T19:45:36.9290345Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T19:45:36.9291137Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T19:45:36.9292018Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T19:45:36.9292862Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T19:45:36.9293703Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T19:45:36.9295117Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T19:45:36.9296776Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T19:45:36.9297867Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T19:45:36.9299242Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T19:45:36.9300237Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T19:45:36.9301316Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T19:45:36.9302274Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T19:45:36.9303360Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T19:45:36.9304244Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T19:45:36.9305302Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T19:45:36.9306813Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T19:45:36.9307944Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T19:45:36.9309001Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T19:45:36.9309910Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T19:45:36.9310909Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T19:45:36.9311699Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T19:45:36.9312479Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T19:45:36.9313338Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T19:45:36.9314267Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T19:45:36.9315077Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T19:45:36.9315918Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T19:45:36.9317378Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T19:45:36.9318421Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T19:45:36.9319485Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T19:45:36.9320627Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T19:45:36.9321642Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T19:45:36.9322583Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T19:45:36.9323502Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T19:45:36.9324540Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T19:45:36.9325393Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T19:45:36.9326535Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T19:45:36.9327478Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T19:45:36.9328395Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T19:45:36.9329403Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T19:45:36.9330346Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T19:45:36.9331096Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T19:45:36.9331776Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T19:45:36.9332543Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T19:45:36.9333392Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T19:45:36.9334233Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T19:45:36.9335047Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T19:45:36.9335997Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T19:45:36.9337622Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T19:45:36.9338926Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T19:45:36.9340171Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T19:45:36.9341077Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T19:45:36.9341933Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T19:45:36.9342793Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T19:45:36.9343771Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T19:45:36.9344653Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T19:45:36.9345430Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T19:45:36.9346539Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T19:45:36.9347516Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T19:45:36.9348329Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T19:45:36.9349201Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T19:45:36.9350003Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T19:45:36.9351049Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T19:45:36.9351978Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T19:45:36.9352878Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T19:45:36.9429794Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T19:45:36.9430925Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T19:45:36.9431748Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T19:45:36.9432552Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T19:45:36.9433324Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T19:45:36.9434328Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T19:45:36.9435464Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T19:45:36.9436833Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T19:45:36.9437789Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T19:45:36.9438667Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T19:45:36.9439572Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T19:45:36.9440933Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T19:45:36.9442547Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T19:45:36.9443710Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T19:45:36.9444938Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T19:45:36.9446731Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T19:45:36.9448247Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T19:45:36.9449812Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T19:45:36.9451435Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T19:45:36.9452748Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T19:45:36.9453913Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T19:45:36.9455075Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T19:45:36.9456374Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T19:45:36.9457760Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T19:45:36.9459399Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T19:45:36.9460960Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T19:45:36.9462867Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T19:45:36.9464207Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T19:45:36.9465473Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T19:45:36.9467369Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T19:45:36.9469010Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T19:45:36.9470798Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T19:45:36.9472412Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T19:45:36.9473966Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T19:45:36.9475569Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T19:45:36.9476898Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T19:45:36.9478258Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T19:45:36.9478899Z * [new branch] main -> origin/main +2026-10-29T19:45:36.9479628Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T19:45:36.9481361Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T19:45:36.9482538Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T19:45:36.9483285Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T19:45:36.9484292Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T19:45:36.9484917Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T19:45:36.9485423Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T19:45:36.9486135Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T19:45:36.9487266Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T19:45:36.9488171Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T19:45:36.9489091Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T19:45:36.9490029Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T19:45:36.9490863Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T19:45:36.9492862Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.9493809Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.9495275Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:36.9496142Z deba06f8d8a25e7c879e9aa6f2afc2a5ad2038e6 +2026-10-29T19:45:36.9497898Z ##[endgroup] +2026-10-29T19:45:36.9498671Z ##[group]Determining the checkout info +2026-10-29T19:45:36.9499517Z ##[endgroup] +2026-10-29T19:45:36.9500049Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:45:36.9501510Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:45:36.9503174Z ##[group]Checking out the ref +2026-10-29T19:45:36.9504334Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:45:37.3635512Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:45:37.3640408Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:45:37.3674111Z ##[endgroup] +2026-10-29T19:45:37.3733797Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:45:37.3775170Z deba06f8d8a25e7c879e9aa6f2afc2a5ad2038e6 +2026-10-29T19:45:37.3787201Z ##[group]Removing auth +2026-10-29T19:45:37.3787730Z Removing SSH command configuration +2026-10-29T19:45:37.3789557Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:45:37.3843112Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:45:37.4094955Z Removing HTTP extra header +2026-10-29T19:45:37.4100239Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:45:37.4143147Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:45:37.4391214Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:45:37.4395077Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:45:37.4438669Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:45:37.4440064Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:45:37.4440845Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:45:37.4441542Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:45:37.4449670Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:45:37.4487014Z /home/runner/work/_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:37.4497487Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-e036767d\-2683\-4774\-b235\-8f6bd52b5b36\.config +2026-10-29T19:45:37.4542880Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:45:37.4577899Z /home/runner/work/_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:37.4587402Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-e036767d\-2683\-4774\-b235\-8f6bd52b5b36\.config +2026-10-29T19:45:37.4642097Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:45:37.4677809Z /github/runner_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:37.4686498Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-e036767d\-2683\-4774\-b235\-8f6bd52b5b36\.config +2026-10-29T19:45:37.4731133Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:45:37.4765371Z /github/runner_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config +2026-10-29T19:45:37.4773287Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-e036767d\-2683\-4774\-b235\-8f6bd52b5b36\.config +2026-10-29T19:45:37.4818796Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:45:37.5067490Z Removing credentials config '/home/runner/work/_temp/git-credentials-e036767d-2683-4774-b235-8f6bd52b5b36.config' +2026-10-29T19:45:37.5074774Z ##[endgroup] +2026-10-29T19:45:37.5331498Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:45:37.5331903Z with: +2026-10-29T19:45:37.5332105Z python-version: 3.11 +2026-10-29T19:45:37.5332336Z check-latest: false +2026-10-29T19:45:37.5335028Z token: *** +2026-10-29T19:45:37.5335242Z update-environment: true +2026-10-29T19:45:37.5335486Z allow-prereleases: false +2026-10-29T19:45:37.5335713Z freethreaded: false +2026-10-29T19:45:37.5335929Z ##[endgroup] +2026-10-29T19:45:37.6601040Z ##[group]Installed versions +2026-10-29T19:45:37.6692771Z Successfully set up CPython (3.11.17) +2026-10-29T19:45:37.6693638Z ##[endgroup] +2026-10-29T19:45:37.6867550Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:45:37.6868617Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:45:37.6912930Z shell: /usr/bin/bash -e {0} +2026-10-29T19:45:37.6913345Z env: +2026-10-29T19:45:37.6913788Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:37.6914531Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:45:37.6915257Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:37.6915916Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:37.6916835Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:45:37.6917503Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:45:37.6918074Z PYTHONOPTIMIZE: 1 +2026-10-29T19:45:37.6918416Z ##[endgroup] +2026-10-29T19:45:40.2925806Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T19:45:40.2928012Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T19:45:40.2929803Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T19:45:40.2931150Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T19:45:40.2932413Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T19:45:40.2933677Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T19:45:41.2325058Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:45:41.2590599Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:45:41.2776154Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:45:41.2978936Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:45:41.3167256Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:45:41.3424843Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:45:41.3648064Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:45:41.3842074Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:45:41.4058076Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:45:41.4336822Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:45:41.4528460Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:45:41.4794389Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:45:41.5015578Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:45:41.7606011Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:45:41.7803222Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:45:41.8108704Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:45:41.8387307Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:45:41.8683407Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:45:41.9123139Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:45:41.9412298Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:45:41.9599156Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:45:41.9789410Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:45:41.9973995Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:45:42.0176593Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:45:46.3236968Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... +2026-10-29T19:45:46.3239672Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) (name='skip-summary') ... FAIL +2026-10-29T19:45:47.9985368Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... +2026-10-29T19:45:47.9987384Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='exit') ... FAIL +2026-10-29T19:45:47.9989243Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='errors') ... FAIL +2026-10-29T19:45:47.9991213Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='foreign') ... FAIL +2026-10-29T19:45:49.0657007Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T19:45:49.0658057Z +2026-10-29T19:45:49.0658275Z ====================================================================== +2026-10-29T19:45:49.0668524Z FAIL: test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) (name='skip-summary') +2026-10-29T19:45:49.0670899Z ---------------------------------------------------------------------- +2026-10-29T19:45:49.0671701Z Traceback (most recent call last): +2026-10-29T19:45:49.0679395Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 356, in test_every_source_mutation_has_its_intended_assertion +2026-10-29T19:45:49.0680363Z self.assertTrue(assertion_kill(result, expected), +2026-10-29T19:45:49.0680751Z AssertionError: False is not true : skip-summary +2026-10-29T19:45:49.0681687Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:45:49.0682286Z +2026-10-29T19:45:49.0682456Z ---------------------------------------------------------------------- +2026-10-29T19:45:49.0682810Z Ran 1 test in 0.233s +2026-10-29T19:45:49.0682948Z +2026-10-29T19:45:49.0683047Z OK +2026-10-29T19:45:49.0683146Z +2026-10-29T19:45:49.0683151Z +2026-10-29T19:45:49.0683271Z ====================================================================== +2026-10-29T19:45:49.0684102Z FAIL: test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='exit') +2026-10-29T19:45:49.0684951Z ---------------------------------------------------------------------- +2026-10-29T19:45:49.0685302Z Traceback (most recent call last): +2026-10-29T19:45:49.0686049Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 372, in test_harness_mutations_are_rejected_by_named_controls +2026-10-29T19:45:49.0687006Z self.assertEqual(source.count(old), 1, "harness anchor drift") +2026-10-29T19:45:49.0687412Z AssertionError: 2 != 1 : harness anchor drift +2026-10-29T19:45:49.0687628Z +2026-10-29T19:45:49.0687745Z ====================================================================== +2026-10-29T19:45:49.0688569Z FAIL: test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='errors') +2026-10-29T19:45:49.0689415Z ---------------------------------------------------------------------- +2026-10-29T19:45:49.0689783Z Traceback (most recent call last): +2026-10-29T19:45:49.0690429Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 372, in test_harness_mutations_are_rejected_by_named_controls +2026-10-29T19:45:49.0691117Z self.assertEqual(source.count(old), 1, "harness anchor drift") +2026-10-29T19:45:49.0691505Z AssertionError: 2 != 1 : harness anchor drift +2026-10-29T19:45:49.0691710Z +2026-10-29T19:45:49.0691819Z ====================================================================== +2026-10-29T19:45:49.0692582Z FAIL: test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) (name='foreign') +2026-10-29T19:45:49.0693382Z ---------------------------------------------------------------------- +2026-10-29T19:45:49.0693711Z Traceback (most recent call last): +2026-10-29T19:45:49.0694357Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 372, in test_harness_mutations_are_rejected_by_named_controls +2026-10-29T19:45:49.0695042Z self.assertEqual(source.count(old), 1, "harness anchor drift") +2026-10-29T19:45:49.0695449Z AssertionError: 2 != 1 : harness anchor drift +2026-10-29T19:45:49.0695655Z +2026-10-29T19:45:49.0695801Z ---------------------------------------------------------------------- +2026-10-29T19:45:49.0696135Z Ran 33 tests in 8.773s +2026-10-29T19:45:49.0696416Z +2026-10-29T19:45:49.0696507Z FAILED (failures=4) +2026-10-29T19:45:49.0832614Z ##[error]Process completed with exit code 1. +2026-10-29T19:45:49.0988202Z Post job cleanup. +2026-10-29T19:45:49.1874706Z [command]/usr/bin/git version +2026-10-29T19:45:49.1923439Z git version 2.56.0 +2026-10-29T19:45:49.1960035Z Temporarily overriding HOME='/home/runner/work/_temp/ecb21fc7-050b-43f9-ac46-898ec4158524' before making global git config changes +2026-10-29T19:45:49.1961376Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:45:49.1964626Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:45:49.2000940Z Removing SSH command configuration +2026-10-29T19:45:49.2008340Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:45:49.2051963Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:45:49.2328255Z Removing HTTP extra header +2026-10-29T19:45:49.2335983Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:45:49.2379016Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:45:49.2667063Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:45:49.2673878Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:45:49.2742883Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:45:49.3234393Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/fixture-exit-hosted.log b/cbz/evidence/cold-start-node/red/fixture-exit-hosted.log new file mode 100644 index 000000000..f3e19a231 --- /dev/null +++ b/cbz/evidence/cold-start-node/red/fixture-exit-hosted.log @@ -0,0 +1,737 @@ +2026-10-29T20:53:39.4314414Z Current runner version: '2.338.0' +2026-10-29T20:53:39.4345483Z ##[group]Runner Image Provisioner +2026-10-29T20:53:39.4346688Z Hosted Compute Agent +2026-10-29T20:53:39.4347490Z Version: 20261021.618 +2026-10-29T20:53:39.4348227Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:53:39.4349205Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:53:39.4350043Z Worker ID: {7e9ebd84-b5b5-4511-ae00-073c167a2795} +2026-10-29T20:53:39.4350839Z Region: centralus +2026-10-29T20:53:39.4351697Z Cloud: Azure +2026-10-29T20:53:39.4352284Z ##[endgroup] +2026-10-29T20:53:39.4354519Z ##[group]Operating System +2026-10-29T20:53:39.4355489Z Ubuntu +2026-10-29T20:53:39.4356066Z 24.04.5 +2026-10-29T20:53:39.4356803Z LTS +2026-10-29T20:53:39.4357380Z ##[endgroup] +2026-10-29T20:53:39.4357988Z ##[group]Runner Image +2026-10-29T20:53:39.4358766Z Image: ubuntu-24.04-arm +2026-10-29T20:53:39.4359400Z Version: 20261025.165.1 +2026-10-29T20:53:39.4360892Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:53:39.4362522Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:53:39.4363682Z ##[endgroup] +2026-10-29T20:53:39.4365167Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:53:39.4368337Z Contents: read +2026-10-29T20:53:39.4369014Z Metadata: read +2026-10-29T20:53:39.4369804Z ##[endgroup] +2026-10-29T20:53:39.4372478Z Secret source: Actions +2026-10-29T20:53:39.4373597Z Cache mode: write +2026-10-29T20:53:39.4375227Z Prepare workflow directory +2026-10-29T20:53:39.4777716Z Prepare all required actions +2026-10-29T20:53:39.4830796Z Getting action download info +2026-10-29T20:53:39.7378563Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:53:39.8700956Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:53:40.0548509Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:53:40.2231747Z Complete job name: controls-and-prepared +2026-10-29T20:53:40.3222950Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:53:40.3225129Z with: +2026-10-29T20:53:40.3225785Z persist-credentials: false +2026-10-29T20:53:40.3226409Z fetch-depth: 0 +2026-10-29T20:53:40.3227188Z repository: d6g8k5htny-coder/main +2026-10-29T20:53:40.3231028Z token: *** +2026-10-29T20:53:40.3231761Z ssh-strict: true +2026-10-29T20:53:40.3232339Z ssh-user: git +2026-10-29T20:53:40.3232888Z clean: true +2026-10-29T20:53:40.3233576Z sparse-checkout-cone-mode: true +2026-10-29T20:53:40.3234492Z fetch-tags: false +2026-10-29T20:53:40.3235287Z show-progress: true +2026-10-29T20:53:40.3235940Z lfs: false +2026-10-29T20:53:40.3237037Z submodules: false +2026-10-29T20:53:40.3237648Z set-safe-directory: true +2026-10-29T20:53:40.3238473Z allow-unsafe-pr-checkout: false +2026-10-29T20:53:40.3239794Z ##[endgroup] +2026-10-29T20:53:40.4137134Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:53:40.4139644Z ##[group]Getting Git version info +2026-10-29T20:53:40.4140703Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:53:40.4175678Z [command]/usr/bin/git version +2026-10-29T20:53:40.4279820Z git version 2.56.0 +2026-10-29T20:53:40.4297928Z ##[endgroup] +2026-10-29T20:53:40.4318980Z Temporarily overriding HOME='/home/runner/work/_temp/d66ad8b8-8143-4074-a2df-8d9cfcd6b8a1' before making global git config changes +2026-10-29T20:53:40.4320578Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:53:40.4323033Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:53:40.4385192Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:53:40.4393006Z ##[group]Determining repository object format +2026-10-29T20:53:40.4395685Z ##[endgroup] +2026-10-29T20:53:40.4397100Z ##[group]Initializing the repository +2026-10-29T20:53:40.4398323Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:53:40.4483308Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:53:40.4497650Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:53:40.4506336Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:53:40.4508226Z hint: call: +2026-10-29T20:53:40.4508965Z hint: +2026-10-29T20:53:40.4509722Z hint: git config --global init.defaultBranch +2026-10-29T20:53:40.4510662Z hint: +2026-10-29T20:53:40.4511400Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:53:40.4512505Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:53:40.4513482Z hint: +2026-10-29T20:53:40.4514321Z hint: git branch -m +2026-10-29T20:53:40.4515086Z hint: +2026-10-29T20:53:40.4515876Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:53:40.4516951Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:53:40.4519059Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:53:40.4561132Z ##[endgroup] +2026-10-29T20:53:40.4563138Z ##[group]Disabling automatic garbage collection +2026-10-29T20:53:40.4564918Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:53:40.4637205Z ##[endgroup] +2026-10-29T20:53:40.4638522Z ##[group]Setting up auth +2026-10-29T20:53:40.4639575Z Removing SSH command configuration +2026-10-29T20:53:40.4642079Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:53:40.4680566Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:53:40.5010072Z Removing HTTP extra header +2026-10-29T20:53:40.5015145Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:53:40.5046942Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:53:40.5257558Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:53:40.5262871Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:53:40.5296622Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:53:40.5521929Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:53:40.5566074Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:40.5604821Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:40.5644611Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:40.5681000Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:40.5716085Z ##[endgroup] +2026-10-29T20:53:40.5717078Z ##[group]Fetching the repository +2026-10-29T20:53:40.5722583Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +9166f9b0bec547e76908147bc71ab8aa3e8242df:refs/remotes/pull/707/merge +2026-10-29T20:53:52.3849449Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:53:52.3852131Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:53:52.3855427Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:53:52.3858267Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:53:52.3861321Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:53:52.3864544Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:53:52.3867750Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:53:52.3870633Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:53:52.3875447Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:53:52.3878587Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:53:52.3881147Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:53:52.3883765Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T20:53:52.3886973Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:53:52.3889875Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:53:52.3893254Z * [new branch] cbz/foundation-evidence-reconciliation-20261029 -> origin/cbz/foundation-evidence-reconciliation-20261029 +2026-10-29T20:53:52.3896980Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:53:52.3899768Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:53:52.3902401Z * [new branch] cbz/main-regression-skips-20261029 -> origin/cbz/main-regression-skips-20261029 +2026-10-29T20:53:52.3905148Z * [new branch] cbz/main-retire-superseded-20261029 -> origin/cbz/main-retire-superseded-20261029 +2026-10-29T20:53:52.3907966Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:53:52.3910516Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:53:52.3912979Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:53:52.3915737Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:53:52.3918956Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:53:52.3921987Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:53:52.3925052Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:53:52.3928020Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:53:52.3930661Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:53:52.3933200Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:53:52.3937082Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:53:52.3940158Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:53:52.3943060Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:53:52.3945650Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:53:52.3948128Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:53:52.3950758Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:53:52.3953324Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:53:52.3956048Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:53:52.3958710Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:53:52.3961308Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:53:52.3964065Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:53:52.3966750Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:53:52.3969454Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:53:52.3971993Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:53:52.3975017Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:53:52.3977731Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:53:52.3980304Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:53:52.3982892Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:53:52.3985924Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:53:52.3988829Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:53:52.3991764Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:53:52.3994215Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:53:52.3996434Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:53:52.3998604Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:53:52.4000899Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:53:52.4003439Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:53:52.4006286Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:53:52.4008570Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:53:52.4011020Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:53:52.4013183Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:53:52.4015628Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:53:52.4017867Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:53:52.4020176Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:53:52.4022395Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:53:52.4024699Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:53:52.4027196Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:53:52.4029739Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:53:52.4032148Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:53:52.4034412Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:53:52.4036751Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:53:52.4039337Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:53:52.4041697Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:53:52.4044431Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:53:52.4046970Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:53:52.4049417Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:53:52.4051928Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:53:52.4054004Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:53:52.4056092Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:53:52.4058662Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:53:52.4061117Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:53:52.4063423Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:53:52.4065775Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:53:52.4067749Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:53:52.4070002Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:53:52.4072164Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:53:52.4074584Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:53:52.4076734Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:53:52.4079368Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:53:52.4081717Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:53:52.4083987Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:53:52.4086360Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:53:52.4088839Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:53:52.4091258Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:53:52.4093965Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:53:52.4096511Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:53:52.4099136Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:53:52.4101636Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:53:52.4104232Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:53:52.4106832Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:53:52.4109448Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:53:52.4112012Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:53:52.4114525Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:53:52.4117331Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:53:52.4120122Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:53:52.4122527Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:53:52.4125296Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:53:52.4127802Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:53:52.4130055Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:53:52.4132400Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:53:52.4134890Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:53:52.4137356Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:53:52.4139892Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:53:52.4142306Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T20:53:52.4144757Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:53:52.4147139Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:53:52.4149909Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:53:52.4152346Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:53:52.4155172Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:53:52.4157609Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:53:52.4159755Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:53:52.4162287Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:53:52.4165503Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:53:52.4168391Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:53:52.4171265Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:53:52.4173600Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:53:52.4175851Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:53:52.4178173Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:53:52.4180467Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:53:52.4182791Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:53:52.4185359Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:53:52.4187545Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:53:52.4189877Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:53:52.4192004Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:53:52.4194418Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:53:52.4196470Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:53:52.4198573Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:53:52.4201420Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:53:52.4204571Z * [new branch] codex/public-intake-discovery-20261029 -> origin/codex/public-intake-discovery-20261029 +2026-10-29T20:53:52.4206925Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:53:52.4208976Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:53:52.4211088Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:53:52.4213650Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:53:52.4216690Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:53:52.4219208Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:53:52.4221537Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:53:52.4224059Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:53:52.4226628Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:53:52.4228961Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:53:52.4231763Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:53:52.4234495Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:53:52.4236551Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:53:52.4238707Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:53:52.4240843Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:53:52.4243003Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:53:52.4245340Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:53:52.4247688Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:53:52.4250097Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:53:52.4252632Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:53:52.4255134Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:53:52.4257504Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:53:52.4260150Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:53:52.4262747Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:53:52.4265707Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:53:52.4268082Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:53:52.4270559Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:53:52.4273106Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:53:52.4275640Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:53:52.4277818Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:53:52.4280216Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:53:52.4283156Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:53:52.4285925Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:53:52.4288516Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:53:52.4290675Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:53:52.4292833Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:53:52.4295213Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:53:52.4297570Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:53:52.4300173Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:53:52.4302367Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:53:52.4305009Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:53:52.4307601Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:53:52.4310249Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:53:52.4313200Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:53:52.4316221Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:53:52.4319154Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:53:52.4321680Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:53:52.4324312Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:53:52.4326912Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:53:52.4329133Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:53:52.4331561Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:53:52.4333977Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:53:52.4336463Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:53:52.4339168Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:53:52.4341565Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:53:52.4343567Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:53:52.4345879Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:53:52.4348021Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:53:52.4350386Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:53:52.4353030Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:53:52.4355691Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:53:52.4357823Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:53:52.4359934Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:53:52.4362030Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:53:52.4364307Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:53:52.4366906Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:53:52.4369259Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:53:52.4371500Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:53:52.4374259Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:53:52.4376539Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:53:52.4378571Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:53:52.4381016Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:53:52.4383255Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:53:52.4386194Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:53:52.4388528Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:53:52.4390603Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:53:52.4392808Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:53:52.4395774Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:53:52.4398210Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:53:52.4400296Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:53:52.4402283Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:53:52.4404645Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:53:52.4406593Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:53:52.4408759Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:53:52.4411348Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:53:52.4414432Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:53:52.4417227Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:53:52.4419995Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:53:52.4422375Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:53:52.4425021Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:53:52.4427495Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:53:52.4429682Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:53:52.4431624Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:53:52.4433773Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:53:52.4436195Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:53:52.4438440Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:53:52.4440956Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:53:52.4443239Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:53:52.4445547Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:53:52.4447517Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:53:52.4449422Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:53:52.4451714Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:53:52.4453788Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:53:52.4456231Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:53:52.4458370Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:53:52.4460669Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:53:52.4462822Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:53:52.4465065Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:53:52.4467226Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:53:52.4469593Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:53:52.4472086Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:53:52.4474830Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:53:52.4477095Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:53:52.4479579Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:53:52.4482120Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:53:52.4484943Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:53:52.4486760Z * [new branch] main -> origin/main +2026-10-29T20:53:52.4488622Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:53:52.4491076Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:53:52.4493340Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:53:52.4495598Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:53:52.4497526Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:53:52.4499226Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:53:52.4500739Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:53:52.4502472Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:53:52.4504135Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:53:52.4505795Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:53:52.4507370Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:53:52.4508962Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:53:52.4510586Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:53:52.4512106Z * [new ref] 9166f9b0bec547e76908147bc71ab8aa3e8242df -> pull/707/merge +2026-10-29T20:53:52.4515672Z ##[endgroup] +2026-10-29T20:53:52.4517147Z ##[group]Determining the checkout info +2026-10-29T20:53:52.4518846Z ##[endgroup] +2026-10-29T20:53:52.4519927Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:53:52.4522568Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:53:52.4525805Z ##[group]Checking out the ref +2026-10-29T20:53:52.4527042Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T20:53:52.6640647Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T20:53:52.6641669Z +2026-10-29T20:53:52.6642256Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T20:53:52.6642880Z changes and commit them, and you can discard any commits you make in this +2026-10-29T20:53:52.6643438Z state without impacting any branches by switching back to a branch. +2026-10-29T20:53:52.6644228Z +2026-10-29T20:53:52.6644477Z If you want to create a new branch to retain commits you create, you may +2026-10-29T20:53:52.6645062Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T20:53:52.6645513Z +2026-10-29T20:53:52.6664847Z git switch -c +2026-10-29T20:53:52.6665160Z +2026-10-29T20:53:52.6665340Z Or undo this operation with: +2026-10-29T20:53:52.6665566Z +2026-10-29T20:53:52.6665698Z git switch - +2026-10-29T20:53:52.6666022Z +2026-10-29T20:53:52.6666363Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T20:53:52.6666750Z +2026-10-29T20:53:52.6667233Z HEAD is now at 9166f9b0 Merge 69413c7c9878be8b49a27642531cc05c84f21d8a into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T20:53:52.6670102Z ##[endgroup] +2026-10-29T20:53:52.6715302Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:53:52.6741950Z 9166f9b0bec547e76908147bc71ab8aa3e8242df +2026-10-29T20:53:52.6749636Z ##[group]Removing auth +2026-10-29T20:53:52.6750945Z Removing SSH command configuration +2026-10-29T20:53:52.6756274Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:53:52.6788148Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:53:52.6995942Z Removing HTTP extra header +2026-10-29T20:53:52.6997341Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:53:52.7029831Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:53:52.7234807Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:53:52.7236875Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:53:52.7261345Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:53:52.7262004Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:53:52.7262563Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:53:52.7263383Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:53:52.7268880Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:53:52.7293995Z /home/runner/work/_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:52.7305549Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-ba2a87df\-b500\-49a3\-81ff\-306311325fee\.config +2026-10-29T20:53:52.7340804Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:53:52.7365337Z /home/runner/work/_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:52.7372482Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-ba2a87df\-b500\-49a3\-81ff\-306311325fee\.config +2026-10-29T20:53:52.7410092Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:53:52.7435451Z /github/runner_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:52.7442288Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-ba2a87df\-b500\-49a3\-81ff\-306311325fee\.config +2026-10-29T20:53:52.7487470Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:53:52.7513089Z /github/runner_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config +2026-10-29T20:53:52.7520770Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-ba2a87df\-b500\-49a3\-81ff\-306311325fee\.config +2026-10-29T20:53:52.7559546Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:53:52.7771699Z Removing credentials config '/home/runner/work/_temp/git-credentials-ba2a87df-b500-49a3-81ff-306311325fee.config' +2026-10-29T20:53:52.7785521Z ##[endgroup] +2026-10-29T20:53:52.8083276Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:53:52.8084312Z with: +2026-10-29T20:53:52.8084874Z python-version: 3.11 +2026-10-29T20:53:52.8085196Z check-latest: false +2026-10-29T20:53:52.8087924Z token: *** +2026-10-29T20:53:52.8088325Z update-environment: true +2026-10-29T20:53:52.8088670Z allow-prereleases: false +2026-10-29T20:53:52.8089069Z freethreaded: false +2026-10-29T20:53:52.8089371Z ##[endgroup] +2026-10-29T20:53:52.9128793Z ##[group]Installed versions +2026-10-29T20:53:52.9230425Z Successfully set up CPython (3.11.17) +2026-10-29T20:53:52.9251245Z ##[endgroup] +2026-10-29T20:53:52.9413048Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:53:52.9414628Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:53:52.9645767Z shell: /usr/bin/bash -e {0} +2026-10-29T20:53:52.9646238Z env: +2026-10-29T20:53:52.9646627Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:53:52.9647317Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:53:52.9647867Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:53:52.9648489Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:53:52.9649083Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:53:52.9649586Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:53:52.9650141Z ##[endgroup] +2026-10-29T20:53:53.9121873Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:53:53.9130530Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:53:53.9131613Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:53:53.9132648Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:53:53.9143906Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... FAIL +2026-10-29T20:53:53.9145054Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:53:53.9146323Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:53:53.9147296Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:53:53.9148109Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:53:53.9149127Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:53:53.9149976Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:53:53.9150984Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:53:53.9152068Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:53:53.9152966Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:53:54.1866897Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:53:54.2090777Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:53:54.4365530Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:53:54.4611813Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:53:54.4799259Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:53:54.4988313Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:53:54.5187761Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:53:54.5427680Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:53:54.6945872Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:53:54.7134275Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:53:54.7379347Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:53:54.7644815Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:53:54.7830153Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:53:54.8025976Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:53:54.8299687Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:53:54.8490236Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:53:54.8690723Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:53:54.8915091Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:53:55.0010873Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:53:55.0210274Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:53:55.0490966Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:53:55.0787455Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:53:55.1073513Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:53:55.1350723Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:53:55.1785213Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:53:55.2107665Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:53:55.2297177Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:53:55.2484969Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:53:55.2819745Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:53:55.3007840Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:53:55.3208720Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:53:58.3176507Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:53:59.0014347Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:54:00.1449722Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:54:00.1450691Z +2026-10-29T20:54:00.1450911Z ====================================================================== +2026-10-29T20:54:00.1451662Z FAIL: test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) +2026-10-29T20:54:00.1452517Z ---------------------------------------------------------------------- +2026-10-29T20:54:00.1452898Z Traceback (most recent call last): +2026-10-29T20:54:00.1459870Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 608, in test_fixture_receipt_requires_successful_node_exit +2026-10-29T20:54:00.1460900Z self.assertFalse(receipt.exists(), mutation) +2026-10-29T20:54:00.1461300Z AssertionError: True is not false : fixture-domain +2026-10-29T20:54:00.1461519Z +2026-10-29T20:54:00.1461813Z ---------------------------------------------------------------------- +2026-10-29T20:54:00.1462222Z Ran 48 tests in 6.233s +2026-10-29T20:54:00.1462414Z +2026-10-29T20:54:00.1462949Z FAILED (failures=1) +2026-10-29T20:54:00.1610047Z ##[error]Process completed with exit code 1. +2026-10-29T20:54:00.1694455Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:54:00.1695532Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:54:00.1747576Z shell: /usr/bin/bash -e {0} +2026-10-29T20:54:00.1747924Z env: +2026-10-29T20:54:00.1748355Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:00.1748851Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:54:00.1749377Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:00.1749874Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:00.1750309Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:00.1750813Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:54:00.1751226Z ##[endgroup] +2026-10-29T20:54:02.0898059Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:54:02.0904672Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:54:02.0905728Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:54:02.0907682Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:54:02.0919397Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... FAIL +2026-10-29T20:54:02.0920637Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:54:02.0922018Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:54:02.0923001Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:54:02.0924135Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:54:02.0925046Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:54:02.0926012Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:54:02.0926939Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:54:02.0928038Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:54:02.0929019Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:54:02.6934388Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:54:02.7147194Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:54:02.8232486Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:54:02.8490023Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:54:02.8714412Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:54:02.8904455Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:54:02.9107909Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:54:02.9305538Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:54:03.4796507Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:54:03.4984954Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:54:03.5220281Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:54:03.5450692Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:54:03.5639788Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:54:03.5834737Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:54:03.6108634Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:54:03.6298348Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:54:03.6496530Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:54:03.6707466Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:54:03.7756449Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:54:03.7943949Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:54:03.8215589Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:54:03.8502205Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:54:03.8774242Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:54:03.9052312Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:54:03.9349385Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:54:03.9640457Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:54:03.9858905Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:54:04.0051344Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:54:04.0382123Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:54:04.0570750Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:54:04.0770212Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:54:12.7785111Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:54:14.9289760Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:54:16.7197857Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:54:16.7198521Z +2026-10-29T20:54:16.7199003Z ====================================================================== +2026-10-29T20:54:16.7199742Z FAIL: test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) +2026-10-29T20:54:16.7200492Z ---------------------------------------------------------------------- +2026-10-29T20:54:16.7201581Z Traceback (most recent call last): +2026-10-29T20:54:16.7203035Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 608, in test_fixture_receipt_requires_successful_node_exit +2026-10-29T20:54:16.7204131Z self.assertFalse(receipt.exists(), mutation) +2026-10-29T20:54:16.7204559Z AssertionError: True is not false : fixture-domain +2026-10-29T20:54:16.7204789Z +2026-10-29T20:54:16.7204960Z ---------------------------------------------------------------------- +2026-10-29T20:54:16.7205887Z Ran 48 tests in 14.630s +2026-10-29T20:54:16.7206051Z +2026-10-29T20:54:16.7206141Z FAILED (failures=1) +2026-10-29T20:54:16.7361650Z ##[error]Process completed with exit code 1. +2026-10-29T20:54:16.7412770Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:54:16.7413651Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:54:16.7414600Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:54:16.7448693Z shell: /usr/bin/bash -e {0} +2026-10-29T20:54:16.7449228Z env: +2026-10-29T20:54:16.7449540Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:16.7450132Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:54:16.7450620Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:16.7451044Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:16.7451535Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:16.7452052Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:54:16.7452496Z ##[endgroup] +2026-10-29T20:54:16.7519174Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:54:18.3363339Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:54:18.6808394Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:54:18.6809834Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:54:18.6845023Z shell: /usr/bin/bash -e {0} +2026-10-29T20:54:18.6845392Z env: +2026-10-29T20:54:18.6845707Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:18.6846829Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:54:18.6847343Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:18.6847767Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:18.6848260Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:18.6848806Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:54:18.6849338Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:54:18.6849774Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:54:18.6850132Z ##[endgroup] +2026-10-29T20:54:24.7041033Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:54:24.7205442Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:54:24.7206108Z python -B -S - <<'PY' +2026-10-29T20:54:24.7206454Z import hashlib, json, os +2026-10-29T20:54:24.7206813Z from pathlib import Path +2026-10-29T20:54:24.7207201Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T20:54:24.7207694Z record = json.loads((root / "result.json").read_text()) +2026-10-29T20:54:24.7208247Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T20:54:24.7208721Z raw = (root / "node.tap").read_bytes() +2026-10-29T20:54:24.7209077Z def verify_log(value): +2026-10-29T20:54:24.7209461Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T20:54:24.7209979Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T20:54:24.7210461Z verify_log(raw) +2026-10-29T20:54:24.7210823Z try: +2026-10-29T20:54:24.7211180Z  verify_log(raw + b"\0") +2026-10-29T20:54:24.7211505Z except ValueError: +2026-10-29T20:54:24.7211852Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T20:54:24.7212226Z else: +2026-10-29T20:54:24.7212531Z  raise SystemExit("modified transcript was admitted") +2026-10-29T20:54:24.7213218Z text = raw.decode("utf-8") +2026-10-29T20:54:24.7213583Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T20:54:24.7214327Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T20:54:24.7214852Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T20:54:24.7215314Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T20:54:24.7215782Z for number, chunk in enumerate(chunks): +2026-10-29T20:54:24.7216213Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T20:54:24.7216609Z PY +2026-10-29T20:54:24.7249208Z shell: /usr/bin/bash -e {0} +2026-10-29T20:54:24.7249689Z env: +2026-10-29T20:54:24.7250074Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.7250543Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:54:24.7251131Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.7251555Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.7252086Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.7252554Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:54:24.7252908Z ##[endgroup] +2026-10-29T20:54:24.7544378Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:54:24.702498+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "71420720d892a9f91f437b9ec7745e143a1f9e655a4fd72a9e69e76fb45444d3", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "9166f9b0bec547e76908147bc71ab8aa3e8242df", "source_before": "9166f9b0bec547e76908147bc71ab8aa3e8242df", "started_utc": "2026-10-29T20:54:18.748918+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:54:24.7584458Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T20:54:24.7584764Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T20:54:24.7585086Z CBZ_NODE_TAP_GIT_BLOB e31aff1b58e38c35753b4d3eb77080373c8d24cd +2026-10-29T20:54:24.7598583Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 30.296963\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 2.632832\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.698205\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 2.51255\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.161406\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.649811\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.580963\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.984692\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.604736\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.68875\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.573668\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.084295\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 1.000465\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.452923\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 4.210572\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.788386\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.652251\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.089385\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.017079\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.604216\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit bri" +2026-10-29T20:54:24.7624845Z CBZ_NODE_TAP_JSON 1 "dge\n ---\n duration_ms: 0.56087\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.269433\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.541768\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.804529\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.561838\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.099597\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.857482\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.886335\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.991595\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.28108\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 2.221792\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.798042\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.945089\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.797169\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 1.762047\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.294085\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.356317\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.315666\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.366692\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.188633\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot remai" +2026-10-29T20:54:24.7651407Z CBZ_NODE_TAP_JSON 2 "ns a visible reading action\n ---\n duration_ms: 0.123602\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.186378\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.392043\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.295581\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.164309\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 1.946817\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.770116\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 0.981491\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.162038\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 0.919027\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 1.037501\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 1.540121\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.644829\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.518074\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.762015\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.348376\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.348486\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.085167\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are dete" +2026-10-29T20:54:24.7678226Z CBZ_NODE_TAP_JSON 3 "rministic and inputs remain unchanged\n ---\n duration_ms: 1.035125\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.416719\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.236763\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 2.648126\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.45754\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 2.263339\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.448563\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 6.511411\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.703542\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.664585\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.965805\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.728473\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.275688\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.989283\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.164918\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.17174\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 13.483431\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 9.135964\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 104.854552\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history state" +2026-10-29T20:54:24.7704461Z CBZ_NODE_TAP_JSON 4 "; share link only includes filters\n ---\n duration_ms: 46.652589\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 58.699712\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 43.566828\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 29.854232\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 29.896019\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 35.043304\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 9.135004\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 25.308907\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 24.113449\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 25.632869\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 26.596995\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 10.842945\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 10.168353\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 6.183626\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.83031\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 9.683315\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.821198\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.129786\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.684607\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers u" +2026-10-29T20:54:24.7730746Z CBZ_NODE_TAP_JSON 5 "se distinct identities and ordinary, non-live count spans\n ---\n duration_ms: 6.341207\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 15.586278\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 5.124568\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.186595\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.86701\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.690687\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 1.445892\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 1.080128\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 2.565799\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 2.384165\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.254035\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 2.701055\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 1.12853\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 2.680898\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.699509\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 1.047388\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 5.24121\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.66952\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.584778\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 1.571221\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 1.017119\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 3.020481\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 3.887227\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 1.006177\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 1.146272\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid rang" +2026-10-29T20:54:24.7757188Z CBZ_NODE_TAP_JSON 6 "e\n ---\n duration_ms: 0.871664\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.891598\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 0.963341\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.152062\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 1.822648\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.644684\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 2.696215\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 2.025648\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 1.081783\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 0.703372\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 4.050167\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.808896\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 3.124661\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 1.050428\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.46944\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 1.102437\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 1.747648\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 1.554103\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 1.802418\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 1.061378\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.646702\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 11.490868\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort" +2026-10-29T20:54:24.7783436Z CBZ_NODE_TAP_JSON 7 " signal\n ---\n duration_ms: 3.718575\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.390019\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 2.169527\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.486047\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.279887\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 3.156833\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 3.617474\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.942888\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.830957\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 3.647575\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 14.401386\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 2.121812\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 19.791562\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.663571\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.573724\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.325642\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 2.984669\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 2.74529\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.88783\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.929041\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request ca" +2026-10-29T20:54:24.7809489Z CBZ_NODE_TAP_JSON 8 "n construct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.681967\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.742552\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.364373\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.224357\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.556462\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.47712\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.159205\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.322098\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.152766\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.633693\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 139.409569\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.335088\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.394489\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.703038\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.594393\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.487734\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.34152\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewri" +2026-10-29T20:54:24.7835875Z CBZ_NODE_TAP_JSON 9 "ting the address\n ---\n duration_ms: 0.284022\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.782363\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.602657\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.420614\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.395145\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.25033\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.344351\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.254298\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.536425\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.38733\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.506492\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.374443\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.839284\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 8.13609\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 0.828678\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.643075\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 0.934585\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.700661\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration_m" +2026-10-29T20:54:24.7861813Z CBZ_NODE_TAP_JSON 10 "s: 0.534505\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 1.379692\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.519522\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.839692\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.068625\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.64234\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.515106\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.578564\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.511915\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.536048\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.697478\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.552814\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.401976\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.56834\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.586626\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.591778\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.464153\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.471472\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.438628\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 0.635565\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.499325\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.606328\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.165725\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 0.939441\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.817471\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 2.856789\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.913516\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.640628\n type: 'test'\n ...\n# Subtest: acquisition: " +2026-10-29T20:54:24.7888075Z CBZ_NODE_TAP_JSON 11 "independent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 2.012401\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.643491\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.518379\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.542512\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.506116\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.466641\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.511476\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.536096\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.757846\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.530361\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.491862\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.28736\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.828494\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.090525\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.157085\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.38781\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.201696\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.394273\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 3.035415\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 1.862651\n type: 'test'\n ...\n# Subtest: e" +2026-10-29T20:54:24.7914650Z CBZ_NODE_TAP_JSON 12 "quation and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.159997\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.123442\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.597617\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 13.170068\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.545783\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.191201\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.259161\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.31613\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 6.649474\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.560126\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 4.024002\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.288174\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 0.9821\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.3671\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 19.729394\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 5.261407\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 7.347952\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_m" +2026-10-29T20:54:24.7941008Z CBZ_NODE_TAP_JSON 13 "s: 7.201769\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 14.128187\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 33.08532\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 20.926315\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 24.62658\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 2.906519\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.21931\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.50418\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.435436\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 58.348617\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 4.2801\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 4.625755\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.126924\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.506148\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.256906\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.468184\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.731921\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.199552\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - only e" +2026-10-29T20:54:24.7967343Z CBZ_NODE_TAP_JSON 14 "xact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.445715\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.189169\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.002625\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 142.663887\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.32769\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.511795\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 2.099815\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.604064\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.538696\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.379155\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.436012\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 2.032927\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.792993\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 1.1155\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.414591\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.259554\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.379467\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.236764\n type: 'test'\n ...\n# Subtest: wid" +2026-10-29T20:54:24.7993682Z CBZ_NODE_TAP_JSON 15 "ening the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.467817\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.362389\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.501156\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.341624\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.256923\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 4.253095\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 7.73237\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 4.278044\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.678911\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.428261\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.611793\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 2.486905\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.798049\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.18166\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.163638\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 2.90032\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 4.939997\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---\n dura" +2026-10-29T20:54:24.8020125Z CBZ_NODE_TAP_JSON 16 "tion_ms: 0.351974\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.260833\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.284991\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.246523\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 1.505549\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.260385\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 2.672434\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.558045\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 21.328396\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 4.097497\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.623633\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.0844\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 2.017297\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 2.612594\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 5.60991\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 47.242231\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 166.068684\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-evidenc" +2026-10-29T20:54:24.8047101Z CBZ_NODE_TAP_JSON 17 "e after 0 ms digest delay\n ---\n duration_ms: 13.929443\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 164.036553\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 25.79035\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 162.187976\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 12.4323\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 171.676602\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 4.054793\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 1.448376\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 4.034651\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.783885\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 5.062332\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 1.13522\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 3.820669\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 8.156261\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 4.092956\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 0.267017\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 4.326258\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 2.626966\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and labels the sna" +2026-10-29T20:54:24.8073410Z CBZ_NODE_TAP_JSON 18 "pshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 2.017517\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 1.998456\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.878518\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 1.383752\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 2.083102\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 1.717305\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 1.60503\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 0.856485\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 6.484247\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.486567\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 1.100869\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.613639\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.298085\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.45469\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.773964\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 1.463139\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 1.24306\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - invalid ch" +2026-10-29T20:54:24.8099534Z CBZ_NODE_TAP_JSON 19 "oices cannot invent regions or objects\n ---\n duration_ms: 0.601816\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 3.214826\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.825247\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.159549\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 3.869748\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 2.817722\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 1.614705\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 2.604595\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 0.995026\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.41855\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.099269\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 1.828071\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.901237\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 2.313317\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.325777\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.449547\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.706236\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.205969\n type: 'test'\n ...\n# Subtes" +2026-10-29T20:54:24.8125866Z CBZ_NODE_TAP_JSON 20 "t: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 16.197438\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.706734\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.582819\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.403256\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.216326\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.086703\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.29171\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.265465\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.667018\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.383588\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.285079\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.367693\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.350639\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.835791\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.520307\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.471449\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.476565\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.258022\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.212395\n" +2026-10-29T20:54:24.8152008Z CBZ_NODE_TAP_JSON 21 " type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 9.214698\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.171624\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 0.977575\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 1.03196\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.501093\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.351063\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.406281\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.407777\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.906214\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 3.014778\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.110312\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 1.646209\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 3.514616\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.399246\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.475241\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.377804\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 1.414299\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.354962\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 68.708359\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 31.472506\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 61.951063\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 98.619142\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and malformed" +2026-10-29T20:54:24.8177639Z CBZ_NODE_TAP_JSON 22 " hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 91.497968\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 77.503281\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 33.570623\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.160354\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.466058\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 0.964928\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.464902\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 38.31104\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 15.721286\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 7.053901\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 8.416663\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 3.850489\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 1.618284\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 1.698155\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 8.791787\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 10.280678\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.236044\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.282867\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 9.8550" +2026-10-29T20:54:24.8203321Z CBZ_NODE_TAP_JSON 23 "48\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.70593\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.372501\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.399401\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.813201\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 7.171128\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.779094\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.540282\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.837486\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.560903\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.355486\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 11.943021\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.217043\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 0.92934\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 2.273352\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.415328\n type: 'test'\n .." +2026-10-29T20:54:24.8229601Z CBZ_NODE_TAP_JSON 24 ".\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.475089\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.672342\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.698611\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.101531\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.006187\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.298669\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 43.643276\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 10.669497\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 6.995572\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.251186\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.9899\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 4.133088\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.011358\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 4.814009\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 1.022665\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.889561\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.553984\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified replay sour" +2026-10-29T20:54:24.8255856Z CBZ_NODE_TAP_JSON 25 "ce\n ---\n duration_ms: 2.5825\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.736171\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.383211\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 6.309419\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 0.988069\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 16.463457\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 0.506133\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.043815\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 1.309064\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.056054\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 7.388926\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 4.088677\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.892385\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.232969\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 4.752153\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 5.00981\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 5.550995\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.249863\n type: 'test'\n " +2026-10-29T20:54:24.8281864Z CBZ_NODE_TAP_JSON 26 " ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 16.285517\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.122873\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 16.01286\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 3.283163\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 4.332657\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 8.633374\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 9.367864\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 7.531598\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 7.883572\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.720409\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.43243\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.418991\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.482224\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.523339\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 3.16244\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.708278\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.655132\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.766307\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view through 3D, " +2026-10-29T20:54:24.8307957Z CBZ_NODE_TAP_JSON 27 "2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 3.846442\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.205252\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 6.985773\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 41.177379\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 190.919233\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 320.51525\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1043.362825\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 296.540786\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 409.022421\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 140.781126\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 540.833004\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 186.450559\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.520159\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 156.728603\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 5.883317\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.711029\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.241132\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.58468\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n duration_ms: 0" +2026-10-29T20:54:24.8334221Z CBZ_NODE_TAP_JSON 28 ".46121\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.750385\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 4.161645\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 20.653106\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 2.082462\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.510977\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 3.40934\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 4.48064\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 2.122065\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.894832\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.508701\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 10.723979\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 2.87197\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.405349\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.850989\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 4.307827\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 14.550894\n type: 'test'\n ...\n# Subtest: query" +2026-10-29T20:54:24.8360363Z CBZ_NODE_TAP_JSON 29 " view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 0.247691\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.861156\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.003396\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.294246\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.732579\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.49761\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.522131\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.824912\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.710685\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.181279\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.317527\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.11943\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.138216\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 12.610216\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 13.831298\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 39.518972\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 3.937655\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 2.669419\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.373156\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.261593\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.314387\n type: 'test'\n ...\n# Subtest: status snap" +2026-10-29T20:54:24.8387158Z CBZ_NODE_TAP_JSON 30 "shot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 0.855908\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.224718\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.145383\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.095637\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.245252\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.148759\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.093045\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.187218\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.206664\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.259834\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.207616\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.351411\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.407896\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.202836\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.506329\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.565662\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.090146\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.588539\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.581709\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 11.737189\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.22483\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 77.707585\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through paginati" +2026-10-29T20:54:24.8413293Z CBZ_NODE_TAP_JSON 31 "on and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 53.447562\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 38.051622\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 78.306652\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 142.613594\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 29.914238\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.554901\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.407906\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.773812\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.461768\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.105648\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.502927\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.63334\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.904608\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.796441\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 24.445097\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 25.076081\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 19.803876\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 26.496756\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused configurati" +2026-10-29T20:54:24.8439634Z CBZ_NODE_TAP_JSON 32 "on still reveals the requested unavailable section\n ---\n duration_ms: 1.785505\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 26.210173\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 26.172473\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 20.796618\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.659239\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 26.870296\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 25.19933\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.295085\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 20.905013\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.437977\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 33.409808\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 27.776462\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 25.294344\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 32.047575\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 25.644727\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 25.478233\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 23.076305\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 8.035187\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 25.965185\n type: 'test'\n ...\n# S" +2026-10-29T20:54:24.8466008Z CBZ_NODE_TAP_JSON 33 "ubtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 23.465524\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 29.858877\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.397402\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.106372\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 0.550176\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.227606\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.614989\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 3.106559\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.909175\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.810354\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.888601\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.570401\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.207499\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.441412\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.251863\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.561423\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.619185\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 2.070184\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable commi" +2026-10-29T20:54:24.8492191Z CBZ_NODE_TAP_JSON 34 "t\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.509565\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.595907\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.331893\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.425379\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.781102\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.391099\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.442309\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.281359\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.268176\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.535497\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.74445\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 7.570137\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.589827\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 1.578337\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 4.390674\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 7.21797\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.807906\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 1.762651\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 6.901231\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - comparison" +2026-10-29T20:54:24.8518619Z CBZ_NODE_TAP_JSON 35 " model is implemented\n ---\n duration_ms: 5.727511\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.456875\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 330.997369\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 2.847573\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.636374\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 36.684965\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 31.100429\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 4.570102\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 17.607795\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 49.396481\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 6.328257\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.861836\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 7.345331\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 0.646453\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 8.775269\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 82.412623\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.491471\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.25323\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.395226\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, encoded t" +2026-10-29T20:54:24.8545196Z CBZ_NODE_TAP_JSON 36 "raversal and malformed identities stay literal\n ---\n duration_ms: 0.526475\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.747885\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.336177\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.189789\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 3.682076\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 3.589519\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.276616\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.220906\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 2.045291\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.381956\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.249331\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.75348\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 2.587132\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 0.6902\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.24842\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 15.746595\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.301285\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.524027\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields\n ---\n" +2026-10-29T20:54:24.8571748Z CBZ_NODE_TAP_JSON 37 " duration_ms: 0.826904\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.462315\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 1.517007\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.506086\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.659963\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.326082\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.429158\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.326866\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.262945\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.763519\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.595691\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.512557\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 15.063747\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 3.920329\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.185639\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 1.907067\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.499202\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok 721 -" +2026-10-29T20:54:24.8598392Z CBZ_NODE_TAP_JSON 38 " capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.271437\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.191406\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.72162\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.326034\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.715177\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 3.574937\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.828235\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.358822\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.450172\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.461891\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.162825\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.389251\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.261753\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.470713\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.320587\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 79.581968\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 61.337486\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 31.38121" +2026-10-29T20:54:24.8625797Z CBZ_NODE_TAP_JSON 39 "2\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 72.274256\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 138.756529\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.798549\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.042645\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.953835\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.026355\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.741287\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.714891\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.885299\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.489557\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.695749\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.251637\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 25.082808\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 21.424089\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 24.385577\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 24.263407\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.825628\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 20.236586\n type: 'test'\n ...\n# Subtest: reader movement between source settlement " +2026-10-29T20:54:24.8645011Z CBZ_NODE_TAP_JSON 40 "and final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 23.369615\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 24.375626\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.836291\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 21.440414\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 29.908703\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.296854\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 23.800716\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.385487\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5059.920728\n" +2026-10-29T20:54:24.8886711Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:54:24.8887147Z with: +2026-10-29T20:54:24.8887316Z name: cbz-node-result +2026-10-29T20:54:24.8887545Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:54:24.8887810Z if-no-files-found: error +2026-10-29T20:54:24.8888017Z compression-level: 6 +2026-10-29T20:54:24.8888205Z overwrite: false +2026-10-29T20:54:24.8888388Z include-hidden-files: false +2026-10-29T20:54:24.8888594Z archive: true +2026-10-29T20:54:24.8888758Z env: +2026-10-29T20:54:24.8888981Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.8889663Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:54:24.8890064Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.8890423Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.8890823Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:54:24.8891188Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:54:24.8891483Z ##[endgroup] +2026-10-29T20:54:25.0301045Z With the provided path, there will be 41 files uploaded +2026-10-29T20:54:25.0302830Z Artifact name is valid! +2026-10-29T20:54:25.0303454Z Root directory input is valid! +2026-10-29T20:54:25.3064726Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:54:25.3096665Z Beginning upload of artifact content to blob storage +2026-10-29T20:54:25.6773915Z Uploaded bytes 504948 +2026-10-29T20:54:25.7168465Z Finished uploading artifact content to blob storage! +2026-10-29T20:54:25.7169414Z SHA256 digest of uploaded artifact is f0dad2a3be834c0eb91b42457c63867d4c36139c571c831fbecee22cced29e26 +2026-10-29T20:54:25.7169915Z Finalizing artifact upload +2026-10-29T20:54:26.2252427Z Artifact cbz-node-result successfully finalized. Artifact ID 12931943413 +2026-10-29T20:54:26.2253096Z Artifact cbz-node-result has been successfully uploaded! Final size is 504948 bytes. Artifact ID is 12931943413 +2026-10-29T20:54:26.2257696Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40951811637/artifacts/12931943413 +2026-10-29T20:54:26.2464416Z Post job cleanup. +2026-10-29T20:54:26.3221828Z [command]/usr/bin/git version +2026-10-29T20:54:26.3263248Z git version 2.56.0 +2026-10-29T20:54:26.3298871Z Temporarily overriding HOME='/home/runner/work/_temp/6242ca05-e0e9-4771-9073-670780f4a88e' before making global git config changes +2026-10-29T20:54:26.3299635Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:54:26.3304386Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:54:26.3344773Z Removing SSH command configuration +2026-10-29T20:54:26.3352251Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:54:26.3392105Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:54:26.3654395Z Removing HTTP extra header +2026-10-29T20:54:26.3654949Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:54:26.3686558Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:54:26.3914378Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:54:26.3920532Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:54:26.3961255Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:54:26.4340784Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/mixed-foreign-hosted.log b/cbz/evidence/cold-start-node/red/mixed-foreign-hosted.log new file mode 100644 index 000000000..15f6ffc84 --- /dev/null +++ b/cbz/evidence/cold-start-node/red/mixed-foreign-hosted.log @@ -0,0 +1,725 @@ +2026-10-29T20:41:34.3391648Z Current runner version: '2.338.0' +2026-10-29T20:41:34.3420701Z ##[group]Runner Image Provisioner +2026-10-29T20:41:34.3421671Z Hosted Compute Agent +2026-10-29T20:41:34.3422265Z Version: 20261021.618 +2026-10-29T20:41:34.3423059Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:41:34.3423795Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:41:34.3424565Z Worker ID: {81984836-a881-4f95-be4e-27c34ce8a397} +2026-10-29T20:41:34.3425409Z Region: westus2 +2026-10-29T20:41:34.3426274Z Cloud: Azure +2026-10-29T20:41:34.3426948Z ##[endgroup] +2026-10-29T20:41:34.3429160Z ##[group]Operating System +2026-10-29T20:41:34.3429984Z Ubuntu +2026-10-29T20:41:34.3430547Z 24.04.5 +2026-10-29T20:41:34.3431083Z LTS +2026-10-29T20:41:34.3431689Z ##[endgroup] +2026-10-29T20:41:34.3432290Z ##[group]Runner Image +2026-10-29T20:41:34.3432955Z Image: ubuntu-24.04-arm +2026-10-29T20:41:34.3433702Z Version: 20261025.165.1 +2026-10-29T20:41:34.3435033Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:41:34.3437042Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:41:34.3438173Z ##[endgroup] +2026-10-29T20:41:34.3439343Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:41:34.3442185Z Contents: read +2026-10-29T20:41:34.3442839Z Metadata: read +2026-10-29T20:41:34.3443454Z ##[endgroup] +2026-10-29T20:41:34.3446768Z Secret source: Actions +2026-10-29T20:41:34.3447817Z Cache mode: write +2026-10-29T20:41:34.3448740Z Prepare workflow directory +2026-10-29T20:41:34.3822771Z Prepare all required actions +2026-10-29T20:41:34.3873101Z Getting action download info +2026-10-29T20:41:34.7506121Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:41:34.8776503Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:41:35.1619610Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:41:35.3461100Z Complete job name: controls-and-prepared +2026-10-29T20:41:35.4430578Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:41:35.4432294Z with: +2026-10-29T20:41:35.4432911Z persist-credentials: false +2026-10-29T20:41:35.4433696Z fetch-depth: 0 +2026-10-29T20:41:35.4434556Z repository: d6g8k5htny-coder/main +2026-10-29T20:41:35.4438643Z token: *** +2026-10-29T20:41:35.4439430Z ssh-strict: true +2026-10-29T20:41:35.4440049Z ssh-user: git +2026-10-29T20:41:35.4440657Z clean: true +2026-10-29T20:41:35.4441253Z sparse-checkout-cone-mode: true +2026-10-29T20:41:35.4441904Z fetch-tags: false +2026-10-29T20:41:35.4442736Z show-progress: true +2026-10-29T20:41:35.4443317Z lfs: false +2026-10-29T20:41:35.4443911Z submodules: false +2026-10-29T20:41:35.4444568Z set-safe-directory: true +2026-10-29T20:41:35.4445235Z allow-unsafe-pr-checkout: false +2026-10-29T20:41:35.4446806Z ##[endgroup] +2026-10-29T20:41:35.5328805Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:41:35.5331339Z ##[group]Getting Git version info +2026-10-29T20:41:35.5332296Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:41:35.5333665Z [command]/usr/bin/git version +2026-10-29T20:41:35.5413827Z git version 2.56.0 +2026-10-29T20:41:35.5433018Z ##[endgroup] +2026-10-29T20:41:35.5441737Z Temporarily overriding HOME='/home/runner/work/_temp/6387605e-54c1-48b1-a027-696906c0a3f2' before making global git config changes +2026-10-29T20:41:35.5443238Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:41:35.5446140Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:41:35.5487225Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:41:35.5490687Z ##[group]Determining repository object format +2026-10-29T20:41:35.5492409Z ##[endgroup] +2026-10-29T20:41:35.5493440Z ##[group]Initializing the repository +2026-10-29T20:41:35.5497970Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:41:35.5646875Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:41:35.5648777Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:41:35.5650139Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:41:35.5651069Z hint: call: +2026-10-29T20:41:35.5651668Z hint: +2026-10-29T20:41:35.5652373Z hint: git config --global init.defaultBranch +2026-10-29T20:41:35.5653100Z hint: +2026-10-29T20:41:35.5653901Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:41:35.5654960Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:41:35.5655843Z hint: +2026-10-29T20:41:35.5656685Z hint: git branch -m +2026-10-29T20:41:35.5657311Z hint: +2026-10-29T20:41:35.5658196Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:41:35.5659359Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:41:35.5662123Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:41:35.5706571Z ##[endgroup] +2026-10-29T20:41:35.5707964Z ##[group]Disabling automatic garbage collection +2026-10-29T20:41:35.5709390Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:41:35.5743247Z ##[endgroup] +2026-10-29T20:41:35.5744612Z ##[group]Setting up auth +2026-10-29T20:41:35.5745316Z Removing SSH command configuration +2026-10-29T20:41:35.5749476Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:41:35.5778994Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:41:35.6130306Z Removing HTTP extra header +2026-10-29T20:41:35.6134463Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:41:35.6166113Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:41:35.6363208Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:41:35.6365845Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:41:35.6404112Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:41:35.6607117Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:41:35.6644831Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:35.6677829Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:35.6710923Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:35.6744629Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:35.6775114Z ##[endgroup] +2026-10-29T20:41:35.6776353Z ##[group]Fetching the repository +2026-10-29T20:41:35.6780588Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +802cb0294db93665f52b31f2d3b837c53ff28021:refs/remotes/pull/707/merge +2026-10-29T20:41:50.6142931Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:41:50.6144127Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:41:50.6145021Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:41:50.6146105Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:41:50.6147213Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:41:50.6148242Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:41:50.6149484Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:41:50.6150497Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:41:50.6151408Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:41:50.6152410Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:41:50.6153277Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:41:50.6154266Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T20:41:50.6155168Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:41:50.6156227Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:41:50.6157301Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:41:50.6158672Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:41:50.6159789Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:41:50.6160779Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:41:50.6161647Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:41:50.6162662Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:41:50.6163666Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:41:50.6165204Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:41:50.6167147Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:41:50.6168137Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:41:50.6169147Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:41:50.6170067Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:41:50.6171138Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:41:50.6172160Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:41:50.6173415Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:41:50.6174553Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:41:50.6175487Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:41:50.6176655Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:41:50.6177647Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:41:50.6178487Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:41:50.6179548Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:41:50.6180487Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:41:50.6181524Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:41:50.6182458Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:41:50.6183365Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:41:50.6184405Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:41:50.6185320Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:41:50.6186444Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:41:50.6187430Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:41:50.6188629Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:41:50.6189806Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:41:50.6190856Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:41:50.6191949Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:41:50.6192815Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:41:50.6193596Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:41:50.6194570Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:41:50.6195452Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:41:50.6196638Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:41:50.6197612Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:41:50.6198471Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:41:50.6199355Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:41:50.6200183Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:41:50.6201083Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:41:50.6202239Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:41:50.6203161Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:41:50.6204095Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:41:50.6204946Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:41:50.6206060Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:41:50.6207084Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:41:50.6208047Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:41:50.6209015Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:41:50.6209934Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:41:50.6210943Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:41:50.6211863Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:41:50.6212805Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:41:50.6213705Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:41:50.6214620Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:41:50.6215491Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:41:50.6217231Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:41:50.6218298Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:41:50.6219393Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:41:50.6220324Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:41:50.6221128Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:41:50.6222070Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:41:50.6222873Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:41:50.6223766Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:41:50.6224630Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:41:50.6225418Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:41:50.6226706Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:41:50.6227628Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:41:50.6228601Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:41:50.6229425Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:41:50.6230270Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:41:50.6231649Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:41:50.6232610Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:41:50.6233615Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:41:50.6234624Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:41:50.6235558Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:41:50.6236885Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:41:50.6237866Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:41:50.6238894Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:41:50.6239904Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:41:50.6240885Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:41:50.6241898Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:41:50.6242876Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:41:50.6243934Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:41:50.6244893Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:41:50.6246293Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:41:50.6247491Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:41:50.6248424Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:41:50.6249370Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:41:50.6250296Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:41:50.6251262Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:41:50.6252368Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:41:50.6253346Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T20:41:50.6254453Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:41:50.6255429Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:41:50.6256673Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:41:50.6257729Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:41:50.6258795Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:41:50.6260196Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:41:50.6261106Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:41:50.6262088Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:41:50.6263334Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:41:50.6264501Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:41:50.6265646Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:41:50.6266860Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:41:50.6267746Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:41:50.6268775Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:41:50.6269710Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:41:50.6270702Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:41:50.6271679Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:41:50.6272555Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:41:50.6273526Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:41:50.6274635Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:41:50.6275517Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:41:50.6276754Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:41:50.6277646Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:41:50.6278797Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:41:50.6279879Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:41:50.6280738Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:41:50.6281740Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:41:50.6282783Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:41:50.6283810Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:41:50.6284775Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:41:50.6285697Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:41:50.6286967Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:41:50.6288218Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:41:50.6289312Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:41:50.6290399Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:41:50.6291464Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:41:50.6292381Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:41:50.6293180Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:41:50.6294132Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:41:50.6295018Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:41:50.6296096Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:41:50.6297187Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:41:50.6298103Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:41:50.6299149Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:41:50.6300097Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:41:50.6301095Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:41:50.6302475Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:41:50.6303544Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:41:50.6304636Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:41:50.6305610Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:41:50.6306912Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:41:50.6308069Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:41:50.6309010Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:41:50.6309945Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:41:50.6310950Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:41:50.6311966Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:41:50.6313093Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:41:50.6314074Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:41:50.6315002Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:41:50.6316657Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:41:50.6317578Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:41:50.6318660Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:41:50.6319849Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:41:50.6320807Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:41:50.6321796Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:41:50.6322823Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:41:50.6323998Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:41:50.6325168Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:41:50.6326635Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:41:50.6327725Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:41:50.6328721Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:41:50.6329773Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:41:50.6330686Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:41:50.6332079Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:41:50.6333111Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:41:50.6334051Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:41:50.6335099Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:41:50.6336447Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:41:50.6337623Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:41:50.6338518Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:41:50.6339334Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:41:50.6340295Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:41:50.6341226Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:41:50.6342154Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:41:50.6343179Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:41:50.6344042Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:41:50.6344970Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:41:50.6346479Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:41:50.6347450Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:41:50.6348419Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:41:50.6349346Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:41:50.6350348Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:41:50.6351495Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:41:50.6352557Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:41:50.6353470Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:41:50.6354480Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:41:50.6355453Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:41:50.6356611Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:41:50.6357525Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:41:50.6358541Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:41:50.6359412Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:41:50.6360913Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:41:50.6361990Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:41:50.6362846Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:41:50.6363777Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:41:50.6364632Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:41:50.6365542Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:41:50.6366601Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:41:50.6367669Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:41:50.6369016Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:41:50.6370170Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:41:50.6371268Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:41:50.6372242Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:41:50.6373204Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:41:50.6374584Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:41:50.6375466Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:41:50.6376599Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:41:50.6377447Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:41:50.6378325Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:41:50.6379324Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:41:50.6380269Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:41:50.6381346Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:41:50.6382267Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:41:50.6383034Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:41:50.6383957Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:41:50.6384735Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:41:50.6385694Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:41:50.6386849Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:41:50.6387794Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:41:50.6389195Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:41:50.6390188Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:41:50.6391052Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:41:50.6391923Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:41:50.6392864Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:41:50.6393985Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:41:50.6394979Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:41:50.6396196Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:41:50.6397276Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:41:50.6398299Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:41:50.6399384Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:41:50.6400171Z * [new branch] main -> origin/main +2026-10-29T20:41:50.6401009Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:41:50.6402033Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:41:50.6403223Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:41:50.6404160Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:41:50.6404974Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:41:50.6405853Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:41:50.6407191Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:41:50.6407942Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:41:50.6408751Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:41:50.6409533Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:41:50.6410228Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:41:50.6411099Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:41:50.6411758Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:41:50.6412506Z * [new ref] 802cb0294db93665f52b31f2d3b837c53ff28021 -> pull/707/merge +2026-10-29T20:41:50.6414539Z ##[endgroup] +2026-10-29T20:41:50.6415210Z ##[group]Determining the checkout info +2026-10-29T20:41:50.6416322Z ##[endgroup] +2026-10-29T20:41:50.6416816Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:41:50.6418244Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:41:50.6419732Z ##[group]Checking out the ref +2026-10-29T20:41:50.6420272Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T20:41:50.8884704Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T20:41:50.8886183Z +2026-10-29T20:41:50.8886842Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T20:41:50.8887511Z changes and commit them, and you can discard any commits you make in this +2026-10-29T20:41:50.8888110Z state without impacting any branches by switching back to a branch. +2026-10-29T20:41:50.8888587Z +2026-10-29T20:41:50.8888847Z If you want to create a new branch to retain commits you create, you may +2026-10-29T20:41:50.8889380Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T20:41:50.8889656Z +2026-10-29T20:41:50.8889871Z git switch -c +2026-10-29T20:41:50.8890078Z +2026-10-29T20:41:50.8890242Z Or undo this operation with: +2026-10-29T20:41:50.8890489Z +2026-10-29T20:41:50.8890601Z git switch - +2026-10-29T20:41:50.8890842Z +2026-10-29T20:41:50.8891153Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T20:41:50.8891558Z +2026-10-29T20:41:50.8891957Z HEAD is now at 802cb029 Merge e77502daab6abd0efcfe158b079ac2efce4eb997 into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T20:41:50.8916918Z ##[endgroup] +2026-10-29T20:41:50.8961125Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:41:50.8986746Z 802cb0294db93665f52b31f2d3b837c53ff28021 +2026-10-29T20:41:50.8994908Z ##[group]Removing auth +2026-10-29T20:41:50.8995639Z Removing SSH command configuration +2026-10-29T20:41:50.8999274Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:41:50.9030199Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:41:50.9232218Z Removing HTTP extra header +2026-10-29T20:41:50.9234308Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:41:50.9265133Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:41:50.9464055Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:41:50.9465595Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:41:50.9491360Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:41:50.9492024Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:41:50.9492555Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:41:50.9493089Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:41:50.9499638Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:41:50.9521846Z /home/runner/work/_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:50.9534565Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-48ea0317\-e395\-4b52\-b83d\-8a41ed18e82f\.config +2026-10-29T20:41:50.9572315Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:41:50.9596157Z /home/runner/work/_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:50.9603517Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-48ea0317\-e395\-4b52\-b83d\-8a41ed18e82f\.config +2026-10-29T20:41:50.9641177Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:41:50.9664595Z /github/runner_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:50.9677423Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-48ea0317\-e395\-4b52\-b83d\-8a41ed18e82f\.config +2026-10-29T20:41:50.9711997Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:41:50.9734935Z /github/runner_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config +2026-10-29T20:41:50.9742093Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-48ea0317\-e395\-4b52\-b83d\-8a41ed18e82f\.config +2026-10-29T20:41:50.9778256Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:41:50.9980147Z Removing credentials config '/home/runner/work/_temp/git-credentials-48ea0317-e395-4b52-b83d-8a41ed18e82f.config' +2026-10-29T20:41:50.9992626Z ##[endgroup] +2026-10-29T20:41:51.0274632Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:41:51.0275278Z with: +2026-10-29T20:41:51.0275557Z python-version: 3.11 +2026-10-29T20:41:51.0276290Z check-latest: false +2026-10-29T20:41:51.0278872Z token: *** +2026-10-29T20:41:51.0279343Z update-environment: true +2026-10-29T20:41:51.0279688Z allow-prereleases: false +2026-10-29T20:41:51.0279985Z freethreaded: false +2026-10-29T20:41:51.0280335Z ##[endgroup] +2026-10-29T20:41:51.1273639Z ##[group]Installed versions +2026-10-29T20:41:51.1379276Z Successfully set up CPython (3.11.17) +2026-10-29T20:41:51.1380193Z ##[endgroup] +2026-10-29T20:41:51.1531462Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:41:51.1532508Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:41:51.1788094Z shell: /usr/bin/bash -e {0} +2026-10-29T20:41:51.1788563Z env: +2026-10-29T20:41:51.1788956Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:41:51.1790133Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:41:51.1790658Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:41:51.1791185Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:41:51.1791661Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:41:51.1792128Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:41:51.1792619Z ##[endgroup] +2026-10-29T20:41:52.3751271Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:41:52.3752455Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:41:52.3757688Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... FAIL +2026-10-29T20:41:52.3759286Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:41:52.3760581Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:41:52.3761791Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:41:52.3762864Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:41:52.3763806Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:41:52.3765110Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:41:52.3766471Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:41:52.7242650Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:41:52.7441863Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:41:54.7121792Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:41:54.7355038Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:41:54.7525745Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:41:54.7698446Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:41:54.7901212Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:41:54.8076665Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:41:54.9593441Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:41:54.9769310Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:41:55.0008905Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:41:55.0255176Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:41:55.0440163Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:41:55.0634821Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:41:55.0905658Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:41:55.1084383Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:41:55.1264740Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:41:55.1468532Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:41:55.2455099Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:41:55.2638199Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:41:55.2906373Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:41:55.3181038Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:41:55.3431177Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:41:55.3688746Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:41:55.4090679Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:41:55.4376346Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:41:55.4602078Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:41:55.4779919Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:41:55.5082638Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:41:55.5256804Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:41:55.5441322Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:41:58.4043801Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:41:58.9874243Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:42:00.0322993Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:42:00.0323916Z +2026-10-29T20:42:00.0324134Z ====================================================================== +2026-10-29T20:42:00.0324843Z FAIL: test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) +2026-10-29T20:42:00.0326313Z ---------------------------------------------------------------------- +2026-10-29T20:42:00.0326708Z Traceback (most recent call last): +2026-10-29T20:42:00.0333378Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 513, in test_expected_and_foreign_failures_cannot_kill +2026-10-29T20:42:00.0334220Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T20:42:00.0334616Z AssertionError: True is not false +2026-10-29T20:42:00.0334897Z +2026-10-29T20:42:00.0335063Z ---------------------------------------------------------------------- +2026-10-29T20:42:00.0335426Z Ran 44 tests in 7.658s +2026-10-29T20:42:00.0335614Z +2026-10-29T20:42:00.0335797Z FAILED (failures=1) +2026-10-29T20:42:00.0474196Z ##[error]Process completed with exit code 1. +2026-10-29T20:42:00.0552939Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:42:00.0553688Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:42:00.0607122Z shell: /usr/bin/bash -e {0} +2026-10-29T20:42:00.0607598Z env: +2026-10-29T20:42:00.0607963Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:00.0608528Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:42:00.0609013Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:00.0609440Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:00.0609922Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:00.0610354Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:42:00.0610740Z ##[endgroup] +2026-10-29T20:42:02.0111816Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:42:02.0113560Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:42:02.0118244Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... FAIL +2026-10-29T20:42:02.0119438Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:42:02.0120410Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:42:02.0127217Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:42:02.0137121Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:42:02.0137997Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:42:02.0139108Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:42:02.0140074Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:42:02.5891854Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:42:02.6092176Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:42:02.7148917Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:42:02.7382672Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:42:02.7552802Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:42:02.7772849Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:42:02.7958902Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:42:02.8128134Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:42:03.3480064Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:42:03.3661118Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:42:03.3880190Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:42:03.4077592Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:42:03.4258481Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:42:03.4470805Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:42:03.4723388Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:42:03.4900995Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:42:03.5074607Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:42:03.5270015Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:42:03.6307269Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:42:03.6534484Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:42:03.6788121Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:42:03.7051063Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:42:03.7292245Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:42:03.7535859Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:42:03.7805449Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:42:03.8064475Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:42:03.8234113Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:42:03.8403293Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:42:03.8756843Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:42:03.8928232Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:42:03.9103016Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:42:11.7215261Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:42:13.5498279Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:42:15.2202445Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:42:15.2203057Z +2026-10-29T20:42:15.2203235Z ====================================================================== +2026-10-29T20:42:15.2204127Z FAIL: test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) +2026-10-29T20:42:15.2204857Z ---------------------------------------------------------------------- +2026-10-29T20:42:15.2205294Z Traceback (most recent call last): +2026-10-29T20:42:15.2206553Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 513, in test_expected_and_foreign_failures_cannot_kill +2026-10-29T20:42:15.2207312Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T20:42:15.2207826Z AssertionError: True is not false +2026-10-29T20:42:15.2208048Z +2026-10-29T20:42:15.2208204Z ---------------------------------------------------------------------- +2026-10-29T20:42:15.2208650Z Ran 44 tests in 13.210s +2026-10-29T20:42:15.2208839Z +2026-10-29T20:42:15.2208952Z FAILED (failures=1) +2026-10-29T20:42:15.2360374Z ##[error]Process completed with exit code 1. +2026-10-29T20:42:15.2410546Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:42:15.2411399Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:42:15.2412232Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:42:15.2456743Z shell: /usr/bin/bash -e {0} +2026-10-29T20:42:15.2457066Z env: +2026-10-29T20:42:15.2457518Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:15.2458012Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:42:15.2458483Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:15.2458977Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:15.2459407Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:15.2459992Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:42:15.2460367Z ##[endgroup] +2026-10-29T20:42:15.2541084Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:42:16.8651652Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:42:17.2818211Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:42:17.2819484Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:42:17.2867026Z shell: /usr/bin/bash -e {0} +2026-10-29T20:42:17.2867482Z env: +2026-10-29T20:42:17.2867787Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:17.2868573Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:42:17.2869120Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:17.2869529Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:17.2870010Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:17.2870502Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:42:17.2871106Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:42:17.2871507Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:42:17.2871819Z ##[endgroup] +2026-10-29T20:42:23.4047669Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:42:23.4248952Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:42:23.4249541Z python -B -S - <<'PY' +2026-10-29T20:42:23.4249902Z import hashlib, json, os +2026-10-29T20:42:23.4250199Z from pathlib import Path +2026-10-29T20:42:23.4250647Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T20:42:23.4251103Z record = json.loads((root / "result.json").read_text()) +2026-10-29T20:42:23.4251643Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T20:42:23.4252126Z raw = (root / "node.tap").read_bytes() +2026-10-29T20:42:23.4252451Z def verify_log(value): +2026-10-29T20:42:23.4252875Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T20:42:23.4253398Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T20:42:23.4253815Z verify_log(raw) +2026-10-29T20:42:23.4254226Z try: +2026-10-29T20:42:23.4254462Z  verify_log(raw + b"\0") +2026-10-29T20:42:23.4254801Z except ValueError: +2026-10-29T20:42:23.4255115Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T20:42:23.4255493Z else: +2026-10-29T20:42:23.4255834Z  raise SystemExit("modified transcript was admitted") +2026-10-29T20:42:23.4256451Z text = raw.decode("utf-8") +2026-10-29T20:42:23.4256884Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T20:42:23.4257306Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T20:42:23.4257721Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T20:42:23.4258196Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T20:42:23.4258639Z for number, chunk in enumerate(chunks): +2026-10-29T20:42:23.4259104Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T20:42:23.4259499Z PY +2026-10-29T20:42:23.4292419Z shell: /usr/bin/bash -e {0} +2026-10-29T20:42:23.4292715Z env: +2026-10-29T20:42:23.4293161Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.4293629Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:42:23.4294144Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.4294650Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.4295060Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.4295527Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:42:23.4295888Z ##[endgroup] +2026-10-29T20:42:23.4588824Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:42:23.395413+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "b2ab61ab6adca23c0c7efb739925b963ee9841030f6e2425e15e1c43eb3bd042", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "802cb0294db93665f52b31f2d3b837c53ff28021", "source_before": "802cb0294db93665f52b31f2d3b837c53ff28021", "started_utc": "2026-10-29T20:42:17.348638+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:42:23.4629071Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T20:42:23.4629377Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T20:42:23.4629834Z CBZ_NODE_TAP_GIT_BLOB 2b59b0820cc1ecb5b93b148f5d89ab55b2143890 +2026-10-29T20:42:23.4643161Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 42.322406\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 10.666671\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.683965\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 5.124882\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.154269\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.544325\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.58161\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.037883\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.567083\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.652102\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.531893\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.027324\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.803455\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.416435\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 3.853764\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.692373\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.780168\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.330493\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 0.996461\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.616728\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit b" +2026-10-29T20:42:23.4670328Z CBZ_NODE_TAP_JSON 1 "ridge\n ---\n duration_ms: 0.565299\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.285055\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.532829\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.783167\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.553636\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.062674\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.883755\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.861028\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.001269\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.013852\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.451246\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.811982\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.831285\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 3.437432\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 1.802076\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.297025\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.351886\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.31916\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.387628\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.187726\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot re" +2026-10-29T20:42:23.4696965Z CBZ_NODE_TAP_JSON 2 "mains a visible reading action\n ---\n duration_ms: 0.118698\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.179487\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.380466\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.259835\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.173983\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 1.804252\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.747466\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 0.949951\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.131175\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 0.903842\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 1.016372\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 1.413488\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.542369\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.47864\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.379786\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.249736\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.308769\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.203267\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are de" +2026-10-29T20:42:23.4723365Z CBZ_NODE_TAP_JSON 3 "terministic and inputs remain unchanged\n ---\n duration_ms: 0.973526\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.321055\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.222101\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 3.709963\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.166274\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.689386\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.283002\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 3.949334\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.691938\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.546724\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.889666\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.655222\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.220017\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.9248\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.093008\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.148889\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 10.024361\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 8.247659\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 427.696342\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history sta" +2026-10-29T20:42:23.4749667Z CBZ_NODE_TAP_JSON 4 "te; share link only includes filters\n ---\n duration_ms: 83.460266\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 58.227866\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 37.306318\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 24.390667\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 28.572765\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 24.587376\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 11.822861\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 24.162038\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 22.867296\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 25.427725\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 20.356672\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 7.443332\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 12.554423\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 5.031239\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.934107\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 13.265938\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.757753\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.038443\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.673526\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both page" +2026-10-29T20:42:23.4776209Z CBZ_NODE_TAP_JSON 5 "rs use distinct identities and ordinary, non-live count spans\n ---\n duration_ms: 8.422761\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 12.224008\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.208259\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.022252\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.249504\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.041306\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.790583\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 0.867364\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.86486\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 2.162761\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.169165\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 2.577157\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.558515\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.527069\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.54514\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.590066\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 0.592001\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.607832\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.50807\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.653606\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 2.605707\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 1.198578\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 2.126932\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.525365\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 1.233769\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid" +2026-10-29T20:42:23.4802488Z CBZ_NODE_TAP_JSON 6 " range\n ---\n duration_ms: 0.751865\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.598866\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 1.051379\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.143713\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 1.547353\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.554604\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 3.390963\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 0.694285\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.649359\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.700793\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 1.824859\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.776824\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 1.211906\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.581018\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.469864\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.538821\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.625072\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.834717\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.670694\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.739147\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.441747\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 8.626112\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same " +2026-10-29T20:42:23.4829002Z CBZ_NODE_TAP_JSON 7 "abort signal\n ---\n duration_ms: 1.572392\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.196082\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.175588\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.462904\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.260562\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 3.443176\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 1.278831\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.87614\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.831654\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.569547\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 11.380747\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 1.870985\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 13.155136\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 3.674564\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.518646\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.316863\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 3.409282\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 2.026937\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.814398\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.840797\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a requ" +2026-10-29T20:42:23.4855291Z CBZ_NODE_TAP_JSON 8 "est can construct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.581579\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.726723\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.283937\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.234044\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.511654\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.439401\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.141601\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.289977\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.157696\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.551619\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 107.026502\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.330367\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.35563\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.19505\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.726107\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.408499\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.312968\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without" +2026-10-29T20:42:23.4881777Z CBZ_NODE_TAP_JSON 9 " rewriting the address\n ---\n duration_ms: 0.268074\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.761137\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.523518\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.400284\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.350142\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.266315\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.334239\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.216253\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.588754\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.330359\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.529277\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.316672\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.697349\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 8.317215\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 0.802431\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.641959\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 0.911674\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.614688\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n d" +2026-10-29T20:42:23.4908182Z CBZ_NODE_TAP_JSON 10 "uration_ms: 0.54858\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 0.540525\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.550828\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.795416\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.534916\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.55466\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.51419\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.580354\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.560651\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.487912\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.569755\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.56266\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.399796\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.506398\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.550356\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.586091\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.445482\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.493551\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.462905\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 0.627016\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.48144\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.566923\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.15608\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 2.481097\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.669605\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 0.52219\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.531901\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 3.775847\n type: 'test'\n ...\n# Subtest: acquisiti" +2026-10-29T20:42:23.4934437Z CBZ_NODE_TAP_JSON 11 "on: independent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.966667\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.503702\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.501151\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.530317\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.495063\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.417627\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.472336\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.426003\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 0.865027\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.444281\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.526558\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.048519\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.700956\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.079324\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.156352\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.443866\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.280305\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.336639\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 1.815916\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 1.723704\n type: 'test'\n ...\n# Subt" +2026-10-29T20:42:23.4961104Z CBZ_NODE_TAP_JSON 12 "est: equation and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.174367\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.093347\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.529461\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 100.526602\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.527101\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.180302\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.24002\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.28485\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 12.930835\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.541076\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 8.826422\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.297281\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 0.868516\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.376917\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 23.947169\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 5.581387\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 4.172082\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n " +2026-10-29T20:42:23.4987507Z CBZ_NODE_TAP_JSON 13 " duration_ms: 6.356756\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 19.682923\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 26.601338\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 25.499466\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 10.731012\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 2.410453\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.18899\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 4.18057\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.46192\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 68.682165\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 3.949846\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 5.917033\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.031464\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.439626\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.288017\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.511286\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.756441\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.181966\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\no" +2026-10-29T20:42:23.5013968Z CBZ_NODE_TAP_JSON 14 "k 282 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.454281\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.187903\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.022964\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 129.618564\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.114191\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.367221\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.934301\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.603489\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.494535\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.349038\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.420626\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 1.41728\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.696164\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.945008\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.372181\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.214861\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.332663\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.202294\n type: 'test'\n .." +2026-10-29T20:42:23.5040437Z CBZ_NODE_TAP_JSON 15 ".\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.42697\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.323807\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.449721\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.268731\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.185627\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 33.016146\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 6.461438\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 4.23132\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.561276\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.379021\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.311773\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 2.329889\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.732378\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.043387\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.09192\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 3.10225\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 2.600531\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits c" +2026-10-29T20:42:23.5066899Z CBZ_NODE_TAP_JSON 16 "opy\n ---\n duration_ms: 0.345598\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.264946\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.268634\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.250132\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.432562\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.212901\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 2.325162\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.492495\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 20.413894\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 2.814265\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.109805\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.111788\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 2.200503\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 2.329177\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 3.125536\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 46.784827\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 164.255092\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata a" +2026-10-29T20:42:23.5093434Z CBZ_NODE_TAP_JSON 17 "nd \\#object-evidence after 0 ms digest delay\n ---\n duration_ms: 11.981044\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 161.400701\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 19.899239\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 162.663861\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 11.497477\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 166.051888\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 3.08885\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 1.53481\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 1.613374\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.672453\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 1.941189\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 1.470621\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 3.303104\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 4.182291\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 3.966757\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 0.213229\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 5.595658\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 1.0994\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes" +2026-10-29T20:42:23.5119953Z CBZ_NODE_TAP_JSON 18 " and labels the snapshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 1.185883\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 2.553598\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 2.502633\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 8.860836\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 2.885309\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 3.061731\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 3.32963\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 4.615628\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 7.991791\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.464294\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 0.884083\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.51047\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.272098\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.434321\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.716603\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 1.17438\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 0.333623\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\n" +2026-10-29T20:42:23.5146383Z CBZ_NODE_TAP_JSON 19 "ok 369 - invalid choices cannot invent regions or objects\n ---\n duration_ms: 0.563147\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.878732\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.498236\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.149593\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 3.588272\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 1.872688\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 2.099741\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 1.443054\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 0.894498\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.391572\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 0.999909\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.509486\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.790736\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 1.995194\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.307824\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.412771\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.652558\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.710145\n type: '" +2026-10-29T20:42:23.5172917Z CBZ_NODE_TAP_JSON 20 "test'\n ...\n# Subtest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 7.976017\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.45755\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.51003\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.344831\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.193398\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.014157\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.271746\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.276274\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.293075\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.38886\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.220925\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.331615\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.333911\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.759673\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.467768\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.394852\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.40268\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.17286\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duratio" +2026-10-29T20:42:23.5199442Z CBZ_NODE_TAP_JSON 21 "n_ms: 1.130854\n type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 8.607568\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.028059\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 0.905409\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 0.887587\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.282404\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.353318\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.371805\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.38722\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.870564\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 2.815225\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.195835\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 1.730232\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 3.179709\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.403641\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.416835\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.392148\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 1.272783\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.275391\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 61.40148\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 28.494617\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 57.28977\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 94.681765\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest " +2026-10-29T20:42:23.5225383Z CBZ_NODE_TAP_JSON 22 "and malformed hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 115.502006\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 58.118648\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 29.503525\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.113839\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.489375\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 1.101952\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.826349\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 32.239898\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 19.562752\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 5.456849\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 4.162059\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 2.764659\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 1.611638\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.848349\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 7.664977\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 5.811287\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 1.654419\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.149589\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n durat" +2026-10-29T20:42:23.5251217Z CBZ_NODE_TAP_JSON 23 "ion_ms: 7.276085\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.482689\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 3.854155\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 3.550467\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.500936\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 3.940703\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.709492\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.54718\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.701868\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.242009\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.42933\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 16.516965\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.138198\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 0.917682\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 2.413716\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.002034\n typ" +2026-10-29T20:42:23.5277280Z CBZ_NODE_TAP_JSON 24 "e: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.420754\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.583495\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.537826\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 5.725532\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 0.953951\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.276682\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 44.492784\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 9.292342\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.817005\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 11.310534\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 12.904253\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 7.042129\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.826285\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 6.479885\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 0.944512\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.893539\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.555659\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the ver" +2026-10-29T20:42:23.5303678Z CBZ_NODE_TAP_JSON 25 "ified replay source\n ---\n duration_ms: 3.548651\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.723371\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.387748\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 3.625654\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 1.002909\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 16.501005\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 0.428562\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 2.842175\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 1.233225\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.092368\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 5.668366\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 6.120687\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.97603\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 2.886749\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 6.057139\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 3.568658\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 4.336578\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 0.9838" +2026-10-29T20:42:23.5329862Z CBZ_NODE_TAP_JSON 26 "7\n type: 'test'\n ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 13.989341\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.122923\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 16.396666\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 3.821668\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 7.489209\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 8.30864\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 9.993274\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 7.563638\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 7.45938\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.610838\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.388156\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.382372\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.435682\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.458672\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 3.222564\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.675957\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.609897\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.559296\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visibl" +2026-10-29T20:42:23.5356730Z CBZ_NODE_TAP_JSON 27 "e view through 3D, 2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 3.649206\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.153597\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 6.222306\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 35.896799\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 155.452926\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 320.094789\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1032.577523\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 281.980992\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 389.561234\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 133.478365\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 519.053397\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 172.460395\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.361452\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 146.520875\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 3.551907\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.627616\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.262066\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.201843\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n " +2026-10-29T20:42:23.5383590Z CBZ_NODE_TAP_JSON 28 " ---\n duration_ms: 0.447865\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.71174\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.003186\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 18.312745\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 1.885624\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.366586\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 4.091975\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 2.884301\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 1.958028\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.840141\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.493519\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 10.500487\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 2.715733\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.351227\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.794279\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 2.447915\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 14.512923\n type: 'test" +2026-10-29T20:42:23.5409909Z CBZ_NODE_TAP_JSON 29 "'\n ...\n# Subtest: query view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 0.216021\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.43082\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 0.967534\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.273082\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.419574\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.436679\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.554955\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.805983\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.724307\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.131982\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.316157\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.062114\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.1576\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 15.438132\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 7.361248\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 33.58938\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 1.846186\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 1.766214\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.335431\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.160495\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.323736\n type: 'test'\n ...\n#" +2026-10-29T20:42:23.5436105Z CBZ_NODE_TAP_JSON 30 " Subtest: status snapshot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 0.746178\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.229612\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.142016\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.095291\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.210389\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.141777\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.119458\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.176127\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.179103\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.208878\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.217589\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.204011\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.397636\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.144446\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.530466\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.51383\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.09824\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.538308\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.597361\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 10.941273\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.287177\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 75.664624\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-o" +2026-10-29T20:42:23.5462621Z CBZ_NODE_TAP_JSON 31 "nly through pagination and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 51.081519\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 37.202924\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 79.035108\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 146.936184\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.729181\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.319034\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.154463\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.987099\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.53939\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.127966\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.446847\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.538357\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 32.721641\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.695402\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 23.285851\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 27.603918\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 22.32958\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 25.949787\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a " +2026-10-29T20:42:23.5489190Z CBZ_NODE_TAP_JSON 32 "refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.677187\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 27.394065\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 19.600599\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 24.151254\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.532218\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 23.042752\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 19.514892\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.255491\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 36.427588\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.346539\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 21.432817\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 27.649084\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 29.151471\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 26.449913\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 21.365869\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 20.797738\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 27.544257\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 4.2326\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 25.957554\n type" +2026-10-29T20:42:23.5515636Z CBZ_NODE_TAP_JSON 33 ": 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 25.833897\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 27.455406\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.377669\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.100403\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 1.183259\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.236476\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.461085\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 2.886525\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.843901\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.803479\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.850821\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.067441\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.082811\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.437938\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.170237\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.559883\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.578075\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 1.486836\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exa" +2026-10-29T20:42:23.5542071Z CBZ_NODE_TAP_JSON 34 "ct immutable commit\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.531477\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.600321\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.21857\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.29847\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.812007\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.404332\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.351631\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.23818\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.278506\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.505798\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.714604\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 4.668666\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.500143\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 2.655457\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 0.931224\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 4.312156\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.555988\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 1.571536\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 11.386674\n type: 'test'\n ...\n# Subtest: comparison model is implemented\no" +2026-10-29T20:42:23.5568641Z CBZ_NODE_TAP_JSON 35 "k 667 - comparison model is implemented\n ---\n duration_ms: 5.587899\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.42321\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 321.605208\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 2.293627\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.562364\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 33.359376\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 31.392516\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 3.124128\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 16.800326\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 44.236861\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 3.257642\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.731682\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 6.791005\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 0.585114\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 10.327232\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 69.817323\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.437474\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.107879\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.372741\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign dest" +2026-10-29T20:42:23.5595427Z CBZ_NODE_TAP_JSON 36 "inations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 0.50459\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.652004\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 5.860197\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.041419\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 2.058199\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.578551\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.252779\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.175603\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 0.89973\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.34443\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.227948\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.719491\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 0.73353\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 1.57356\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.234772\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 13.447441\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.298265\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.442385\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated" +2026-10-29T20:42:23.5622995Z CBZ_NODE_TAP_JSON 37 " URL fields\n ---\n duration_ms: 0.803791\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.430202\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.682493\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.496822\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.614337\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.330016\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.390708\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.296313\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.282882\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.70754\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.535541\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.453536\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 16.781191\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 3.815742\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.129326\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 2.127091\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.417288\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG " +2026-10-29T20:42:23.5649779Z CBZ_NODE_TAP_JSON 38 "children\nok 721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.095745\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.083353\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.717747\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.303089\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.674762\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 4.163387\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.686697\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.317664\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.439905\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.464496\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.105703\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.370477\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.294281\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.415683\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.308737\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 73.729755\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 53.918374\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n dur" +2026-10-29T20:42:23.5676595Z CBZ_NODE_TAP_JSON 39 "ation_ms: 41.695575\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 72.45234\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 131.957757\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.174473\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.947532\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.495471\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.167988\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.304618\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.518403\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.711973\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.303289\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 19.338661\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.549732\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 22.121039\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 18.813967\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 23.219558\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 22.36093\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.478908\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 19.664364\n type: 'test'\n ...\n# Subtest: reader movement between so" +2026-10-29T20:42:23.5696040Z CBZ_NODE_TAP_JSON 40 "urce settlement and final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 22.017892\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 23.46305\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.566672\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 20.00433\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 27.437287\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.226821\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 23.00349\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.295166\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5173.458857\n" +2026-10-29T20:42:23.5935098Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:42:23.5935517Z with: +2026-10-29T20:42:23.5935687Z name: cbz-node-result +2026-10-29T20:42:23.5936135Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:42:23.5936417Z if-no-files-found: error +2026-10-29T20:42:23.5936625Z compression-level: 6 +2026-10-29T20:42:23.5936817Z overwrite: false +2026-10-29T20:42:23.5937009Z include-hidden-files: false +2026-10-29T20:42:23.5937219Z archive: true +2026-10-29T20:42:23.5937387Z env: +2026-10-29T20:42:23.5937619Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.5938019Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:42:23.5938419Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.5938778Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.5939192Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:42:23.5939562Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:42:23.5939860Z ##[endgroup] +2026-10-29T20:42:23.7367926Z With the provided path, there will be 41 files uploaded +2026-10-29T20:42:23.7397310Z Artifact name is valid! +2026-10-29T20:42:23.7397565Z Root directory input is valid! +2026-10-29T20:42:24.1200484Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:42:24.1230828Z Beginning upload of artifact content to blob storage +2026-10-29T20:42:24.8120729Z Uploaded bytes 504892 +2026-10-29T20:42:24.8830525Z Finished uploading artifact content to blob storage! +2026-10-29T20:42:24.8831094Z SHA256 digest of uploaded artifact is 58282cc08508847de9c0b43b23d1a496549fb0f1e39e7cac1df50d808d975efa +2026-10-29T20:42:24.8831570Z Finalizing artifact upload +2026-10-29T20:42:26.0134832Z Artifact cbz-node-result successfully finalized. Artifact ID 12930124413 +2026-10-29T20:42:26.0135537Z Artifact cbz-node-result has been successfully uploaded! Final size is 504892 bytes. Artifact ID is 12930124413 +2026-10-29T20:42:26.0139143Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40951199942/artifacts/12930124413 +2026-10-29T20:42:26.0345225Z Post job cleanup. +2026-10-29T20:42:26.1082100Z [command]/usr/bin/git version +2026-10-29T20:42:26.1122866Z git version 2.56.0 +2026-10-29T20:42:26.1153831Z Temporarily overriding HOME='/home/runner/work/_temp/c2e9ba31-f2c6-47aa-85b7-79fc9b4e4cad' before making global git config changes +2026-10-29T20:42:26.1154567Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:42:26.1168364Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:42:26.1199691Z Removing SSH command configuration +2026-10-29T20:42:26.1208898Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:42:26.1239809Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:42:26.1456462Z Removing HTTP extra header +2026-10-29T20:42:26.1460304Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:42:26.1491724Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:42:26.1701620Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:42:26.1707085Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:42:26.1745882Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:42:26.2095465Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/mixed-outcomes-hosted.log b/cbz/evidence/cold-start-node/red/mixed-outcomes-hosted.log new file mode 100644 index 000000000..4b37173bd --- /dev/null +++ b/cbz/evidence/cold-start-node/red/mixed-outcomes-hosted.log @@ -0,0 +1,800 @@ +2026-10-29T20:44:19.6429006Z Current runner version: '2.338.0' +2026-10-29T20:44:19.6460628Z ##[group]Runner Image Provisioner +2026-10-29T20:44:19.6461627Z Hosted Compute Agent +2026-10-29T20:44:19.6462872Z Version: 20261021.618 +2026-10-29T20:44:19.6463563Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:44:19.6464439Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:44:19.6465202Z Worker ID: {58f8d88a-8408-40c1-8c84-837e89cc0b40} +2026-10-29T20:44:19.6465948Z Region: northcentralus +2026-10-29T20:44:19.6466644Z Cloud: Azure +2026-10-29T20:44:19.6467221Z ##[endgroup] +2026-10-29T20:44:19.6469341Z ##[group]Operating System +2026-10-29T20:44:19.6470027Z Ubuntu +2026-10-29T20:44:19.6470607Z 24.04.5 +2026-10-29T20:44:19.6471229Z LTS +2026-10-29T20:44:19.6471760Z ##[endgroup] +2026-10-29T20:44:19.6472860Z ##[group]Runner Image +2026-10-29T20:44:19.6473531Z Image: ubuntu-24.04-arm +2026-10-29T20:44:19.6474195Z Version: 20261025.165.1 +2026-10-29T20:44:19.6475641Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:44:19.6477318Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:44:19.6478363Z ##[endgroup] +2026-10-29T20:44:19.6479492Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:44:19.6483050Z Contents: read +2026-10-29T20:44:19.6483718Z Metadata: read +2026-10-29T20:44:19.6484478Z ##[endgroup] +2026-10-29T20:44:19.6488224Z Secret source: Actions +2026-10-29T20:44:19.6489485Z Cache mode: write +2026-10-29T20:44:19.6490320Z Prepare workflow directory +2026-10-29T20:44:19.6906351Z Prepare all required actions +2026-10-29T20:44:19.6959730Z Getting action download info +2026-10-29T20:44:19.9384318Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:44:20.0494325Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:44:20.2238210Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:44:20.3909142Z Complete job name: controls-and-prepared +2026-10-29T20:44:20.4990658Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:44:20.4992950Z with: +2026-10-29T20:44:20.4993628Z persist-credentials: false +2026-10-29T20:44:20.4994420Z fetch-depth: 0 +2026-10-29T20:44:20.4995036Z repository: d6g8k5htny-coder/main +2026-10-29T20:44:20.4998878Z token: *** +2026-10-29T20:44:20.4999410Z ssh-strict: true +2026-10-29T20:44:20.5000111Z ssh-user: git +2026-10-29T20:44:20.5000700Z clean: true +2026-10-29T20:44:20.5001358Z sparse-checkout-cone-mode: true +2026-10-29T20:44:20.5002050Z fetch-tags: false +2026-10-29T20:44:20.5003030Z show-progress: true +2026-10-29T20:44:20.5003785Z lfs: false +2026-10-29T20:44:20.5004335Z submodules: false +2026-10-29T20:44:20.5004986Z set-safe-directory: true +2026-10-29T20:44:20.5005748Z allow-unsafe-pr-checkout: false +2026-10-29T20:44:20.5007200Z ##[endgroup] +2026-10-29T20:44:20.5905552Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:44:20.5908033Z ##[group]Getting Git version info +2026-10-29T20:44:20.5909063Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:44:20.5910331Z [command]/usr/bin/git version +2026-10-29T20:44:20.5947009Z git version 2.56.0 +2026-10-29T20:44:20.5965981Z ##[endgroup] +2026-10-29T20:44:20.5975613Z Temporarily overriding HOME='/home/runner/work/_temp/1213af44-b342-4d32-abcc-870b0578f506' before making global git config changes +2026-10-29T20:44:20.5977337Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:44:20.5979955Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:44:20.6020236Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:44:20.6024249Z ##[group]Determining repository object format +2026-10-29T20:44:20.6026354Z ##[endgroup] +2026-10-29T20:44:20.6027664Z ##[group]Initializing the repository +2026-10-29T20:44:20.6030480Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:44:20.6107487Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:44:20.6109199Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:44:20.6110761Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:44:20.6111994Z hint: call: +2026-10-29T20:44:20.6113069Z hint: +2026-10-29T20:44:20.6114104Z hint: git config --global init.defaultBranch +2026-10-29T20:44:20.6115024Z hint: +2026-10-29T20:44:20.6115899Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:44:20.6117225Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:44:20.6118335Z hint: +2026-10-29T20:44:20.6119123Z hint: git branch -m +2026-10-29T20:44:20.6119955Z hint: +2026-10-29T20:44:20.6120870Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:44:20.6122549Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:44:20.6126179Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:44:20.6170025Z ##[endgroup] +2026-10-29T20:44:20.6171095Z ##[group]Disabling automatic garbage collection +2026-10-29T20:44:20.6172641Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:44:20.6229924Z ##[endgroup] +2026-10-29T20:44:20.6230967Z ##[group]Setting up auth +2026-10-29T20:44:20.6231729Z Removing SSH command configuration +2026-10-29T20:44:20.6232984Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:44:20.6264142Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:44:20.6561813Z Removing HTTP extra header +2026-10-29T20:44:20.6567435Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:44:20.6600578Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:44:20.6814543Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:44:20.6818243Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:44:20.6857417Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:44:20.7085574Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:44:20.7128315Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:20.7161839Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:20.7196019Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:20.7229038Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:20.7261377Z ##[endgroup] +2026-10-29T20:44:20.7263238Z ##[group]Fetching the repository +2026-10-29T20:44:20.7267215Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +5101de24c9df9daa92f86404d6f756e5ab1b1c1b:refs/remotes/pull/707/merge +2026-10-29T20:44:31.1197612Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:44:31.1200701Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:44:31.1204314Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:44:31.1207434Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:44:31.1210925Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:44:31.1214724Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:44:31.1218090Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:44:31.1221413Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:44:31.1224730Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:44:31.1228637Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:44:31.1231757Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:44:31.1234948Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T20:44:31.1238288Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:44:31.1241551Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:44:31.1245257Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:44:31.1248796Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:44:31.1252092Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:44:31.1255388Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:44:31.1258188Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:44:31.1261215Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:44:31.1265244Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:44:31.1268258Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:44:31.1271443Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:44:31.1274558Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:44:31.1277320Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:44:31.1279968Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:44:31.1283010Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:44:31.1286242Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:44:31.1289376Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:44:31.1292194Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:44:31.1295217Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:44:31.1297718Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:44:31.1300442Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:44:31.1303100Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:44:31.1305841Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:44:31.1308556Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:44:31.1311162Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:44:31.1314249Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:44:31.1316829Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:44:31.1319482Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:44:31.1322026Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:44:31.1324875Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:44:31.1327620Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:44:31.1330549Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:44:31.1333540Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:44:31.1336497Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:44:31.1339357Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:44:31.1341733Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:44:31.1343953Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:44:31.1346192Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:44:31.1348714Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:44:31.1351283Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:44:31.1354049Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:44:31.1356303Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:44:31.1358458Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:44:31.1360764Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:44:31.1363256Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:44:31.1366009Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:44:31.1368341Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:44:31.1370556Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:44:31.1373135Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:44:31.1375516Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:44:31.1378098Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:44:31.1380488Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:44:31.1382927Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:44:31.1385430Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:44:31.1387899Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:44:31.1390329Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:44:31.1393034Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:44:31.1395226Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:44:31.1397693Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:44:31.1400043Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:44:31.1402154Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:44:31.1404622Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:44:31.1407113Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:44:31.1409723Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:44:31.1411882Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:44:31.1414262Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:44:31.1416313Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:44:31.1418409Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:44:31.1420684Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:44:31.1423069Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:44:31.1425408Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:44:31.1427799Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:44:31.1430056Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:44:31.1432405Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:44:31.1434951Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:44:31.1437525Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:44:31.1439993Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:44:31.1442634Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:44:31.1445220Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:44:31.1447717Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:44:31.1450232Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:44:31.1452841Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:44:31.1455314Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:44:31.1457831Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:44:31.1460318Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:44:31.1462940Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:44:31.1465484Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:44:31.1468055Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:44:31.1470500Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:44:31.1473340Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:44:31.1476030Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:44:31.1478354Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:44:31.1480585Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:44:31.1483331Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:44:31.1485770Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:44:31.1488429Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:44:31.1490848Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T20:44:31.1493200Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:44:31.1495651Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:44:31.1498068Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:44:31.1500439Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:44:31.1503285Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:44:31.1505932Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:44:31.1508131Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:44:31.1510609Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:44:31.1513906Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:44:31.1516907Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:44:31.1519639Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:44:31.1522127Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:44:31.1524510Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:44:31.1526793Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:44:31.1529243Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:44:31.1531391Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:44:31.1533906Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:44:31.1536049Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:44:31.1538216Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:44:31.1540717Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:44:31.1543037Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:44:31.1545300Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:44:31.1547433Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:44:31.1550096Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:44:31.1552991Z * [new branch] codex/public-intake-discovery-20261029 -> origin/codex/public-intake-discovery-20261029 +2026-10-29T20:44:31.1555194Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:44:31.1557368Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:44:31.1559564Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:44:31.1562018Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:44:31.1564642Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:44:31.1567041Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:44:31.1569410Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:44:31.1572110Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:44:31.1574806Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:44:31.1577174Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:44:31.1579888Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:44:31.1582633Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:44:31.1584740Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:44:31.1586720Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:44:31.1588963Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:44:31.1591113Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:44:31.1593533Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:44:31.1595940Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:44:31.1598156Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:44:31.1600471Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:44:31.1602853Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:44:31.1605320Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:44:31.1608298Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:44:31.1610837Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:44:31.1613809Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:44:31.1616054Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:44:31.1618551Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:44:31.1621166Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:44:31.1623649Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:44:31.1625993Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:44:31.1628336Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:44:31.1631103Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:44:31.1633829Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:44:31.1636177Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:44:31.1638916Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:44:31.1641047Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:44:31.1643362Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:44:31.1645855Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:44:31.1648288Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:44:31.1650556Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:44:31.1652951Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:44:31.1655518Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:44:31.1658360Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:44:31.1661182Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:44:31.1664261Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:44:31.1666718Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:44:31.1669148Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:44:31.1671624Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:44:31.1674459Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:44:31.1676828Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:44:31.1679124Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:44:31.1681388Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:44:31.1684009Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:44:31.1686621Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:44:31.1689155Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:44:31.1691223Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:44:31.1693334Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:44:31.1695520Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:44:31.1697800Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:44:31.1700154Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:44:31.1702457Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:44:31.1704580Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:44:31.1707296Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:44:31.1709302Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:44:31.1711360Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:44:31.1713823Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:44:31.1716011Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:44:31.1718382Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:44:31.1720815Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:44:31.1723513Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:44:31.1725629Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:44:31.1727826Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:44:31.1730129Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:44:31.1732370Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:44:31.1734715Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:44:31.1736826Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:44:31.1739136Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:44:31.1741770Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:44:31.1744350Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:44:31.1746479Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:44:31.1748517Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:44:31.1750416Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:44:31.1752643Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:44:31.1754676Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:44:31.1757271Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:44:31.1760150Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:44:31.1762877Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:44:31.1765337Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:44:31.1767596Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:44:31.1770298Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:44:31.1772972Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:44:31.1775117Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:44:31.1777106Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:44:31.1779060Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:44:31.1781201Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:44:31.1783666Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:44:31.1785980Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:44:31.1788394Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:44:31.1790379Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:44:31.1792487Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:44:31.1794414Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:44:31.1796277Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:44:31.1798353Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:44:31.1800461Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:44:31.1803208Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:44:31.1805658Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:44:31.1807715Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:44:31.1809689Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:44:31.1811711Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:44:31.1814301Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:44:31.1816850Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:44:31.1819143Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:44:31.1821423Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:44:31.1824265Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:44:31.1826722Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:44:31.1829148Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:44:31.1830793Z * [new branch] main -> origin/main +2026-10-29T20:44:31.1832911Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:44:31.1835641Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:44:31.1837848Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:44:31.1839993Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:44:31.1841799Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:44:31.1843767Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:44:31.1845308Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:44:31.1846809Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:44:31.1848509Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:44:31.1850043Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:44:31.1851657Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:44:31.1853421Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:44:31.1854899Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:44:31.1856554Z * [new ref] 5101de24c9df9daa92f86404d6f756e5ab1b1c1b -> pull/707/merge +2026-10-29T20:44:31.1859635Z ##[endgroup] +2026-10-29T20:44:31.1860865Z ##[group]Determining the checkout info +2026-10-29T20:44:31.1862744Z ##[endgroup] +2026-10-29T20:44:31.1863612Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:44:31.1866141Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:44:31.1868956Z ##[group]Checking out the ref +2026-10-29T20:44:31.1870085Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T20:44:31.4345670Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T20:44:31.4346771Z +2026-10-29T20:44:31.4347071Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T20:44:31.4347733Z changes and commit them, and you can discard any commits you make in this +2026-10-29T20:44:31.4348453Z state without impacting any branches by switching back to a branch. +2026-10-29T20:44:31.4348792Z +2026-10-29T20:44:31.4349047Z If you want to create a new branch to retain commits you create, you may +2026-10-29T20:44:31.4349644Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T20:44:31.4349939Z +2026-10-29T20:44:31.4350104Z git switch -c +2026-10-29T20:44:31.4350377Z +2026-10-29T20:44:31.4350542Z Or undo this operation with: +2026-10-29T20:44:31.4350871Z +2026-10-29T20:44:31.4351007Z git switch - +2026-10-29T20:44:31.4351208Z +2026-10-29T20:44:31.4351539Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T20:44:31.4352018Z +2026-10-29T20:44:31.4352801Z HEAD is now at 5101de24 Merge 262036691d365ede742673ed421091dfbfdb2a72 into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T20:44:31.4373469Z ##[endgroup] +2026-10-29T20:44:31.4428905Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:44:31.4457792Z 5101de24c9df9daa92f86404d6f756e5ab1b1c1b +2026-10-29T20:44:31.4466209Z ##[group]Removing auth +2026-10-29T20:44:31.4467005Z Removing SSH command configuration +2026-10-29T20:44:31.4472679Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:44:31.4506423Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:44:31.4736452Z Removing HTTP extra header +2026-10-29T20:44:31.4738506Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:44:31.4773334Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:44:31.4990633Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:44:31.4993298Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:44:31.5018143Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:44:31.5019325Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:44:31.5020126Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:44:31.5021123Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:44:31.5026084Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:44:31.5050687Z /home/runner/work/_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:31.5060920Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-66a80253\-e03c\-497d\-b08b\-49ad1a3b8d4b\.config +2026-10-29T20:44:31.5096585Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:44:31.5121699Z /home/runner/work/_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:31.5129368Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-66a80253\-e03c\-497d\-b08b\-49ad1a3b8d4b\.config +2026-10-29T20:44:31.5165997Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:44:31.5190886Z /github/runner_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:31.5198197Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-66a80253\-e03c\-497d\-b08b\-49ad1a3b8d4b\.config +2026-10-29T20:44:31.5239794Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:44:31.5264361Z /github/runner_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config +2026-10-29T20:44:31.5280374Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-66a80253\-e03c\-497d\-b08b\-49ad1a3b8d4b\.config +2026-10-29T20:44:31.5307746Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:44:31.5534297Z Removing credentials config '/home/runner/work/_temp/git-credentials-66a80253-e03c-497d-b08b-49ad1a3b8d4b.config' +2026-10-29T20:44:31.5544143Z ##[endgroup] +2026-10-29T20:44:31.5831300Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:44:31.5831939Z with: +2026-10-29T20:44:31.5832696Z python-version: 3.11 +2026-10-29T20:44:31.5833065Z check-latest: false +2026-10-29T20:44:31.5835677Z token: *** +2026-10-29T20:44:31.5836117Z update-environment: true +2026-10-29T20:44:31.5836497Z allow-prereleases: false +2026-10-29T20:44:31.5836860Z freethreaded: false +2026-10-29T20:44:31.5837157Z ##[endgroup] +2026-10-29T20:44:31.6814111Z ##[group]Installed versions +2026-10-29T20:44:31.6893614Z Successfully set up CPython (3.11.17) +2026-10-29T20:44:31.6894435Z ##[endgroup] +2026-10-29T20:44:31.7053435Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:44:31.7054670Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:44:31.7226322Z shell: /usr/bin/bash -e {0} +2026-10-29T20:44:31.7227190Z env: +2026-10-29T20:44:31.7227810Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:31.7228389Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:44:31.7229181Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:31.7229694Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:31.7230190Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:31.7230748Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:44:31.7231195Z ##[endgroup] +2026-10-29T20:44:32.6049562Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... FAIL +2026-10-29T20:44:32.6056527Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:44:32.6057452Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:44:32.6058562Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... FAIL +2026-10-29T20:44:32.6059753Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:44:32.6060716Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:44:32.6061697Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:44:32.6073629Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:44:32.6074507Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:44:32.6075635Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:44:32.6076729Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... +2026-10-29T20:44:32.6077907Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') ... FAIL +2026-10-29T20:44:32.6079508Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') ... FAIL +2026-10-29T20:44:32.6081121Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') ... FAIL +2026-10-29T20:44:32.6082425Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:44:32.8177131Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:44:32.8388746Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:44:33.0575660Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:44:33.0818143Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:44:33.1002050Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:44:33.1177873Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:44:33.1366197Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:44:33.1542057Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:44:33.3071711Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:44:33.3245935Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:44:33.3486848Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:44:33.3704902Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:44:33.3894718Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:44:33.4085545Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:44:33.4349115Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:44:33.4526696Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:44:33.4709163Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:44:33.4913980Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:44:33.5944768Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:44:33.6117486Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:44:33.6376373Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:44:33.6653389Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:44:33.6902683Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:44:33.7165155Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:44:33.7496227Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:44:33.7760441Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:44:33.7936345Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:44:33.8104304Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:44:33.8399998Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:44:33.8570861Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:44:33.8764144Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:44:36.8656974Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:44:37.4900769Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:44:38.5570260Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:44:38.5571684Z +2026-10-29T20:44:38.5572518Z ====================================================================== +2026-10-29T20:44:38.5573357Z FAIL: test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) +2026-10-29T20:44:38.5574253Z ---------------------------------------------------------------------- +2026-10-29T20:44:38.5574640Z Traceback (most recent call last): +2026-10-29T20:44:38.5581933Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 523, in test_abnormal_test_process_exit_cannot_kill +2026-10-29T20:44:38.5583085Z self.assertFalse(assertion_kill(self.result(code=86), "test_expected")) +2026-10-29T20:44:38.5583529Z AssertionError: True is not false +2026-10-29T20:44:38.5583817Z +2026-10-29T20:44:38.5583978Z ====================================================================== +2026-10-29T20:44:38.5584723Z FAIL: test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) +2026-10-29T20:44:38.5585496Z ---------------------------------------------------------------------- +2026-10-29T20:44:38.5585896Z Traceback (most recent call last): +2026-10-29T20:44:38.5586634Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 513, in test_expected_and_foreign_failures_cannot_kill +2026-10-29T20:44:38.5587371Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T20:44:38.5587817Z AssertionError: True is not false +2026-10-29T20:44:38.5587994Z +2026-10-29T20:44:38.5588167Z ====================================================================== +2026-10-29T20:44:38.5588985Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') +2026-10-29T20:44:38.5589805Z ---------------------------------------------------------------------- +2026-10-29T20:44:38.5590226Z Traceback (most recent call last): +2026-10-29T20:44:38.5590920Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:44:38.5591737Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:44:38.5592209Z AssertionError: True is not false +2026-10-29T20:44:38.5592637Z +2026-10-29T20:44:38.5592796Z ====================================================================== +2026-10-29T20:44:38.5593684Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') +2026-10-29T20:44:38.5594980Z ---------------------------------------------------------------------- +2026-10-29T20:44:38.5595379Z Traceback (most recent call last): +2026-10-29T20:44:38.5596161Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:44:38.5596896Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:44:38.5597654Z AssertionError: True is not false +2026-10-29T20:44:38.5597856Z +2026-10-29T20:44:38.5597977Z ====================================================================== +2026-10-29T20:44:38.5598798Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') +2026-10-29T20:44:38.5599691Z ---------------------------------------------------------------------- +2026-10-29T20:44:38.5600088Z Traceback (most recent call last): +2026-10-29T20:44:38.5600863Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:44:38.5601594Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:44:38.5602039Z AssertionError: True is not false +2026-10-29T20:44:38.5602515Z +2026-10-29T20:44:38.5602683Z ---------------------------------------------------------------------- +2026-10-29T20:44:38.5603054Z Ran 46 tests in 5.957s +2026-10-29T20:44:38.5603210Z +2026-10-29T20:44:38.5603425Z FAILED (failures=5) +2026-10-29T20:44:38.5725497Z ##[error]Process completed with exit code 1. +2026-10-29T20:44:38.5806178Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:44:38.5806971Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:44:38.5857837Z shell: /usr/bin/bash -e {0} +2026-10-29T20:44:38.5858193Z env: +2026-10-29T20:44:38.5858581Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:38.5859044Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:44:38.5859547Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:38.5860024Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:38.5860451Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:38.5860928Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:44:38.5861302Z ##[endgroup] +2026-10-29T20:44:40.6229580Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... FAIL +2026-10-29T20:44:40.6236985Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:44:40.6237936Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:44:40.6238844Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... FAIL +2026-10-29T20:44:40.6239877Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:44:40.6240860Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:44:40.6241878Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:44:40.6242934Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:44:40.6243782Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:44:40.6244771Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:44:40.6245825Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... +2026-10-29T20:44:40.6246993Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') ... FAIL +2026-10-29T20:44:40.6248648Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') ... FAIL +2026-10-29T20:44:40.6254001Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') ... FAIL +2026-10-29T20:44:40.6255115Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:44:41.2659092Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:44:41.2859106Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:44:41.3895969Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:44:41.4141297Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:44:41.4312035Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:44:41.4486680Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:44:41.4673059Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:44:41.4853663Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:44:42.0413426Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:44:42.0596071Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:44:42.0834499Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:44:42.1043005Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:44:42.1218462Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:44:42.1401797Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:44:42.1645567Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:44:42.1823323Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:44:42.2003604Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:44:42.2204877Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:44:42.3227957Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:44:42.3402197Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:44:42.3648285Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:44:42.3913894Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:44:42.4171058Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:44:42.4430920Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:44:42.4716241Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:44:42.4973707Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:44:42.5150015Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:44:42.5328882Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:44:42.5637575Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:44:42.5807262Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:44:42.5995568Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:44:51.2252054Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:44:53.1245874Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:44:54.8153953Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... ok +2026-10-29T20:44:54.8154837Z +2026-10-29T20:44:54.8155173Z ====================================================================== +2026-10-29T20:44:54.8155878Z FAIL: test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) +2026-10-29T20:44:54.8156680Z ---------------------------------------------------------------------- +2026-10-29T20:44:54.8157084Z Traceback (most recent call last): +2026-10-29T20:44:54.8157923Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 523, in test_abnormal_test_process_exit_cannot_kill +2026-10-29T20:44:54.8158850Z self.assertFalse(assertion_kill(self.result(code=86), "test_expected")) +2026-10-29T20:44:54.8159281Z AssertionError: True is not false +2026-10-29T20:44:54.8159496Z +2026-10-29T20:44:54.8159687Z ====================================================================== +2026-10-29T20:44:54.8160404Z FAIL: test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) +2026-10-29T20:44:54.8161125Z ---------------------------------------------------------------------- +2026-10-29T20:44:54.8161574Z Traceback (most recent call last): +2026-10-29T20:44:54.8162520Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 513, in test_expected_and_foreign_failures_cannot_kill +2026-10-29T20:44:54.8163240Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T20:44:54.8164150Z AssertionError: True is not false +2026-10-29T20:44:54.8164354Z +2026-10-29T20:44:54.8164543Z ====================================================================== +2026-10-29T20:44:54.8165405Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, skipped=1') +2026-10-29T20:44:54.8166231Z ---------------------------------------------------------------------- +2026-10-29T20:44:54.8166593Z Traceback (most recent call last): +2026-10-29T20:44:54.8167399Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:44:54.8168445Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:44:54.8168990Z AssertionError: True is not false +2026-10-29T20:44:54.8169168Z +2026-10-29T20:44:54.8169316Z ====================================================================== +2026-10-29T20:44:54.8170139Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, expected failures=1') +2026-10-29T20:44:54.8171296Z ---------------------------------------------------------------------- +2026-10-29T20:44:54.8171731Z Traceback (most recent call last): +2026-10-29T20:44:54.8173018Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:44:54.8173783Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:44:54.8174228Z AssertionError: True is not false +2026-10-29T20:44:54.8174456Z +2026-10-29T20:44:54.8174619Z ====================================================================== +2026-10-29T20:44:54.8175494Z FAIL: test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) (summary='failures=1, unexpected successes=1') +2026-10-29T20:44:54.8176404Z ---------------------------------------------------------------------- +2026-10-29T20:44:54.8176821Z Traceback (most recent call last): +2026-10-29T20:44:54.8177646Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 520, in test_skips_and_expected_failures_cannot_kill +2026-10-29T20:44:54.8178463Z self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) +2026-10-29T20:44:54.8178955Z AssertionError: True is not false +2026-10-29T20:44:54.8179142Z +2026-10-29T20:44:54.8179338Z ---------------------------------------------------------------------- +2026-10-29T20:44:54.8179719Z Ran 46 tests in 14.193s +2026-10-29T20:44:54.8179881Z +2026-10-29T20:44:54.8179970Z FAILED (failures=5) +2026-10-29T20:44:54.8318940Z ##[error]Process completed with exit code 1. +2026-10-29T20:44:54.8364156Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:44:54.8365157Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:44:54.8365905Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:44:54.8403740Z shell: /usr/bin/bash -e {0} +2026-10-29T20:44:54.8404016Z env: +2026-10-29T20:44:54.8404484Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:54.8404950Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:44:54.8405471Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:54.8405884Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:54.8406289Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:54.8406863Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:44:54.8407217Z ##[endgroup] +2026-10-29T20:44:54.8479421Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:44:56.4088899Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:44:56.7246957Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:44:56.7248177Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:44:56.7291132Z shell: /usr/bin/bash -e {0} +2026-10-29T20:44:56.7291588Z env: +2026-10-29T20:44:56.7291893Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:56.7292883Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:44:56.7293515Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:56.7293944Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:56.7294417Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:44:56.7294945Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:44:56.7295478Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:44:56.7295929Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:44:56.7296232Z ##[endgroup] +2026-10-29T20:45:02.8439708Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:45:02.8607604Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:45:02.8608086Z python -B -S - <<'PY' +2026-10-29T20:45:02.8608509Z import hashlib, json, os +2026-10-29T20:45:02.8608803Z from pathlib import Path +2026-10-29T20:45:02.8609156Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T20:45:02.8609648Z record = json.loads((root / "result.json").read_text()) +2026-10-29T20:45:02.8610121Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T20:45:02.8610573Z raw = (root / "node.tap").read_bytes() +2026-10-29T20:45:02.8610937Z def verify_log(value): +2026-10-29T20:45:02.8611322Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T20:45:02.8611886Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T20:45:02.8612665Z verify_log(raw) +2026-10-29T20:45:02.8613105Z try: +2026-10-29T20:45:02.8613368Z  verify_log(raw + b"\0") +2026-10-29T20:45:02.8613687Z except ValueError: +2026-10-29T20:45:02.8614003Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T20:45:02.8614321Z else: +2026-10-29T20:45:02.8614680Z  raise SystemExit("modified transcript was admitted") +2026-10-29T20:45:02.8615043Z text = raw.decode("utf-8") +2026-10-29T20:45:02.8615395Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T20:45:02.8615874Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T20:45:02.8616266Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T20:45:02.8616779Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T20:45:02.8617207Z for number, chunk in enumerate(chunks): +2026-10-29T20:45:02.8617618Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T20:45:02.8618047Z PY +2026-10-29T20:45:02.8650665Z shell: /usr/bin/bash -e {0} +2026-10-29T20:45:02.8651001Z env: +2026-10-29T20:45:02.8651355Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:02.8651841Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:45:02.8652715Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:02.8653229Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:02.8653657Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:02.8654068Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:45:02.8654786Z ##[endgroup] +2026-10-29T20:45:02.8948626Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:45:02.842671+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "026631fd55e2a35efd8f5b875f1be75681ea6cea0bda59dfea659714e1cf3f29", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "5101de24c9df9daa92f86404d6f756e5ab1b1c1b", "source_before": "5101de24c9df9daa92f86404d6f756e5ab1b1c1b", "started_utc": "2026-10-29T20:44:56.793368+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:45:02.8988545Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T20:45:02.8988852Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T20:45:02.8989173Z CBZ_NODE_TAP_GIT_BLOB 91b3f89aa8d8388ebdea246ffb453e7edfbdd501 +2026-10-29T20:45:02.9002747Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 33.299265\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 6.845939\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.719189\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 3.640045\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.110405\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.623914\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.613347\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.170593\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.627427\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.681327\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.594924\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.06292\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.837614\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.47798\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 4.117855\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.796784\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.626731\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.433065\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.047745\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.686359\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit bri" +2026-10-29T20:45:02.9028943Z CBZ_NODE_TAP_JSON 1 "dge\n ---\n duration_ms: 0.605404\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.295602\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.564718\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.828078\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.622786\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.118741\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.838485\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.884643\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 2.129863\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.01645\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 2.921816\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.848725\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.12834\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.101422\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 2.165318\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.315181\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.367594\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.332572\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.391168\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.197948\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot remai" +2026-10-29T20:45:02.9055260Z CBZ_NODE_TAP_JSON 2 "ns a visible reading action\n ---\n duration_ms: 0.126784\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.209771\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.372157\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.275799\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.16431\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 1.98924\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.827054\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 1.028034\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.208511\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 0.954918\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 2.091138\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 0.894306\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.609879\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.48605\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.74547\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 4.662998\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 1.095838\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.102085\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are determin" +2026-10-29T20:45:02.9081590Z CBZ_NODE_TAP_JSON 3 "istic and inputs remain unchanged\n ---\n duration_ms: 1.020322\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.340236\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.237562\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 2.52228\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.425014\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 2.213323\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.355034\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 5.190551\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.721361\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.591292\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.930416\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.718261\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.232838\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 0.985388\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.110941\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.136312\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 10.787302\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 8.70102\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 135.60412\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history state; sha" +2026-10-29T20:45:02.9107751Z CBZ_NODE_TAP_JSON 4 "re link only includes filters\n ---\n duration_ms: 125.990356\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 62.673598\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 49.973283\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 31.11378\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 25.242231\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 33.298856\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 4.821133\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 32.518672\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 21.57034\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 28.422334\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 27.325776\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 9.888187\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 10.017588\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 5.646996\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 7.679241\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 9.144913\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.816383\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.165569\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.724757\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers use dis" +2026-10-29T20:45:02.9133936Z CBZ_NODE_TAP_JSON 5 "tinct identities and ordinary, non-live count spans\n ---\n duration_ms: 8.112303\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 15.385544\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.49343\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.128068\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.571753\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.29713\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.988156\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 0.985212\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 1.4682\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 3.002155\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.409347\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 3.295506\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 1.034313\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.674216\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.803112\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.810847\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 0.893715\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.998556\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.715637\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.747842\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.861036\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 2.248536\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 1.723664\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.552278\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 0.590893\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid range\n --" +2026-10-29T20:45:02.9160130Z CBZ_NODE_TAP_JSON 6 "-\n duration_ms: 0.478427\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.490995\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 1.036257\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.163246\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 0.838646\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 0.745627\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 2.792472\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 2.26516\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.99446\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 1.787524\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 1.488399\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 1.333592\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 2.145871\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 4.181132\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 1.360686\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 2.797263\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 1.081094\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 1.712041\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 2.058076\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 1.633078\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 5.154513\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 10.239031\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort signal" +2026-10-29T20:45:02.9186291Z CBZ_NODE_TAP_JSON 7 "\n ---\n duration_ms: 2.06026\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 1.530748\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 1.432522\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.512185\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.344291\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 2.945807\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 1.101382\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.974293\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.93412\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.69463\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 20.761996\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 4.605587\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 27.984761\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 5.702776\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.906961\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.487042\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 2.886658\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 6.152253\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 1.240965\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 1.210247\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can constr" +2026-10-29T20:45:02.9212411Z CBZ_NODE_TAP_JSON 8 "uct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.93364\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 1.048313\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.477211\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.412031\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.69987\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.689374\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.221043\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.436669\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.205516\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.86358\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 123.427014\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.314133\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.367858\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.251556\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.573598\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.475355\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.329132\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewriting the " +2026-10-29T20:45:02.9238670Z CBZ_NODE_TAP_JSON 9 "address\n ---\n duration_ms: 0.275103\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.862292\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.549743\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.390329\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.403272\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.237722\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.327165\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.289575\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.532328\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.37585\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.490459\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.375114\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.676575\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 12.420963\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 0.876659\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.661016\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 0.943463\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.648209\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 0.6" +2026-10-29T20:45:02.9264978Z CBZ_NODE_TAP_JSON 10 "14915\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 2.018678\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.652881\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 1.301217\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.848509\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.526408\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 1.120021\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.52172\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.699309\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.545727\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.593333\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.571397\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.701965\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.603204\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.782873\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.615835\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.547023\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.609475\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.504866\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 1.274435\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.6045\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.699821\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.16207\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 3.068663\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 1.292178\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 1.896165\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 2.562438\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 1.021731\n type: 'test'\n ...\n# Subtest: acquisition: independ" +2026-10-29T20:45:02.9291117Z CBZ_NODE_TAP_JSON 11 "ent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 2.775785\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.523432\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.522761\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.510321\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.506561\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.512113\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.735387\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.531288\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 1.654036\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.598868\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.484899\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.926607\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.722388\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.092322\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.173758\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.432102\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.212875\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.36545\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 3.48379\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 2.279358\n type: 'test'\n ...\n# Subtest: equation " +2026-10-29T20:45:02.9317346Z CBZ_NODE_TAP_JSON 12 "and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.170582\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.091907\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.568781\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 13.220874\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.517976\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.229378\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.244337\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.307045\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 6.680653\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 0.574917\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 5.816697\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.359402\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 0.976877\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.404759\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 20.989455\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 13.789736\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 6.871578\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_ms:" +2026-10-29T20:45:02.9343600Z CBZ_NODE_TAP_JSON 13 " 10.93726\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 18.271595\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 32.864762\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 21.569556\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 29.357031\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 3.512013\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.237545\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.564478\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.448373\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 59.129747\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 3.758238\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 5.959344\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 3.453496\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.692718\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.337516\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.841741\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.874347\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.230042\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - on" +2026-10-29T20:45:02.9370050Z CBZ_NODE_TAP_JSON 14 "ly exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.530208\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.222074\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.160762\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 150.481688\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.255596\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.401951\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 2.125256\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.585452\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.556614\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.352075\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.452117\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 1.764405\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.754499\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 1.07684\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.413335\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.238745\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.369218\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.209907\n type: 'test'\n ...\n# Subtes" +2026-10-29T20:45:02.9396626Z CBZ_NODE_TAP_JSON 15 "t: widening the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.49421\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.32306\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.479187\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.334604\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.266355\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 5.659539\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 7.142697\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 4.334843\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.627426\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.474916\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.375901\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 3.623173\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.730436\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.765862\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.155466\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 2.905736\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 4.479602\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---" +2026-10-29T20:45:02.9423269Z CBZ_NODE_TAP_JSON 16 "\n duration_ms: 3.505461\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.306061\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.3251\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.276399\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.442509\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.265264\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 2.796592\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.526856\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 20.77014\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 2.234106\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.663559\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.69031\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 3.409035\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 5.000067\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 3.468655\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 56.957294\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 167.16169\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-ev" +2026-10-29T20:45:02.9449567Z CBZ_NODE_TAP_JSON 17 "idence after 0 ms digest delay\n ---\n duration_ms: 12.892638\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 165.425427\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 22.971048\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 162.294719\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 12.646877\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 167.195128\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 2.271847\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 3.785668\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 3.074719\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.830662\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 3.054008\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 2.908376\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 5.623173\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 8.976915\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 4.167325\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 2.512552\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 3.387203\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 2.184212\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and label" +2026-10-29T20:45:02.9475960Z CBZ_NODE_TAP_JSON 18 "s the snapshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 1.146723\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 1.456408\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.307593\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 1.871944\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 5.307688\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 3.768605\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 1.585544\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 1.380685\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 6.208889\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.60907\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 0.9803\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.56695\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.305589\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.497267\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.803991\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 1.268891\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 1.367918\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - in" +2026-10-29T20:45:02.9502394Z CBZ_NODE_TAP_JSON 19 "valid choices cannot invent regions or objects\n ---\n duration_ms: 0.63265\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.955494\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.639813\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.169422\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 3.76315\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 2.011911\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 1.545299\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 2.171509\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 0.961398\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.429206\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.050209\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.50041\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.79308\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 3.51582\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.29231\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.428726\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.686263\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 1.051784\n type: 'test'\n ...\n# Sub" +2026-10-29T20:45:02.9528881Z CBZ_NODE_TAP_JSON 20 "test: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 9.313679\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.707913\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.561622\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.407672\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.217419\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.045297\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.307702\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.250985\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.612099\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.416079\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.239561\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.35821\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.36213\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.82683\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.496314\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.461332\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.485846\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.281067\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.277659\n" +2026-10-29T20:45:02.9554929Z CBZ_NODE_TAP_JSON 21 " type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 9.381043\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.150907\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 1.033866\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 0.979437\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.475307\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.378233\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.403496\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.417639\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.934047\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 3.077423\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.235069\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 1.563153\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 3.838528\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.402284\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.45546\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.401424\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 1.401212\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.375717\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 75.013654\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 30.515944\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 61.439783\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 99.309516\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and malformed" +2026-10-29T20:45:02.9580782Z CBZ_NODE_TAP_JSON 22 " hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 92.589929\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 66.308787\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 37.564175\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.191368\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.614395\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 1.02745\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.538779\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 33.646427\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 12.969978\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 5.870654\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 6.553789\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 2.414718\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 1.940035\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.545535\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 5.899133\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 6.365128\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.220626\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.872056\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 5.39309" +2026-10-29T20:45:02.9606529Z CBZ_NODE_TAP_JSON 23 "9\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 9.214261\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 1.959362\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.991632\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.964909\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 3.741598\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.644338\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.57355\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.712477\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.479827\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.284175\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 6.795006\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.056137\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 2.899769\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 4.548766\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.231634\n type: 'test'\n ..." +2026-10-29T20:45:02.9632451Z CBZ_NODE_TAP_JSON 24 "\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.523801\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.687498\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.760262\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.624569\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.040297\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.278407\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 45.732259\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.217552\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 12.732776\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 12.319202\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 10.09248\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 4.978276\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.951444\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 5.664091\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 0.987693\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 0.855692\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.543959\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified replay so" +2026-10-29T20:45:02.9658557Z CBZ_NODE_TAP_JSON 25 "urce\n ---\n duration_ms: 4.298373\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.757715\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.411176\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 2.429574\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 1.250036\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 16.254444\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 2.753162\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.129996\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 1.311761\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.09327\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 5.50862\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 5.040368\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 0.917728\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.19164\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 3.78362\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 4.06002\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 4.417797\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.218678\n type: 'test'\n " +2026-10-29T20:45:02.9684579Z CBZ_NODE_TAP_JSON 26 " ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 15.833302\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.28863\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 17.884825\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 4.247768\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 4.411038\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 8.45369\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 7.813984\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 7.392506\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 7.268841\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.932932\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.442989\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.442229\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.47422\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.512225\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 2.940103\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.725373\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.684383\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.644309\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view through 3D, " +2026-10-29T20:45:02.9710761Z CBZ_NODE_TAP_JSON 27 "2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 4.041252\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.235869\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 6.262462\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 33.139186\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 199.384924\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 321.313972\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1046.891851\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 304.785464\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 413.09915\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 135.683708\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 553.203208\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 185.860819\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.46616\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 149.781114\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 3.81361\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.768554\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.239962\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.307049\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n duration_ms: 0." +2026-10-29T20:45:02.9736984Z CBZ_NODE_TAP_JSON 28 "486043\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.747731\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.14359\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 19.570676\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 2.02591\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.485606\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 4.561733\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 4.773864\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 2.031517\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.901482\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.535184\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 12.162715\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 3.006626\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.466431\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.897202\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 5.116883\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 24.015512\n type: 'test'\n ...\n# Subtest: quer" +2026-10-29T20:45:02.9868933Z CBZ_NODE_TAP_JSON 29 "y view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 3.409826\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.509344\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.016059\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.327692\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 4.440876\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.520364\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.507746\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.785552\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.717997\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.157354\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.36115\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.101277\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.128408\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 9.852734\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 7.760628\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 35.963087\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 8.628136\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 1.352318\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.428494\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.208867\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.328212\n type: 'test'\n ...\n# Subtest: status snap" +2026-10-29T20:45:02.9895088Z CBZ_NODE_TAP_JSON 30 "shot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 1.05716\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.276584\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.169806\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.150967\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.240266\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.19234\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.142695\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.206299\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.203364\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.258185\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.248793\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.306514\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.453693\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.18764\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.553722\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.53792\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.12662\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.593628\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.631882\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 11.73458\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.251161\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 80.349708\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination an" +2026-10-29T20:45:02.9921065Z CBZ_NODE_TAP_JSON 31 "d filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 63.155097\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 44.422074\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 88.214441\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 152.750383\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.980414\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.904959\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.160755\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.062673\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.047078\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.444711\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.424195\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.581818\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.59183\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.725469\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 25.80706\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 20.310864\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 24.144129\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 24.110594\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused configuration sti" +2026-10-29T20:45:02.9947113Z CBZ_NODE_TAP_JSON 32 "ll reveals the requested unavailable section\n ---\n duration_ms: 1.947075\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 21.119639\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 25.433011\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 25.95114\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.690034\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 20.202901\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 23.565035\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.288999\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 34.419581\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.526116\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 23.480681\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 26.837982\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 24.630451\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 32.587963\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 26.461452\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 24.142768\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 25.556203\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 12.099886\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 26.485396\n type: 'test'\n ...\n# Subtes" +2026-10-29T20:45:02.9973193Z CBZ_NODE_TAP_JSON 33 "t: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 22.716759\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 24.736396\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.447165\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.116489\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 0.594476\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.258728\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.536307\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 3.188704\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.941671\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.830262\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.894314\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.140795\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 3.356005\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.462356\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 1.470959\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 0.59234\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.623202\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 2.140639\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable commit\nok 6" +2026-10-29T20:45:02.9999239Z CBZ_NODE_TAP_JSON 34 "48 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.452084\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.599052\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.28365\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.977401\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.725413\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.349707\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.400735\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.261281\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.251777\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.513377\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 0.691718\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 6.735002\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.517865\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 0.478644\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 0.877891\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 5.272906\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.740667\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 1.960114\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 9.708295\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - comparison mode" +2026-10-29T20:45:03.0025328Z CBZ_NODE_TAP_JSON 35 "l is implemented\n ---\n duration_ms: 5.940801\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.463412\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 324.00669\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 1.971145\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.620634\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 37.802656\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 30.078178\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 5.033352\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 17.707813\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 34.761168\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 5.639652\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.856085\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 6.929375\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 0.676831\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 7.703791\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 79.257278\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.456893\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.218375\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.397752\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, encoded traver" +2026-10-29T20:45:03.0051457Z CBZ_NODE_TAP_JSON 36 "sal and malformed identities stay literal\n ---\n duration_ms: 0.542607\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.784821\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.469114\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 0.996484\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 2.037229\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.538019\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.266432\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 1.203847\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 1.009739\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.385457\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.25184\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.784305\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 1.587656\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 0.718789\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.267928\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 14.293339\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.349523\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.495618\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields\n ---\n " +2026-10-29T20:45:03.0077897Z CBZ_NODE_TAP_JSON 37 "duration_ms: 0.856053\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.483371\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.733028\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.552327\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.693814\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.318829\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.429326\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.354706\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.276911\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.797008\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.546928\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.512809\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 19.807502\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 4.251088\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.2659\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 2.058156\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.624118\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok 721 - cap" +2026-10-29T20:45:03.0104094Z CBZ_NODE_TAP_JSON 38 "ture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.300089\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.295898\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.781457\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.337131\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.851184\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 3.774476\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.82489\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.347707\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.493754\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.588476\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.262212\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.452629\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.89629\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.448517\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.368186\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 83.472767\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 64.692675\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 38.52383\n ty" +2026-10-29T20:45:03.0130168Z CBZ_NODE_TAP_JSON 39 "pe: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 77.613841\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 143.157545\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.873457\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.204216\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.439152\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 29.183769\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.959323\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.397062\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.963451\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.332429\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.147058\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.804897\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 23.617512\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 20.416217\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 22.697719\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 23.428707\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 1.683786\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 19.988899\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and fi" +2026-10-29T20:45:03.0148863Z CBZ_NODE_TAP_JSON 40 "nal rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 22.339485\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 23.94718\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.72956\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 19.990395\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 23.617992\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.274679\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 24.655777\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.499862\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5156.156991\n" +2026-10-29T20:45:03.0247196Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:45:03.0247621Z with: +2026-10-29T20:45:03.0247794Z name: cbz-node-result +2026-10-29T20:45:03.0248022Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:45:03.0248294Z if-no-files-found: error +2026-10-29T20:45:03.0248515Z compression-level: 6 +2026-10-29T20:45:03.0248705Z overwrite: false +2026-10-29T20:45:03.0248893Z include-hidden-files: false +2026-10-29T20:45:03.0249104Z archive: true +2026-10-29T20:45:03.0249272Z env: +2026-10-29T20:45:03.0249495Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:03.0249895Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:45:03.0250292Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:03.0250649Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:03.0251044Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:45:03.0251413Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:45:03.0251709Z ##[endgroup] +2026-10-29T20:45:03.1859660Z With the provided path, there will be 41 files uploaded +2026-10-29T20:45:03.1860130Z Artifact name is valid! +2026-10-29T20:45:03.1860377Z Root directory input is valid! +2026-10-29T20:45:03.3861920Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:45:03.3893723Z Beginning upload of artifact content to blob storage +2026-10-29T20:45:03.6996304Z Uploaded bytes 504919 +2026-10-29T20:45:03.7300486Z Finished uploading artifact content to blob storage! +2026-10-29T20:45:03.7301314Z SHA256 digest of uploaded artifact is 8e3b9254469fc318367c4f32dc085ccdffb614bdc300a0cb78c588902205dab9 +2026-10-29T20:45:03.7302006Z Finalizing artifact upload +2026-10-29T20:45:04.2176992Z Artifact cbz-node-result successfully finalized. Artifact ID 12931582559 +2026-10-29T20:45:04.2177655Z Artifact cbz-node-result has been successfully uploaded! Final size is 504919 bytes. Artifact ID is 12931582559 +2026-10-29T20:45:04.2181470Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40951233906/artifacts/12931582559 +2026-10-29T20:45:04.2391981Z Post job cleanup. +2026-10-29T20:45:04.3152215Z [command]/usr/bin/git version +2026-10-29T20:45:04.3190774Z git version 2.56.0 +2026-10-29T20:45:04.3233760Z Temporarily overriding HOME='/home/runner/work/_temp/2b61f715-0613-4797-a18f-08e786706a1a' before making global git config changes +2026-10-29T20:45:04.3234487Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:45:04.3235023Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:45:04.3265362Z Removing SSH command configuration +2026-10-29T20:45:04.3272069Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:45:04.3307497Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:45:04.3592974Z Removing HTTP extra header +2026-10-29T20:45:04.3593700Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:45:04.3595328Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:45:04.3836361Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:45:04.3842581Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:45:04.3880455Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:45:04.4249307Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/museum-poisoned-bytecode-hosted.log b/cbz/evidence/cold-start-node/red/museum-poisoned-bytecode-hosted.log new file mode 100644 index 000000000..a49681845 --- /dev/null +++ b/cbz/evidence/cold-start-node/red/museum-poisoned-bytecode-hosted.log @@ -0,0 +1,861 @@ +2026-10-29T20:54:57.7671233Z Current runner version: '2.338.0' +2026-10-29T20:54:57.7706349Z ##[group]Runner Image Provisioner +2026-10-29T20:54:57.7707332Z Hosted Compute Agent +2026-10-29T20:54:57.7708523Z Version: 20261021.618 +2026-10-29T20:54:57.7709216Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T20:54:57.7709932Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T20:54:57.7710817Z Worker ID: {ed5b6c2b-72d4-43b1-8691-c29c83dbc5a5} +2026-10-29T20:54:57.7711623Z Region: centralus +2026-10-29T20:54:57.7712283Z Cloud: Azure +2026-10-29T20:54:57.7712889Z ##[endgroup] +2026-10-29T20:54:57.7715136Z ##[group]Operating System +2026-10-29T20:54:57.7716055Z Ubuntu +2026-10-29T20:54:57.7716600Z 24.04.5 +2026-10-29T20:54:57.7717192Z LTS +2026-10-29T20:54:57.7718119Z ##[endgroup] +2026-10-29T20:54:57.7718708Z ##[group]Runner Image +2026-10-29T20:54:57.7719468Z Image: ubuntu-24.04-arm +2026-10-29T20:54:57.7720145Z Version: 20261025.165.1 +2026-10-29T20:54:57.7721727Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24-arm64/20261025.165/images/ubuntu/Ubuntu2404-Arm64-Readme.md +2026-10-29T20:54:57.7723393Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24-arm64%2F20261025.165 +2026-10-29T20:54:57.7724509Z ##[endgroup] +2026-10-29T20:54:57.7725723Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T20:54:57.7729911Z Contents: read +2026-10-29T20:54:57.7730595Z Metadata: read +2026-10-29T20:54:57.7731360Z ##[endgroup] +2026-10-29T20:54:57.7735472Z Secret source: Actions +2026-10-29T20:54:57.7736470Z Cache mode: write +2026-10-29T20:54:57.7737460Z Prepare workflow directory +2026-10-29T20:54:57.8194689Z Prepare all required actions +2026-10-29T20:54:57.8251329Z Getting action download info +2026-10-29T20:54:58.0989019Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T20:54:58.2060285Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T20:54:58.3873297Z Download action repository 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9) +2026-10-29T20:54:58.5941805Z Complete job name: controls-and-prepared +2026-10-29T20:54:58.6982820Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T20:54:58.6984471Z with: +2026-10-29T20:54:58.6985295Z persist-credentials: false +2026-10-29T20:54:58.6985967Z fetch-depth: 0 +2026-10-29T20:54:58.6986840Z repository: d6g8k5htny-coder/main +2026-10-29T20:54:58.6991225Z token: *** +2026-10-29T20:54:58.6991860Z ssh-strict: true +2026-10-29T20:54:58.6992543Z ssh-user: git +2026-10-29T20:54:58.6993182Z clean: true +2026-10-29T20:54:58.6993823Z sparse-checkout-cone-mode: true +2026-10-29T20:54:58.6994484Z fetch-tags: false +2026-10-29T20:54:58.6995144Z show-progress: true +2026-10-29T20:54:58.6995790Z lfs: false +2026-10-29T20:54:58.6996344Z submodules: false +2026-10-29T20:54:58.6996999Z set-safe-directory: true +2026-10-29T20:54:58.6997993Z allow-unsafe-pr-checkout: false +2026-10-29T20:54:58.6999455Z ##[endgroup] +2026-10-29T20:54:58.7975927Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T20:54:58.7988662Z ##[group]Getting Git version info +2026-10-29T20:54:58.8008360Z Working directory is '/home/runner/work/main/main' +2026-10-29T20:54:58.8029493Z [command]/usr/bin/git version +2026-10-29T20:54:58.8120790Z git version 2.56.0 +2026-10-29T20:54:58.8149425Z ##[endgroup] +2026-10-29T20:54:58.8177607Z Temporarily overriding HOME='/home/runner/work/_temp/7d45cbe7-402e-453a-8898-f819db613ee9' before making global git config changes +2026-10-29T20:54:58.8180994Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:54:58.8182947Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:54:58.8227225Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T20:54:58.8241852Z ##[group]Determining repository object format +2026-10-29T20:54:58.8244226Z ##[endgroup] +2026-10-29T20:54:58.8245503Z ##[group]Initializing the repository +2026-10-29T20:54:58.8251714Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T20:54:58.8401790Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T20:54:58.8410628Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T20:54:58.8412114Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T20:54:58.8421638Z hint: call: +2026-10-29T20:54:58.8423087Z hint: +2026-10-29T20:54:58.8424758Z hint: git config --global init.defaultBranch +2026-10-29T20:54:58.8427380Z hint: +2026-10-29T20:54:58.8428426Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T20:54:58.8429701Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T20:54:58.8430582Z hint: +2026-10-29T20:54:58.8431347Z hint: git branch -m +2026-10-29T20:54:58.8432080Z hint: +2026-10-29T20:54:58.8432869Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T20:54:58.8434067Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T20:54:58.8436247Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T20:54:58.8471855Z ##[endgroup] +2026-10-29T20:54:58.8472987Z ##[group]Disabling automatic garbage collection +2026-10-29T20:54:58.8474994Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T20:54:58.8525200Z ##[endgroup] +2026-10-29T20:54:58.8526347Z ##[group]Setting up auth +2026-10-29T20:54:58.8527457Z Removing SSH command configuration +2026-10-29T20:54:58.8530864Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:54:58.8573519Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:54:58.8937393Z Removing HTTP extra header +2026-10-29T20:54:58.8943767Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:54:58.8981964Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:54:58.9214045Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:54:58.9218653Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:54:58.9254931Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:54:58.9507183Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T20:54:58.9554502Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:54:58.9597058Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:54:58.9638072Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:54:58.9677394Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:54:58.9731565Z ##[endgroup] +2026-10-29T20:54:58.9732646Z ##[group]Fetching the repository +2026-10-29T20:54:58.9734408Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +92f974eb9d5a044338d04d26c250a4bcfbae105c:refs/remotes/pull/707/merge +2026-10-29T20:55:27.4336195Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T20:55:27.4338846Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T20:55:27.4343295Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T20:55:27.4344502Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T20:55:27.4345475Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T20:55:27.4346653Z * [new branch] cbz/additional-kernel-evidence-20261029 -> origin/cbz/additional-kernel-evidence-20261029 +2026-10-29T20:55:27.4347823Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T20:55:27.4348872Z * [new branch] cbz/archived-v20-carriers-20261029 -> origin/cbz/archived-v20-carriers-20261029 +2026-10-29T20:55:27.4349774Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T20:55:27.4350677Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T20:55:27.4351723Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T20:55:27.4352572Z * [new branch] cbz/cold-start-node-delivery-20261029 -> origin/cbz/cold-start-node-delivery-20261029 +2026-10-29T20:55:27.4353521Z * [new branch] cbz/composed-main-regression-20261029 -> origin/cbz/composed-main-regression-20261029 +2026-10-29T20:55:27.4354563Z * [new branch] cbz/determinant-kernel-evidence-20261029 -> origin/cbz/determinant-kernel-evidence-20261029 +2026-10-29T20:55:27.4355628Z * [new branch] cbz/foundation-evidence-reconciliation-20261029 -> origin/cbz/foundation-evidence-reconciliation-20261029 +2026-10-29T20:55:27.4357129Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T20:55:27.4358350Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T20:55:27.4359517Z * [new branch] cbz/main-regression-skips-20261029 -> origin/cbz/main-regression-skips-20261029 +2026-10-29T20:55:27.4360539Z * [new branch] cbz/main-retire-superseded-20261029 -> origin/cbz/main-retire-superseded-20261029 +2026-10-29T20:55:27.4361790Z * [new branch] cbz/paper-boundary-adoption-522-526-20261029 -> origin/cbz/paper-boundary-adoption-522-526-20261029 +2026-10-29T20:55:27.4362714Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T20:55:27.4363779Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T20:55:27.4365058Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T20:55:27.4366200Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T20:55:27.4367448Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T20:55:27.4369130Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T20:55:27.4370234Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T20:55:27.4371151Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T20:55:27.4372104Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T20:55:27.4373932Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T20:55:27.4375049Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T20:55:27.4376065Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T20:55:27.4376932Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T20:55:27.4378036Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T20:55:27.4379047Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T20:55:27.4380082Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T20:55:27.4381124Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T20:55:27.4382079Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T20:55:27.4383041Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T20:55:27.4384117Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T20:55:27.4385013Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T20:55:27.4385981Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T20:55:27.4386915Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T20:55:27.4388364Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T20:55:27.4389454Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T20:55:27.4390382Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T20:55:27.4391331Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T20:55:27.4392350Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T20:55:27.4393359Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T20:55:27.4394408Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T20:55:27.4395429Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T20:55:27.4396317Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T20:55:27.4397179Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T20:55:27.4398427Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T20:55:27.4399502Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T20:55:27.4400464Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T20:55:27.4401350Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T20:55:27.4402662Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T20:55:27.4403784Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T20:55:27.4404765Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T20:55:27.4405601Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T20:55:27.4406472Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T20:55:27.4407362Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T20:55:27.4408473Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T20:55:27.4409501Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T20:55:27.4410518Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T20:55:27.4411871Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T20:55:27.4412719Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T20:55:27.4413559Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T20:55:27.4414579Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T20:55:27.4415458Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T20:55:27.4416427Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T20:55:27.4417910Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T20:55:27.4418971Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T20:55:27.4420042Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T20:55:27.4420806Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T20:55:27.4421695Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T20:55:27.4422674Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T20:55:27.4423625Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T20:55:27.4424713Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T20:55:27.4425699Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T20:55:27.4426576Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T20:55:27.4427402Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T20:55:27.4428462Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T20:55:27.4429387Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T20:55:27.4430246Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T20:55:27.4431568Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T20:55:27.4432490Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T20:55:27.4433299Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T20:55:27.4434214Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T20:55:27.4435220Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T20:55:27.4436220Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T20:55:27.4437182Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T20:55:27.4438375Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T20:55:27.4439445Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T20:55:27.4440432Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T20:55:27.4441537Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T20:55:27.4442959Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T20:55:27.4443905Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T20:55:27.4444927Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T20:55:27.4445950Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T20:55:27.4447341Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T20:55:27.4448681Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T20:55:27.4449592Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T20:55:27.4450759Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T20:55:27.4451755Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T20:55:27.4452632Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T20:55:27.4453674Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T20:55:27.4454574Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T20:55:27.4455597Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T20:55:27.4456589Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T20:55:27.4457512Z * [new branch] codex/cbz-formal-lifecycle-db642-20261029 -> origin/codex/cbz-formal-lifecycle-db642-20261029 +2026-10-29T20:55:27.4458705Z * [new branch] codex/cbz-guidance-2dcac160-20261029 -> origin/codex/cbz-guidance-2dcac160-20261029 +2026-10-29T20:55:27.4459654Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T20:55:27.4461248Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T20:55:27.4462239Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T20:55:27.4463242Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T20:55:27.4464297Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T20:55:27.4465124Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T20:55:27.4466242Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T20:55:27.4467504Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T20:55:27.4468870Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T20:55:27.4470072Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T20:55:27.4471054Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T20:55:27.4472039Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T20:55:27.4472976Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T20:55:27.4473894Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T20:55:27.4474888Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T20:55:27.4476111Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T20:55:27.4477135Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T20:55:27.4478456Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T20:55:27.4479328Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T20:55:27.4480283Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T20:55:27.4481161Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T20:55:27.4482099Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T20:55:27.4483207Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T20:55:27.4484331Z * [new branch] codex/public-intake-discovery-20261029 -> origin/codex/public-intake-discovery-20261029 +2026-10-29T20:55:27.4485322Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T20:55:27.4486207Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T20:55:27.4487118Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T20:55:27.4488448Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T20:55:27.4489914Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T20:55:27.4491099Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T20:55:27.4492053Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T20:55:27.4493073Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T20:55:27.4494057Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T20:55:27.4494961Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T20:55:27.4496150Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T20:55:27.4497253Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T20:55:27.4498415Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T20:55:27.4499264Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T20:55:27.4500102Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T20:55:27.4501064Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T20:55:27.4501951Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T20:55:27.4502962Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T20:55:27.4503910Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T20:55:27.4505127Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T20:55:27.4506193Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T20:55:27.4507162Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T20:55:27.4508705Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T20:55:27.4509748Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T20:55:27.4510761Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T20:55:27.4511804Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T20:55:27.4512788Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T20:55:27.4513813Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T20:55:27.4514834Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T20:55:27.4515753Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T20:55:27.4516763Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T20:55:27.4518397Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T20:55:27.4519415Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T20:55:27.4520516Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T20:55:27.4521492Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T20:55:27.4522416Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T20:55:27.4523296Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T20:55:27.4524676Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T20:55:27.4525789Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T20:55:27.4526748Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T20:55:27.4528049Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T20:55:27.4529149Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T20:55:27.4530453Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T20:55:27.4531681Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T20:55:27.4532807Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T20:55:27.4534243Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T20:55:27.4535287Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T20:55:27.4536256Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T20:55:27.4537355Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T20:55:27.4538471Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T20:55:27.4539520Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T20:55:27.4540542Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T20:55:27.4541536Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T20:55:27.4542703Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T20:55:27.4543696Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T20:55:27.4544633Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T20:55:27.4545553Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T20:55:27.4546395Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T20:55:27.4547456Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T20:55:27.4549002Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T20:55:27.4549994Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T20:55:27.4550857Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T20:55:27.4551712Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T20:55:27.4552724Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T20:55:27.4553561Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T20:55:27.4554590Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T20:55:27.4555536Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T20:55:27.4556447Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T20:55:27.4557558Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T20:55:27.4558749Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T20:55:27.4559704Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T20:55:27.4560674Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T20:55:27.4561609Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T20:55:27.4562843Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T20:55:27.4563813Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T20:55:27.4564788Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T20:55:27.4565679Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T20:55:27.4566713Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T20:55:27.4568025Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T20:55:27.4568922Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T20:55:27.4569887Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T20:55:27.4570743Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T20:55:27.4571597Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T20:55:27.4572525Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T20:55:27.4573577Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T20:55:27.4574806Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T20:55:27.4575891Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T20:55:27.4577267Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T20:55:27.4578550Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T20:55:27.4579508Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T20:55:27.4580538Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T20:55:27.4581475Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T20:55:27.4582270Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T20:55:27.4583189Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T20:55:27.4584107Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T20:55:27.4585056Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T20:55:27.4586067Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T20:55:27.4587014Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T20:55:27.4588149Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T20:55:27.4589053Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T20:55:27.4589958Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T20:55:27.4591174Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T20:55:27.4592052Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T20:55:27.4593057Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T20:55:27.4593946Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T20:55:27.4594890Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T20:55:27.4596196Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T20:55:27.4597001Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T20:55:27.4598190Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T20:55:27.4599181Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T20:55:27.4600185Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T20:55:27.4601311Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T20:55:27.4602272Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T20:55:27.4603352Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T20:55:27.4604398Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T20:55:27.4605790Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T20:55:27.4606624Z * [new branch] main -> origin/main +2026-10-29T20:55:27.4607427Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T20:55:27.4608858Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T20:55:27.4609813Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T20:55:27.4610695Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T20:55:27.4611551Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T20:55:27.4612320Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T20:55:27.4613057Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T20:55:27.4613775Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T20:55:27.4614451Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T20:55:27.4615216Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T20:55:27.4615910Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T20:55:27.4616595Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T20:55:27.4617248Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T20:55:27.4618172Z * [new ref] 92f974eb9d5a044338d04d26c250a4bcfbae105c -> pull/707/merge +2026-10-29T20:55:27.4620134Z ##[endgroup] +2026-10-29T20:55:27.4620846Z ##[group]Determining the checkout info +2026-10-29T20:55:27.4621939Z ##[endgroup] +2026-10-29T20:55:27.4622435Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T20:55:27.4623766Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T20:55:27.5114578Z ##[group]Checking out the ref +2026-10-29T20:55:27.5118613Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/707/merge +2026-10-29T20:55:27.8309111Z Note: switching to 'refs/remotes/pull/707/merge'. +2026-10-29T20:55:27.8310707Z +2026-10-29T20:55:27.8311772Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-29T20:55:27.8312522Z changes and commit them, and you can discard any commits you make in this +2026-10-29T20:55:27.8313232Z state without impacting any branches by switching back to a branch. +2026-10-29T20:55:27.8313672Z +2026-10-29T20:55:27.8313920Z If you want to create a new branch to retain commits you create, you may +2026-10-29T20:55:27.8314523Z do so (now or later) by using -c with the switch command. Example: +2026-10-29T20:55:27.8314944Z +2026-10-29T20:55:27.8315107Z git switch -c +2026-10-29T20:55:27.8315337Z +2026-10-29T20:55:27.8315933Z Or undo this operation with: +2026-10-29T20:55:27.8316155Z +2026-10-29T20:55:27.8316392Z git switch - +2026-10-29T20:55:27.8316600Z +2026-10-29T20:55:27.8316995Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-29T20:55:27.8317375Z +2026-10-29T20:55:27.8318336Z HEAD is now at 92f974eb Merge f26e91b41ddf425c3d361282d0d3e9b99bb87ee1 into c93cec70223281492709ff74ca84fed5dc6e40e8 +2026-10-29T20:55:27.8616434Z ##[endgroup] +2026-10-29T20:55:27.8621508Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T20:55:27.8657255Z 92f974eb9d5a044338d04d26c250a4bcfbae105c +2026-10-29T20:55:27.8665213Z ##[group]Removing auth +2026-10-29T20:55:27.8666275Z Removing SSH command configuration +2026-10-29T20:55:27.8670768Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:55:27.8708232Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:55:27.8955203Z Removing HTTP extra header +2026-10-29T20:55:27.8956787Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:55:27.8993711Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:55:27.9236696Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:55:27.9238708Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:55:27.9266563Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:55:27.9267234Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:55:27.9267957Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:55:27.9268600Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:55:27.9285187Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T20:55:27.9303126Z /home/runner/work/_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:55:27.9313523Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-a515257d\-ba98\-4c6b\-bc23\-7440769e665c\.config +2026-10-29T20:55:27.9429848Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T20:55:27.9458775Z /home/runner/work/_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:55:27.9468230Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-a515257d\-ba98\-4c6b\-bc23\-7440769e665c\.config +2026-10-29T20:55:27.9534586Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T20:55:27.9563966Z /github/runner_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:55:27.9571682Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-a515257d\-ba98\-4c6b\-bc23\-7440769e665c\.config +2026-10-29T20:55:27.9910300Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T20:55:27.9940633Z /github/runner_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config +2026-10-29T20:55:27.9949017Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-a515257d\-ba98\-4c6b\-bc23\-7440769e665c\.config +2026-10-29T20:55:28.0145656Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:55:28.0392387Z Removing credentials config '/home/runner/work/_temp/git-credentials-a515257d-ba98-4c6b-bc23-7440769e665c.config' +2026-10-29T20:55:28.0406831Z ##[endgroup] +2026-10-29T20:55:28.1130927Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T20:55:28.1131539Z with: +2026-10-29T20:55:28.1131864Z python-version: 3.11 +2026-10-29T20:55:28.1132239Z check-latest: false +2026-10-29T20:55:28.1135056Z token: *** +2026-10-29T20:55:28.1135485Z update-environment: true +2026-10-29T20:55:28.1135836Z allow-prereleases: false +2026-10-29T20:55:28.1136145Z freethreaded: false +2026-10-29T20:55:28.1136491Z ##[endgroup] +2026-10-29T20:55:28.2184348Z ##[group]Installed versions +2026-10-29T20:55:28.2287957Z Successfully set up CPython (3.11.17) +2026-10-29T20:55:28.2288968Z ##[endgroup] +2026-10-29T20:55:28.2811041Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:55:28.2812076Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:55:28.3042569Z shell: /usr/bin/bash -e {0} +2026-10-29T20:55:28.3043059Z env: +2026-10-29T20:55:28.3043724Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:28.3044297Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:55:28.3044860Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:28.3045414Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:28.3045900Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:28.3046428Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:55:28.3046916Z ##[endgroup] +2026-10-29T20:55:28.4857408Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:55:28.4864324Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:55:28.4869007Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:55:28.4889099Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:55:28.4899543Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... FAIL +2026-10-29T20:55:28.4900894Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:55:28.4901937Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:55:28.4903839Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:55:28.4904702Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:55:28.4905603Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:55:28.4906583Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:55:28.4907500Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:55:28.4908972Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:55:28.4909963Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:55:28.5684448Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:55:28.5937487Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:55:28.8352993Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:55:28.8624544Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:55:28.8832665Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:55:28.9070731Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:55:28.9294797Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:55:28.9498291Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:55:29.1103623Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:55:29.1318481Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:55:29.1610897Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:55:29.1853526Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:55:29.2073772Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:55:29.2299300Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:55:29.2623305Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:55:29.2843425Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:55:29.3448575Z test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T20:55:29.3687338Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:55:29.3933305Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:55:29.5060369Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:55:29.5284914Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:55:29.5653025Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:55:29.5988887Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:55:29.6291969Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:55:29.6611375Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:55:29.6951666Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:55:29.7289031Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:55:29.7502658Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:55:29.7751514Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:55:29.8121363Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:55:29.8335032Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:55:29.8566315Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:55:33.0613763Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:55:33.7838274Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:55:35.0760162Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... FAIL +2026-10-29T20:55:35.0761081Z +2026-10-29T20:55:35.0761556Z ====================================================================== +2026-10-29T20:55:35.0762323Z FAIL: test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) +2026-10-29T20:55:35.0763083Z ---------------------------------------------------------------------- +2026-10-29T20:55:35.0763554Z Traceback (most recent call last): +2026-10-29T20:55:35.0770774Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 639, in test_fixture_receipt_requires_successful_node_exit +2026-10-29T20:55:35.0771761Z self.assertFalse(receipt.exists(), mutation) +2026-10-29T20:55:35.0772157Z AssertionError: True is not false : fixture-domain +2026-10-29T20:55:35.0772476Z +2026-10-29T20:55:35.0772609Z ====================================================================== +2026-10-29T20:55:35.0773488Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T20:55:35.0774343Z ---------------------------------------------------------------------- +2026-10-29T20:55:35.0774798Z Traceback (most recent call last): +2026-10-29T20:55:35.0775579Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 183, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T20:55:35.0776244Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T20:55:35.0776777Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T20:55:35.0777070Z +2026-10-29T20:55:35.0777195Z ====================================================================== +2026-10-29T20:55:35.0778140Z FAIL: test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) +2026-10-29T20:55:35.0778875Z ---------------------------------------------------------------------- +2026-10-29T20:55:35.0779244Z Traceback (most recent call last): +2026-10-29T20:55:35.0780013Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 718, in test_unmodified_copied_source_passes +2026-10-29T20:55:35.0780694Z self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +2026-10-29T20:55:35.0781521Z AssertionError: 1 != 0 : test_all_byte_identities_are_required (tests.test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:55:35.0782697Z test_ambient_git_redirect_cannot_select_another_object_database (tests.test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:55:35.0783883Z test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:55:35.0785634Z test_clean_snapshot_binds_head (tests.test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:55:35.0786499Z test_duplicate_config_keys_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:55:35.0787463Z test_existing_output_is_never_overwritten (tests.test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:55:35.0788750Z test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:55:35.0789810Z test_invalid_descriptor_domains_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:55:35.0790918Z test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:55:35.0792007Z test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:55:35.0793141Z test_materialization_checks_every_input_before_writing (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:55:35.0794235Z test_materialization_preserves_exact_bytes (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:55:35.0795404Z test_missing_executable_is_an_execution_error (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:55:35.0796604Z test_missing_historical_object_does_not_fall_back_to_worktree (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:55:35.0797890Z test_node_command_enumerates_every_tracked_test (tests.test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:55:35.0798955Z test_output_in_any_source_root_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:55:35.0800020Z test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T20:55:35.0801163Z test_preflight_failure_produces_fail_report (tests.test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:55:35.0802303Z test_reads_immutable_blob_instead_of_dirty_working_copy (tests.test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:55:35.0803362Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:55:35.0804474Z test_report_is_atomic_and_keeps_running_distinct_from_pass (tests.test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:55:35.0805576Z test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:55:35.0806688Z test_snapshot_detects_assume_unchanged_source_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:55:35.0808023Z test_snapshot_detects_hidden_executable_mode_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:55:35.0809133Z test_snapshot_detects_index_and_untracked_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:55:35.0810688Z test_subprocess_exit_and_output_are_preserved (tests.test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:55:35.0811818Z test_symlink_is_not_admitted_as_a_regular_fixture (tests.test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:55:35.0812858Z test_tap_missing_or_duplicate_fields_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:55:35.0813978Z test_tap_requires_nonzero_complete_all_passed_summary (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:55:35.0815170Z test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:55:35.0816208Z test_url_alias_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:55:35.0817090Z test_zero_tracked_node_tests_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:55:35.0817611Z +2026-10-29T20:55:35.0818127Z ====================================================================== +2026-10-29T20:55:35.0819022Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T20:55:35.0819817Z ---------------------------------------------------------------------- +2026-10-29T20:55:35.0820236Z Traceback (most recent call last): +2026-10-29T20:55:35.0821077Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 183, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T20:55:35.0821749Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T20:55:35.0822241Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T20:55:35.0822522Z +2026-10-29T20:55:35.0822699Z ---------------------------------------------------------------------- +2026-10-29T20:55:35.0823093Z Ran 32 tests in 1.209s +2026-10-29T20:55:35.0823282Z +2026-10-29T20:55:35.0823401Z FAILED (failures=1) +2026-10-29T20:55:35.0823560Z +2026-10-29T20:55:35.0823565Z +2026-10-29T20:55:35.0823716Z ---------------------------------------------------------------------- +2026-10-29T20:55:35.0824123Z Ran 49 tests in 6.591s +2026-10-29T20:55:35.0824293Z +2026-10-29T20:55:35.0824409Z FAILED (failures=3) +2026-10-29T20:55:35.0915805Z ##[error]Process completed with exit code 1. +2026-10-29T20:55:35.1001132Z ##[group]Run python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:55:35.1001900Z python -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T20:55:35.1054346Z shell: /usr/bin/bash -e {0} +2026-10-29T20:55:35.1054873Z env: +2026-10-29T20:55:35.1055201Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:35.1055745Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:55:35.1056270Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:35.1056827Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:35.1057320Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:35.1058081Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:55:35.1058556Z ##[endgroup] +2026-10-29T20:55:36.6703230Z test_abnormal_test_process_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_abnormal_test_process_exit_cannot_kill) ... ok +2026-10-29T20:55:36.6713316Z test_control_receipt_requires_the_exact_subject (test_cbz_node_regression.MutationHarnessTests.test_control_receipt_requires_the_exact_subject) ... ok +2026-10-29T20:55:36.6715159Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T20:55:36.6716971Z test_expected_and_foreign_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_expected_and_foreign_failures_cannot_kill) ... ok +2026-10-29T20:55:36.6727799Z test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) ... FAIL +2026-10-29T20:55:36.6729187Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T20:55:36.6730172Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... ok +2026-10-29T20:55:36.6731154Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T20:55:36.6731989Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T20:55:36.6732922Z test_mismatched_failure_count_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_mismatched_failure_count_cannot_kill) ... ok +2026-10-29T20:55:36.6733859Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T20:55:36.6734764Z test_receipt_accepts_only_the_matching_observation (test_cbz_node_regression.MutationHarnessTests.test_receipt_accepts_only_the_matching_observation) ... ok +2026-10-29T20:55:36.6735832Z test_skips_and_expected_failures_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_skips_and_expected_failures_cannot_kill) ... ok +2026-10-29T20:55:36.6736735Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T20:55:37.1873070Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:55:37.2132202Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:55:37.3303246Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:55:37.3586595Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:55:37.3801342Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:55:37.4011781Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:55:37.4238458Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:55:37.4450246Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:55:38.0194725Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:55:38.0401520Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:55:38.0678283Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:55:38.0923330Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:55:38.1155990Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:55:38.1384332Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:55:38.1692825Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:55:38.1911516Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:55:38.3673525Z test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T20:55:38.3904541Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:55:38.4153446Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:55:38.5328781Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:55:38.5538733Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:55:38.5859595Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:55:38.6192474Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:55:38.6519363Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:55:38.6833661Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:55:38.7155816Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:55:38.7490628Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:55:38.7706467Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:55:38.7922764Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:55:38.8289276Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:55:38.8505809Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:55:38.8772238Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:55:47.4366246Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T20:55:49.6622095Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T20:55:51.7377428Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... FAIL +2026-10-29T20:55:51.7378264Z +2026-10-29T20:55:51.7378427Z ====================================================================== +2026-10-29T20:55:51.7379398Z FAIL: test_fixture_receipt_requires_successful_node_exit (test_cbz_node_regression.MutationHarnessTests.test_fixture_receipt_requires_successful_node_exit) +2026-10-29T20:55:51.7380657Z ---------------------------------------------------------------------- +2026-10-29T20:55:51.7381394Z Traceback (most recent call last): +2026-10-29T20:55:51.7382260Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 639, in test_fixture_receipt_requires_successful_node_exit +2026-10-29T20:55:51.7382961Z self.assertFalse(receipt.exists(), mutation) +2026-10-29T20:55:51.7383456Z AssertionError: True is not false : fixture-domain +2026-10-29T20:55:51.7383679Z +2026-10-29T20:55:51.7383838Z ====================================================================== +2026-10-29T20:55:51.7384710Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T20:55:51.7385486Z ---------------------------------------------------------------------- +2026-10-29T20:55:51.7385854Z Traceback (most recent call last): +2026-10-29T20:55:51.7386641Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 183, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T20:55:51.7387356Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T20:55:51.7388124Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T20:55:51.7388398Z +2026-10-29T20:55:51.7388551Z ====================================================================== +2026-10-29T20:55:51.7389170Z FAIL: test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) +2026-10-29T20:55:51.7389895Z ---------------------------------------------------------------------- +2026-10-29T20:55:51.7390271Z Traceback (most recent call last): +2026-10-29T20:55:51.7391159Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 718, in test_unmodified_copied_source_passes +2026-10-29T20:55:51.7391851Z self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +2026-10-29T20:55:51.7392639Z AssertionError: 1 != 0 : test_all_byte_identities_are_required (tests.test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T20:55:51.7393854Z test_ambient_git_redirect_cannot_select_another_object_database (tests.test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T20:55:51.7395023Z test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... ok +2026-10-29T20:55:51.7396537Z test_clean_snapshot_binds_head (tests.test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T20:55:51.7397445Z test_duplicate_config_keys_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T20:55:51.7398574Z test_existing_output_is_never_overwritten (tests.test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T20:55:51.7399699Z test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... ok +2026-10-29T20:55:51.7400739Z test_invalid_descriptor_domains_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T20:55:51.7401847Z test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... ok +2026-10-29T20:55:51.7402927Z test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... ok +2026-10-29T20:55:51.7404017Z test_materialization_checks_every_input_before_writing (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T20:55:51.7405140Z test_materialization_preserves_exact_bytes (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T20:55:51.7406767Z test_missing_executable_is_an_execution_error (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T20:55:51.7408216Z test_missing_historical_object_does_not_fall_back_to_worktree (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T20:55:51.7409382Z test_node_command_enumerates_every_tracked_test (tests.test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T20:55:51.7410354Z test_output_in_any_source_root_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T20:55:51.7411466Z test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) ... FAIL +2026-10-29T20:55:51.7412601Z test_preflight_failure_produces_fail_report (tests.test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T20:55:51.7413728Z test_reads_immutable_blob_instead_of_dirty_working_copy (tests.test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T20:55:51.7414819Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T20:55:51.7415880Z test_report_is_atomic_and_keeps_running_distinct_from_pass (tests.test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T20:55:51.7417049Z test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... ok +2026-10-29T20:55:51.7418411Z test_snapshot_detects_assume_unchanged_source_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T20:55:51.7419638Z test_snapshot_detects_hidden_executable_mode_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T20:55:51.7420775Z test_snapshot_detects_index_and_untracked_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T20:55:51.7422039Z test_subprocess_exit_and_output_are_preserved (tests.test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T20:55:51.7423260Z test_symlink_is_not_admitted_as_a_regular_fixture (tests.test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T20:55:51.7424295Z test_tap_missing_or_duplicate_fields_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T20:55:51.7425397Z test_tap_requires_nonzero_complete_all_passed_summary (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T20:55:51.7426620Z test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... ok +2026-10-29T20:55:51.7427610Z test_url_alias_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T20:55:51.7428776Z test_zero_tracked_node_tests_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T20:55:51.7429290Z +2026-10-29T20:55:51.7429413Z ====================================================================== +2026-10-29T20:55:51.7430216Z FAIL: test_poisoned_museum_bytecode_cannot_pass_source_binding (tests.test_cbz_node_regression.NodeRunnerTests.test_poisoned_museum_bytecode_cannot_pass_source_binding) +2026-10-29T20:55:51.7431262Z ---------------------------------------------------------------------- +2026-10-29T20:55:51.7431672Z Traceback (most recent call last): +2026-10-29T20:55:51.7432549Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 183, in test_poisoned_museum_bytecode_cannot_pass_source_binding +2026-10-29T20:55:51.7433250Z self.assertIn("CBZ_SOURCE_ONLY", result.stdout) +2026-10-29T20:55:51.7433722Z AssertionError: 'CBZ_SOURCE_ONLY' not found in 'CBZ_POISONED\n' +2026-10-29T20:55:51.7434084Z +2026-10-29T20:55:51.7434247Z ---------------------------------------------------------------------- +2026-10-29T20:55:51.7434671Z Ran 32 tests in 1.820s +2026-10-29T20:55:51.7434872Z +2026-10-29T20:55:51.7435004Z FAILED (failures=1) +2026-10-29T20:55:51.7435142Z +2026-10-29T20:55:51.7435146Z +2026-10-29T20:55:51.7435320Z ---------------------------------------------------------------------- +2026-10-29T20:55:51.7435719Z Ran 49 tests in 15.068s +2026-10-29T20:55:51.7435929Z +2026-10-29T20:55:51.7436038Z FAILED (failures=3) +2026-10-29T20:55:51.7564794Z ##[error]Process completed with exit code 1. +2026-10-29T20:55:51.7616854Z ##[group]Run git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:55:51.7618058Z git clone --no-checkout https://github.com/d6g8k5htny-coder/Math-.git "$RUNNER_TEMP/Math-" +2026-10-29T20:55:51.7618811Z git clone --no-checkout https://github.com/d6g8k5htny-coder/query-.git "$RUNNER_TEMP/query-" +2026-10-29T20:55:51.7654108Z shell: /usr/bin/bash -e {0} +2026-10-29T20:55:51.7654443Z env: +2026-10-29T20:55:51.7654808Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:51.7655386Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:55:51.7655848Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:51.7656326Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:51.7656794Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:51.7657430Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:55:51.7658083Z ##[endgroup] +2026-10-29T20:55:51.7734225Z Cloning into '/home/runner/work/_temp/Math-'... +2026-10-29T20:55:53.4148602Z Cloning into '/home/runner/work/_temp/query-'... +2026-10-29T20:55:53.8320450Z ##[group]Run python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:55:53.8321662Z python -B -S tools/cbz_node_regression.py --math-root "$RUNNER_TEMP/Math-" --query-root "$RUNNER_TEMP/query-" --output "$RUNNER_TEMP/cbz-node-result" +2026-10-29T20:55:53.8356654Z shell: /usr/bin/bash -e {0} +2026-10-29T20:55:53.8357170Z env: +2026-10-29T20:55:53.8357485Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:53.8358361Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:55:53.8358862Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:53.8359282Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:53.8359766Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:55:53.8360328Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:55:53.8360845Z NODE_OPTIONS: --require=/definitely-missing-cbz-node-preload.cjs +2026-10-29T20:55:53.8361249Z NODE_PATH: /untrusted/cbz-node-path +2026-10-29T20:55:53.8361569Z ##[endgroup] +2026-10-29T20:56:00.1275633Z {"status": "PASS", "schema": "cbz.node-regression.v1"} +2026-10-29T20:56:00.1443606Z ##[group]Run python -B -S - <<'PY' +2026-10-29T20:56:00.1444121Z python -B -S - <<'PY' +2026-10-29T20:56:00.1444508Z import hashlib, json, os +2026-10-29T20:56:00.1444864Z from pathlib import Path +2026-10-29T20:56:00.1445228Z root = Path(os.environ["RUNNER_TEMP"]) / "cbz-node-result" +2026-10-29T20:56:00.1445742Z record = json.loads((root / "result.json").read_text()) +2026-10-29T20:56:00.1446498Z print("CBZ_NODE_RESULT_JSON " + json.dumps(record, sort_keys=True)) +2026-10-29T20:56:00.1446966Z raw = (root / "node.tap").read_bytes() +2026-10-29T20:56:00.1447366Z def verify_log(value): +2026-10-29T20:56:00.1448027Z  if hashlib.sha256(value).hexdigest() != record["log_sha256"]: +2026-10-29T20:56:00.1448617Z  raise ValueError("Node transcript no longer matches executed report") +2026-10-29T20:56:00.1449080Z verify_log(raw) +2026-10-29T20:56:00.1449507Z try: +2026-10-29T20:56:00.1449767Z  verify_log(raw + b"\0") +2026-10-29T20:56:00.1450046Z except ValueError: +2026-10-29T20:56:00.1450424Z  print("CBZ_NODE_TRANSPORT_ADVERSE_PASS") +2026-10-29T20:56:00.1450744Z else: +2026-10-29T20:56:00.1451135Z  raise SystemExit("modified transcript was admitted") +2026-10-29T20:56:00.1451519Z text = raw.decode("utf-8") +2026-10-29T20:56:00.1451900Z chunks = [text[i:i+4096] for i in range(0, len(text), 4096)] +2026-10-29T20:56:00.1452389Z print("CBZ_NODE_TAP_TOTAL " + str(len(chunks))) +2026-10-29T20:56:00.1452806Z print("CBZ_NODE_TAP_GIT_BLOB " + hashlib.sha1( +2026-10-29T20:56:00.1453271Z  b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest()) +2026-10-29T20:56:00.1453713Z for number, chunk in enumerate(chunks): +2026-10-29T20:56:00.1454141Z  print("CBZ_NODE_TAP_JSON " + str(number) + " " + json.dumps(chunk)) +2026-10-29T20:56:00.1454574Z PY +2026-10-29T20:56:00.1489366Z shell: /usr/bin/bash -e {0} +2026-10-29T20:56:00.1489681Z env: +2026-10-29T20:56:00.1489992Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.1490553Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:56:00.1491073Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.1491562Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.1492005Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.1492432Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:56:00.1492918Z ##[endgroup] +2026-10-29T20:56:00.1798261Z CBZ_NODE_RESULT_JSON {"command": ["node", "--test", "--test-reporter=tap", "tests/fixtures/museum_fixture.mjs", "tests/test_atlas_controls.mjs", "tests/test_atlas_formal_evidence.mjs", "tests/test_atlas_formal_source_bridge.mjs", "tests/test_atlas_reader_experience.mjs", "tests/test_atlas_relationships.mjs", "tests/test_atlas_resilience.mjs", "tests/test_atlas_spatial.mjs", "tests/test_atlas_spatial_labels.mjs", "tests/test_brand_identity.mjs", "tests/test_catalog_query.mjs", "tests/test_compare_categories.mjs", "tests/test_compare_source_panel.mjs", "tests/test_current_inventory_acquisition.mjs", "tests/test_current_observation_coherence.mjs", "tests/test_current_site.mjs", "tests/test_current_site_resume.mjs", "tests/test_current_site_shell.mjs", "tests/test_curvature_export.mjs", "tests/test_dependency_viewer.mjs", "tests/test_explore_models.mjs", "tests/test_figure_png.mjs", "tests/test_library_discovery.mjs", "tests/test_library_source_search.mjs", "tests/test_measurement_model.mjs", "tests/test_museum_conditionals.mjs", "tests/test_museum_conditionals_cli.mjs", "tests/test_museum_conditionals_paths.mjs", "tests/test_museum_conditionals_startup.mjs", "tests/test_museum_frontend.mjs", "tests/test_museum_geometry.mjs", "tests/test_museum_identity.mjs", "tests/test_node_status_atlas.mjs", "tests/test_palette_export.mjs", "tests/test_pin_export.mjs", "tests/test_public_shop_app.mjs", "tests/test_public_shop_frontend.mjs", "tests/test_reader_experience.mjs", "tests/test_reader_jump.mjs", "tests/test_reader_navigation.mjs", "tests/test_reading_list_citation.mjs", "tests/test_research_desk.mjs", "tests/test_snapshot_compare.mjs", "tests/test_source_quote.mjs", "tests/test_source_reference.mjs", "tests/test_teaching_export.mjs", "tests/test_workspace_navigation.mjs"], "final_cbz_certification": false, "finished_utc": "2026-10-29T20:56:00.125909+00:00", "fixture_environment": {"MUSEUM_FIXTURE": "/home/runner/work/_temp/cbz-node-result/museum/verified-inputs.json", "SHOP_MATH_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/Math-", "SHOP_QUERY_FIXTURE": "/home/runner/work/_temp/cbz-node-result/shop/query-"}, "fixture_files": 39, "fixture_tree_sha256": "0a025b15b8e71c3e038188d0270b57f4b504266324a91c1f1363a2df0a0192be", "fixtures": [{"bytes": 1090, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 10272, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18262, "commit": "9d7b6802424fb4715b31999066aafca8ee2f3cca", "path": "imports/hardening_ebedb780/MANIFEST.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "fa7f33839924d340cc1123fe05276f681e6aa12193c68b2d1aa6ab489150d8e3"}, {"bytes": 4623, "commit": "c88768bb11efd1f7d6bda188f13064bedec54a06", "path": "portable/CANDIDATE_DOWNSTREAM_GATE_STUBS.json", "repository": "d6g8k5htny-coder/query-", "sha256": "4046357b30c56e911a8aea14515611201d4dbe3f7b9f16b99b61d4e10fccf828"}, {"bytes": 17734, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a"}, {"bytes": 10272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769"}, {"bytes": 18355, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/remote_window_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7"}, {"bytes": 16948, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_annulus_bridge_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05"}, {"bytes": 17646, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/FIXED_ANNULUS_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "1fd9fe7141e464fd1c09ebf0318d8a701729c9c61ea24f73f7e20a9cf10c552b"}, {"bytes": 15902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/rn_thin_tube_20260925/TWO_SCALE_ADDENDUM.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "079f9399aef401d58749b3684f3acbb7f49ffdcbcac9f501b79e06c28a7f4e7d"}, {"bytes": 10858, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/axial_density_20260925/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "8b9376a69fda9f0f231d9502be839ae45d8006d1891ff3e700fa521cc96f6cb4"}, {"bytes": 9902, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/downstream_boundary_20260925/TRANSVERSE_BOUND_CANDIDATE.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f64c954245f17bcbc64a5ccf58a60689cf2a2fd85362f8321c0f64ff66584e36"}, {"bytes": 3272, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/collision_mechanism_20260925/CUMULATIVE_TRANSFER_CORRECTION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "83f653393dc6245980f6848e2bfc65ac9ad4c7d8304b028b88764356fd3825b6"}, {"bytes": 2266, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b"}, {"bytes": 11352, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "frontiers/full_price_20260924/PROOF.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9"}, {"bytes": 12708, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "PROOF_INDEX.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "f9c4db77aeab1c61d2a0c02f88a964cbfc6be63d18619acf0e047c884e0c0249"}, {"bytes": 16417, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "claims/LANDING_CLAIMS.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "c6fb2fa2bda1fdae9eeaaaf13008497921537b77aa4d4537aec30c9b961b989e"}, {"bytes": 11331, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/hardening_ebedb780/EC-014/proof.md.export.txt", "repository": "d6g8k5htny-coder/Math-", "sha256": "c5e64b9ba3a906535f1ae58a161d594a427371599c102ae4a68849b087a2f62c"}, {"bytes": 1090, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "coefficients/side24_v1/ENCLOSURE.json", "repository": "d6g8k5htny-coder/Math-", "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811"}, {"bytes": 15925, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f"}, {"bytes": 12741, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr22_fixed_annulus_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "29a0c6d00ce739baf1d29a3163977d8e707e2079e216fba4fee3669cebec127d"}, {"bytes": 10073, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/TWO_SCALE_REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "04cf4c986f29ac7ac33b3cc87feac23f3cf494e0c1b3bf4476e4e6666de46574"}, {"bytes": 15615, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/replacement_20260925_pr19_pr21/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "7ff9e4a028f24afc731200b14bc5b993c0a874906cf6ea25e8c890afed8cdc53"}, {"bytes": 12510, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/pr16_fixed_transverse_nonauthor_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "20d6451412f304a20f70e0bc6aabb87bdd0bb9761b17834469d60867407ebd9c"}, {"bytes": 3723, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/d2_cumulative_correction_20260925/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "910d371ebb4a310a7e2248348ba8cd09d6f3229740525d74ec7d06d8d1470717"}, {"bytes": 15569, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "reviews/p15_full_price_nonauthor_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "691ea0db5c0f073326c9f7208c9804c6f5d0daf92ba7467529c9d57e08b15eb7"}, {"bytes": 7655, "commit": "f2e432ea5c86742e480c66624775bc9103343314", "path": "STATUS.md", "repository": "d6g8k5htny-coder/main", "sha256": "039d4fea921a5e9602340ab8580404ef709588ca72f45c52f865f4644da51da3"}, {"bytes": 25057, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "reviews/sard_g_successor_a1_a6_20260926/REVIEW.md", "repository": "d6g8k5htny-coder/main", "sha256": "894d27c0de6dd4312ea5109ac2480a68cb1b5ded0b4a60749d4edee2288fb537"}, {"bytes": 673, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "6087bfe1ccc12bd52ebb169d00975ce44e846d611f0628333a0dbd71a4448176"}, {"bytes": 362, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "813bcf5d81e1d5d52d37c112df23716701809f03e7b55939a2afb2e8e57741be"}, {"bytes": 61961, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "docs/notebooks/SIDE24_PUBLIC_COEFFICIENTS.ipynb", "repository": "d6g8k5htny-coder/main", "sha256": "e348db8e9d667caff2a8da1d85ffd5ad599db34b34e542d9662d0bc1edc84024"}, {"bytes": 1118, "commit": "71400b94f6cb354a8cf7aba73ffede2138a64efa", "path": "incoming/side24-identity-replay-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "fa40a6b8afc413646081145d6d5d7b01cc4b5b4ddec32f4c6e82caa399e38cd8"}, {"bytes": 40261, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7"}, {"bytes": 10221, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/RESULT.md", "repository": "d6g8k5htny-coder/main", "sha256": "3be14ca5013164e461a2bc72c317fd3694f94783826d4e5d8524d31133574502"}, {"bytes": 1471, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/IDENTITY.json", "repository": "d6g8k5htny-coder/main", "sha256": "b74bc2e52c065022a616823bd488827911bb4f116fe891b0f6efdd8a8d09147b"}, {"bytes": 1724, "commit": "a12c178c0f857a130cf434e9efd44233a038195b", "path": "incoming/side24-chart-claude-20260926/output.json", "repository": "d6g8k5htny-coder/main", "sha256": "478fb7620ea5947855006ab7af448010fdd5cc31581407b1f86d4b87ce5de2eb"}, {"bytes": 23312, "commit": "82247833b5dd58e04291d55353b52938d73ec614", "path": "reviews/d1_chain_reconciliation_20260928/RECONCILIATION.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "451b9d7ffee072a73fc904cab891b6693e3f233808b89df10cce1b57036b65da"}, {"bytes": 6023, "commit": "d6628da09384728992dcbe6e921cc28ba85aebb0", "path": "README.md", "repository": "d6g8k5htny-coder/Math-", "sha256": "89d4c618ad4560373f8fba3c787522cea8f0191fd8e176f3e0741c6230390730"}], "log_sha256": "c6f1504171037cdadffdf0532cb54630742de5d6e851c254ce57e2a90f828a41", "mathematical_certification": false, "node_exit": 0, "node_version": "v22.23.4", "runtime": {"implementation": "cpython", "machine": "aarch64", "platform": "linux", "python": "3.11.17 (main, Oct 1 2026, 14:33:38) [GCC 13.3.0]"}, "schema": "cbz.node-regression.v1", "source_after": "92f974eb9d5a044338d04d26c250a4bcfbae105c", "source_before": "92f974eb9d5a044338d04d26c250a4bcfbae105c", "started_utc": "2026-10-29T20:55:53.900553+00:00", "status": "PASS", "summary": {"cancelled": 0, "fail": 0, "pass": 764, "skipped": 0, "tests": 764, "todo": 0}} +2026-10-29T20:56:00.1838432Z CBZ_NODE_TRANSPORT_ADVERSE_PASS +2026-10-29T20:56:00.1838743Z CBZ_NODE_TAP_TOTAL 41 +2026-10-29T20:56:00.1839069Z CBZ_NODE_TAP_GIT_BLOB 2701499f8d0a13916869dad460daf9daa91ce4e1 +2026-10-29T20:56:00.1852872Z CBZ_NODE_TAP_JSON 0 "TAP version 13\n# Subtest: tests/fixtures/museum_fixture.mjs\nok 1 - tests/fixtures/museum_fixture.mjs\n ---\n duration_ms: 32.933529\n type: 'test'\n ...\n# Subtest: only the current query is announced after 500ms of quiet, even if its count repeats\nok 2 - only the current query is announced after 500ms of quiet, even if its count repeats\n ---\n duration_ms: 2.890509\n type: 'test'\n ...\n# Subtest: hidden documents and page-cache transitions cancel pending speech and resume current results\nok 3 - hidden documents and page-cache transitions cancel pending speech and resume current results\n ---\n duration_ms: 0.803993\n type: 'test'\n ...\n# Subtest: Exact admitted claim/source identity exposes only the pinned arithmetic companion\nok 4 - Exact admitted claim/source identity exposes only the pinned arithmetic companion\n ---\n duration_ms: 2.959954\n type: 'test'\n ...\n# Subtest: Source-identical documents at another recorded revision retain their actual current pin\nok 5 - Source-identical documents at another recorded revision retain their actual current pin\n ---\n duration_ms: 1.248068\n type: 'test'\n ...\n# Subtest: changed scope leaves the mapping unavailable\nok 6 - changed scope leaves the mapping unavailable\n ---\n duration_ms: 0.614323\n type: 'test'\n ...\n# Subtest: extra graph field leaves the mapping unavailable\nok 7 - extra graph field leaves the mapping unavailable\n ---\n duration_ms: 0.648297\n type: 'test'\n ...\n# Subtest: changed source blob leaves the mapping unavailable\nok 8 - changed source blob leaves the mapping unavailable\n ---\n duration_ms: 1.914588\n type: 'test'\n ...\n# Subtest: changed source size leaves the mapping unavailable\nok 9 - changed source size leaves the mapping unavailable\n ---\n duration_ms: 0.644225\n type: 'test'\n ...\n# Subtest: changed fingerprint leaves the mapping unavailable\nok 10 - changed fingerprint leaves the mapping unavailable\n ---\n duration_ms: 0.67328\n type: 'test'\n ...\n# Subtest: missing source leaves the mapping unavailable\nok 11 - missing source leaves the mapping unavailable\n ---\n duration_ms: 0.565389\n type: 'test'\n ...\n# Subtest: changed formal manifest leaves the mapping unavailable\nok 12 - changed formal manifest leaves the mapping unavailable\n ---\n duration_ms: 1.105907\n type: 'test'\n ...\n# Subtest: An equal-looking different node ID is never inferred to be covered\nok 13 - An equal-looking different node ID is never inferred to be covered\n ---\n duration_ms: 0.90006\n type: 'test'\n ...\n# Subtest: Other actual claims keep missing mappings explicit\nok 14 - Other actual claims keep missing mappings explicit\n ---\n duration_ms: 0.486808\n type: 'test'\n ...\n# Subtest: The actual older committed observation has a different manifest and remains unmapped\nok 15 - The actual older committed observation has a different manifest and remains unmapped\n ---\n duration_ms: 4.930724\n type: 'test'\n ...\n# Subtest: An execution for another revision cannot attach to the artifact\nok 16 - An execution for another revision cannot attach to the artifact\n ---\n duration_ms: 0.800778\n type: 'test'\n ...\n# Subtest: A fabricated accepted alignment cannot replace the pinned adverse record\nok 17 - A fabricated accepted alignment cannot replace the pinned adverse record\n ---\n duration_ms: 0.653113\n type: 'test'\n ...\n# Subtest: Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\nok 18 - Explicit current-manifest bridge exposes the historical artifact without rebinding its execution or review\n ---\n duration_ms: 3.773275\n type: 'test'\n ...\n# Subtest: an unknown manifest cannot use the explicit bridge\nok 19 - an unknown manifest cannot use the explicit bridge\n ---\n duration_ms: 1.141121\n type: 'test'\n ...\n# Subtest: a wrong manifest size cannot use the explicit bridge\nok 20 - a wrong manifest size cannot use the explicit bridge\n ---\n duration_ms: 0.630697\n type: 'test'\n ...\n# Subtest: duplicate formal inventory cannot use the explicit bridge\nok 21 - duplicate formal inventory cannot use the explicit bri" +2026-10-29T20:56:00.1879615Z CBZ_NODE_TAP_JSON 1 "dge\n ---\n duration_ms: 0.639593\n type: 'test'\n ...\n# Subtest: changed claim scope cannot use the explicit bridge\nok 22 - changed claim scope cannot use the explicit bridge\n ---\n duration_ms: 1.391469\n type: 'test'\n ...\n# Subtest: an extra claim coverage field cannot use the explicit bridge\nok 23 - an extra claim coverage field cannot use the explicit bridge\n ---\n duration_ms: 0.576909\n type: 'test'\n ...\n# Subtest: another declaration cannot replace the pinned evidence\nok 24 - another declaration cannot replace the pinned evidence\n ---\n duration_ms: 0.869006\n type: 'test'\n ...\n# Subtest: a forged receipt with the same commit cannot replace the pinned evidence\nok 25 - a forged receipt with the same commit cannot replace the pinned evidence\n ---\n duration_ms: 0.637097\n type: 'test'\n ...\n# Subtest: a fabricated accepted review cannot replace the pinned evidence\nok 26 - a fabricated accepted review cannot replace the pinned evidence\n ---\n duration_ms: 1.176031\n type: 'test'\n ...\n# Subtest: An equally named different claim and prototype key remain unmapped\nok 27 - An equally named different claim and prototype key remain unmapped\n ---\n duration_ms: 0.909276\n type: 'test'\n ...\n# Subtest: The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\nok 28 - The separately pinned corrected manifest links only to historical execution, never to a transferred alignment\n ---\n duration_ms: 0.930787\n type: 'test'\n ...\n# Subtest: original refuses identical duplicate proof-source entries\nok 29 - original refuses identical duplicate proof-source entries\n ---\n duration_ms: 1.079397\n type: 'test'\n ...\n# Subtest: original refuses conflicting duplicate proof-source entries\nok 30 - original refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 1.45165\n type: 'test'\n ...\n# Subtest: 8228 refuses identical duplicate proof-source entries\nok 31 - 8228 refuses identical duplicate proof-source entries\n ---\n duration_ms: 3.906012\n type: 'test'\n ...\n# Subtest: 8228 refuses conflicting duplicate proof-source entries\nok 32 - 8228 refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.880381\n type: 'test'\n ...\n# Subtest: a22f refuses identical duplicate proof-source entries\nok 33 - a22f refuses identical duplicate proof-source entries\n ---\n duration_ms: 0.840111\n type: 'test'\n ...\n# Subtest: a22f refuses conflicting duplicate proof-source entries\nok 34 - a22f refuses conflicting duplicate proof-source entries\n ---\n duration_ms: 0.853207\n type: 'test'\n ...\n# Subtest: Atlas begins with its task and working search before the source inventory\nok 35 - Atlas begins with its task and working search before the source inventory\n ---\n duration_ms: 2.404677\n type: 'test'\n ...\n# Subtest: The selector is the sole view switch while controller compatibility stays present\nok 36 - The selector is the sole view switch while controller compatibility stays present\n ---\n duration_ms: 0.38007\n type: 'test'\n ...\n# Subtest: Secondary navigation is disclosed and graph-specific tools have a separate scope\nok 37 - Secondary navigation is disclosed and graph-specific tools have a separate scope\n ---\n duration_ms: 0.359343\n type: 'test'\n ...\n# Subtest: Neighborhood coverage stays available without delaying the useful graph or list\nok 38 - Neighborhood coverage stays available without delaying the useful graph or list\n ---\n duration_ms: 0.33032\n type: 'test'\n ...\n# Subtest: The historical viewer is explicitly archived with preserved entry fragments\nok 39 - The historical viewer is explicitly archived with preserved entry fragments\n ---\n duration_ms: 0.369158\n type: 'test'\n ...\n# Subtest: A closed historical archive cannot conceal a failed source or refused bookmark\nok 40 - A closed historical archive cannot conceal a failed source or refused bookmark\n ---\n duration_ms: 0.203054\n type: 'test'\n ...\n# Subtest: Sharing the selected source snapshot remains a visible reading action\nok 41 - Sharing the selected source snapshot remain" +2026-10-29T20:56:00.1906132Z CBZ_NODE_TAP_JSON 2 "s a visible reading action\n ---\n duration_ms: 0.136954\n type: 'test'\n ...\n# Subtest: Atlas layout loads after current styles without replacing the shared brand\nok 42 - Atlas layout loads after current styles without replacing the shared brand\n ---\n duration_ms: 0.217622\n type: 'test'\n ...\n# Subtest: dependency and dependent cards preserve parallel typed source edges in their actual direction\nok 43 - dependency and dependent cards preserve parallel typed source edges in their actual direction\n ---\n duration_ms: 1.498864\n type: 'test'\n ...\n# Subtest: an admitted isolated node has two explicit empty groups\nok 44 - an admitted isolated node has two explicit empty groups\n ---\n duration_ms: 0.294017\n type: 'test'\n ...\n# Subtest: missing and prototype names cannot acquire inferred connections\nok 45 - missing and prototype names cannot acquire inferred connections\n ---\n duration_ms: 0.167432\n type: 'test'\n ...\n# Subtest: late optional data patches the currently selected node rather than its request-time selection\nok 46 - late optional data patches the currently selected node rather than its request-time selection\n ---\n duration_ms: 2.100675\n type: 'test'\n ...\n# Subtest: an older optional response cannot overwrite the newer acquisition even when it ignores abort\nok 47 - an older optional response cannot overwrite the newer acquisition even when it ignores abort\n ---\n duration_ms: 0.834056\n type: 'test'\n ...\n# Subtest: focused operational evidence is retained until focus leaves its section\nok 48 - focused operational evidence is retained until focus leaves its section\n ---\n duration_ms: 1.121714\n type: 'test'\n ...\n# Subtest: a refused or no-longer-known selection receives no late substituted resume\nok 49 - a refused or no-longer-known selection receives no late substituted resume\n ---\n duration_ms: 1.317496\n type: 'test'\n ...\n# Subtest: pagehide aborts the request and suppresses an uncooperative late response\nok 50 - pagehide aborts the request and suppresses an uncooperative late response\n ---\n duration_ms: 1.098523\n type: 'test'\n ...\n# Subtest: a persisted pageshow acquires current optional records once and preserves null fallback\nok 51 - a persisted pageshow acquires current optional records once and preserves null fallback\n ---\n duration_ms: 1.095915\n type: 'test'\n ...\n# Subtest: missing cancellation platform does not prevent primary reading or late status coordination\nok 52 - missing cancellation platform does not prevent primary reading or late status coordination\n ---\n duration_ms: 2.066709\n type: 'test'\n ...\n# Subtest: spatial projection keeps directed typed recorded edges and never mutates evidence\nok 53 - spatial projection keeps directed typed recorded edges and never mutates evidence\n ---\n duration_ms: 1.792714\n type: 'test'\n ...\n# Subtest: dependency focus retains only selected dependent and its recorded direct dependencies\nok 54 - dependency focus retains only selected dependent and its recorded direct dependencies\n ---\n duration_ms: 0.527511\n type: 'test'\n ...\n# Subtest: empty/filtered selection and ceiling never invent source nodes\nok 55 - empty/filtered selection and ceiling never invent source nodes\n ---\n duration_ms: 1.926836\n type: 'test'\n ...\n# Subtest: actual wrapped label sizes stay inside the viewport and do not overlap\nok 56 - actual wrapped label sizes stay inside the viewport and do not overlap\n ---\n duration_ms: 1.473025\n type: 'test'\n ...\n# Subtest: selected claim takes priority over nearer coincident nodes without changing identifiers\nok 57 - selected claim takes priority over nearer coincident nodes without changing identifiers\n ---\n duration_ms: 0.363367\n type: 'test'\n ...\n# Subtest: labels leave a distinct unselected node clear for actual canvas picking\nok 58 - labels leave a distinct unselected node clear for actual canvas picking\n ---\n duration_ms: 1.473921\n type: 'test'\n ...\n# Subtest: camera-depth order and identifier ties are deterministic and inputs remain unchanged\nok 59 - camera-depth order and identifier ties are deter" +2026-10-29T20:56:00.1932663Z CBZ_NODE_TAP_JSON 3 "ministic and inputs remain unchanged\n ---\n duration_ms: 1.141761\n type: 'test'\n ...\n# Subtest: empty/tiny viewports and invalid or clipped points never create invalid rectangles\nok 60 - empty/tiny viewports and invalid or clipped points never create invalid rectangles\n ---\n duration_ms: 0.376806\n type: 'test'\n ...\n# Subtest: edge anchors retain an in-bounds readable label when space permits\nok 61 - edge anchors retain an in-bounds readable label when space permits\n ---\n duration_ms: 0.255163\n type: 'test'\n ...\n# Subtest: a150-node dense projection keeps a selected ID readable without pretending every label fits\nok 62 - a150-node dense projection keeps a selected ID readable without pretending every label fits\n ---\n duration_ms: 3.826464\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 63 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.976241\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 64 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 2.390525\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 65 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.355039\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 66 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 6.732637\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 67 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.854703\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 68 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.87463\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 69 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 1.068517\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 70 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.761699\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 71 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.339576\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 72 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.010159\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 73 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.146121\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 74 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.16132\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 75 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 12.867598\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 76 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 8.933554\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 77 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 108.080766\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 78 - typing preserves unrelated parameters, fragment and history state;" +2026-10-29T20:56:00.1959065Z CBZ_NODE_TAP_JSON 4 " share link only includes filters\n ---\n duration_ms: 70.62771\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 79 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 55.089425\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 80 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 43.221443\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 81 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 27.439609\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 82 - encoded punctuation stays inert search text\n ---\n duration_ms: 28.363877\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 83 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 43.155814\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 84 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 5.853246\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 85 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 29.713524\n type: 'test'\n ...\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 86 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 21.827727\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 87 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 30.635407\n type: 'test'\n ...\n# Subtest: verified category counts expose content and references directly without changing the source selection\nok 88 - verified category counts expose content and references directly without changing the source selection\n ---\n duration_ms: 21.664423\n type: 'test'\n ...\n# Subtest: changing categories resets both pagers and retains native selector focus\nok 89 - changing categories resets both pagers and retains native selector focus\n ---\n duration_ms: 9.989032\n type: 'test'\n ...\n# Subtest: All preserves ordered overlapping categories and complete edge multiplicity\nok 90 - All preserves ordered overlapping categories and complete edge multiplicity\n ---\n duration_ms: 12.925554\n type: 'test'\n ...\n# Subtest: an empty category reports zero results with both pagers hidden\nok 91 - an empty category reports zero results with both pagers hidden\n ---\n duration_ms: 7.262547\n type: 'test'\n ...\n# Subtest: selection changes clear category state and ignore an older in-flight comparison\nok 92 - selection changes clear category state and ignore an older in-flight comparison\n ---\n duration_ms: 8.762563\n type: 'test'\n ...\n# Subtest: payload refusal and malformed history discard category results and announcements\nok 93 - payload refusal and malformed history discard category results and announcements\n ---\n duration_ms: 10.837271\n type: 'test'\n ...\n# Subtest: Compare source panel demand loader exists\nok 94 - Compare source panel demand loader exists\n ---\n duration_ms: 0.875118\n type: 'test'\n ...\n# Subtest: An explicit current-source query requests even the empty source search\nok 95 - An explicit current-source query requests even the empty source search\n ---\n duration_ms: 1.268739\n type: 'test'\n ...\n# Subtest: Only a target in the actual source panel requests its verifier\nok 96 - Only a target in the actual source panel requests its verifier\n ---\n duration_ms: 0.782026\n type: 'test'\n ...\n# Subtest: Both pagers use distinct identities and ordinary, non-live count spans\nok 97 - Both pagers us" +2026-10-29T20:56:00.1985357Z CBZ_NODE_TAP_JSON 5 "e distinct identities and ordinary, non-live count spans\n ---\n duration_ms: 7.141681\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 98 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 16.551029\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 99 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 2.101835\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 100 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 1.511127\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 101 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 2.2535\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 102 - acquisition: identical inventory duplicate\n ---\n duration_ms: 1.766443\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 103 - acquisition: conflicting inventory duplicate\n ---\n duration_ms: 1.013503\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 104 - acquisition: graph blob conflict\n ---\n duration_ms: 1.527366\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 105 - acquisition: graph bytes conflict\n ---\n duration_ms: 1.816065\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 106 - acquisition: graph missing exact inventory\n ---\n duration_ms: 2.910436\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 107 - acquisition: graph incorrect pin\n ---\n duration_ms: 1.653048\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 108 - acquisition: reference blob conflict\n ---\n duration_ms: 0.908276\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 109 - acquisition: reference bytes conflict\n ---\n duration_ms: 1.98604\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 110 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.917124\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 111 - acquisition: reference incorrect pin\n ---\n duration_ms: 1.176928\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 112 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.758043\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 113 - acquisition: graph reference overlap\n ---\n duration_ms: 0.888133\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 114 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.732861\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 115 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.635305\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 116 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.951083\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 117 - acquisition: excerpt duplicate span\n ---\n duration_ms: 1.476385\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 118 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 3.566997\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 119 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 3.197591\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 120 - acquisition: excerpt boolean line\n ---\n duration_ms: 1.189279\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 121 - acquisition: excerpt empty id\n ---\n duration_ms: 0.55507\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 122 - acquisition: excerpt invalid range" +2026-10-29T20:56:00.2011799Z CBZ_NODE_TAP_JSON 6 "\n ---\n duration_ms: 1.20119\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 123 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.529838\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 124 - acquisition: malformed references collection\n ---\n duration_ms: 0.642913\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 125 - acquisition: malformed equations collection\n ---\n duration_ms: 0.157896\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 126 - acquisition: malformed sources collection\n ---\n duration_ms: 0.79101\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 127 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 1.931667\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 128 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 4.215198\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 129 - acquisition: graph points at Main\n ---\n duration_ms: 1.262355\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 130 - acquisition: invalid inventory repository\n ---\n duration_ms: 5.282714\n type: 'test'\n ...\n# Subtest: acquisition: independent errors sorted deduplicated\nok 131 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 2.769618\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 132 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 3.435515\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 133 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.838064\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 134 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 1.771187\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 135 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 1.07874\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 136 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 1.001544\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 137 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 1.130634\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 138 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 1.571621\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 139 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 1.326064\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 140 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 3.665679\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 141 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.99784\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 142 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 3.134697\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 143 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 10.731876\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 144 - mixed publication recovers once at the page digest while retaining the same abort sig" +2026-10-29T20:56:00.2154302Z CBZ_NODE_TAP_JSON 7 "nal\n ---\n duration_ms: 3.034559\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 145 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 3.828152\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 146 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 4.16452\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 147 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.757427\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 148 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.298586\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 149 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 4.566309\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 150 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 1.340328\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 151 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 1.001312\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 152 - aborted acquisition makes no recovery request\n ---\n duration_ms: 1.331176\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can construct an injected URL\nok 153 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.70771\n type: 'test'\n ...\n# Subtest: coherent canonical response needs one request and preserves the advertised observation\nok 154 - coherent canonical response needs one request and preserves the advertised observation\n ---\n duration_ms: 16.958545\n type: 'test'\n ...\n# Subtest: mixed publication recovers once at the page digest while retaining the same abort signal\nok 155 - mixed publication recovers once at the page digest while retaining the same abort signal\n ---\n duration_ms: 2.786754\n type: 'test'\n ...\n# Subtest: persistent digest mismatch refuses after two requests and never admits the old observation\nok 156 - persistent digest mismatch refuses after two requests and never admits the old observation\n ---\n duration_ms: 15.309969\n type: 'test'\n ...\n# Subtest: byte-count mismatch may recover but the recovery bytes are checked as strictly\nok 157 - byte-count mismatch may recover but the recovery bytes are checked as strictly\n ---\n duration_ms: 4.282722\n type: 'test'\n ...\n# Subtest: HTTP refusal is not retried as an integrity mismatch\nok 158 - HTTP refusal is not retried as an integrity mismatch\n ---\n duration_ms: 0.646521\n type: 'test'\n ...\n# Subtest: network failure is not retried and does not replace source identity\nok 159 - network failure is not retried and does not replace source identity\n ---\n duration_ms: 0.346919\n type: 'test'\n ...\n# Subtest: invalid schema with a correct digest is refused without a recovery request\nok 160 - invalid schema with a correct digest is refused without a recovery request\n ---\n duration_ms: 2.127258\n type: 'test'\n ...\n# Subtest: fallback HTTP refusal remains unavailable\nok 161 - fallback HTTP refusal remains unavailable\n ---\n duration_ms: 2.680591\n type: 'test'\n ...\n# Subtest: absence of digest verification cannot trigger an unverified fallback\nok 162 - absence of digest verification cannot trigger an unverified fallback\n ---\n duration_ms: 0.905188\n type: 'test'\n ...\n# Subtest: aborted acquisition makes no recovery request\nok 163 - aborted acquisition makes no recovery request\n ---\n duration_ms: 0.885486\n type: 'test'\n ...\n# Subtest: invalid advertised identity is rejected before a request can co" +2026-10-29T20:56:00.2180467Z CBZ_NODE_TAP_JSON 8 "nstruct an injected URL\nok 164 - invalid advertised identity is rejected before a request can construct an injected URL\n ---\n duration_ms: 0.625354\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 165 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 0.802961\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 166 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.323688\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 167 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.239589\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 168 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.555134\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 169 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.493664\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 170 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.210526\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 171 - only exact public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.288291\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 172 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.148392\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 173 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 0.645097\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 174 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 119.935092\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 175 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 0.353655\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 176 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 2.522751\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 177 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 1.413972\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 178 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.685575\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 179 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.440642\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 180 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.500824\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 181 - restoring absent or unknown panel values returns to browse without rewriti" +2026-10-29T20:56:00.2206596Z CBZ_NODE_TAP_JSON 9 "ng the address\n ---\n duration_ms: 0.321209\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 182 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 0.905028\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 183 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.628505\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 184 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 0.480385\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 185 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.490561\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 186 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.30069\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 187 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.445682\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 188 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.289258\n type: 'test'\n ...\n# Subtest: widening the viewport moves focus off mobile-only reader and browse controls\nok 189 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.659888\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 190 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.435859\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 191 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.668304\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 192 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.408948\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 193 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 0.84492\n type: 'test'\n ...\n# Subtest: acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\nok 194 - acquisition: four owner cases: metadata, multiple excerpts, exact graph/reference, unresolved directory node\n ---\n duration_ms: 8.54127\n type: 'test'\n ...\n# Subtest: acquisition: new observation keeps older classification source unchanged\nok 195 - acquisition: new observation keeps older classification source unchanged\n ---\n duration_ms: 1.284202\n type: 'test'\n ...\n# Subtest: acquisition: same path in other allowed repository stays metadata\nok 196 - acquisition: same path in other allowed repository stays metadata\n ---\n duration_ms: 0.801393\n type: 'test'\n ...\n# Subtest: acquisition: whole-file reference and excerpt identities remain separate\nok 197 - acquisition: whole-file reference and excerpt identities remain separate\n ---\n duration_ms: 1.092771\n type: 'test'\n ...\n# Subtest: acquisition: identical inventory duplicate\nok 198 - acquisition: identical inventory duplicate\n ---\n duration_ms: 0.821993\n type: 'test'\n ...\n# Subtest: acquisition: conflicting inventory duplicate\nok 199 - acquisition: conflicting inventory duplicate\n ---\n duration_ms:" +2026-10-29T20:56:00.2232632Z CBZ_NODE_TAP_JSON 10 " 0.715022\n type: 'test'\n ...\n# Subtest: acquisition: graph blob conflict\nok 200 - acquisition: graph blob conflict\n ---\n duration_ms: 0.717549\n type: 'test'\n ...\n# Subtest: acquisition: graph bytes conflict\nok 201 - acquisition: graph bytes conflict\n ---\n duration_ms: 0.708222\n type: 'test'\n ...\n# Subtest: acquisition: graph missing exact inventory\nok 202 - acquisition: graph missing exact inventory\n ---\n duration_ms: 0.849599\n type: 'test'\n ...\n# Subtest: acquisition: graph incorrect pin\nok 203 - acquisition: graph incorrect pin\n ---\n duration_ms: 0.729301\n type: 'test'\n ...\n# Subtest: acquisition: reference blob conflict\nok 204 - acquisition: reference blob conflict\n ---\n duration_ms: 0.739972\n type: 'test'\n ...\n# Subtest: acquisition: reference bytes conflict\nok 205 - acquisition: reference bytes conflict\n ---\n duration_ms: 0.66436\n type: 'test'\n ...\n# Subtest: acquisition: reference missing exact inventory\nok 206 - acquisition: reference missing exact inventory\n ---\n duration_ms: 0.849647\n type: 'test'\n ...\n# Subtest: acquisition: reference incorrect pin\nok 207 - acquisition: reference incorrect pin\n ---\n duration_ms: 0.61577\n type: 'test'\n ...\n# Subtest: acquisition: duplicate reference acquisition\nok 208 - acquisition: duplicate reference acquisition\n ---\n duration_ms: 0.687543\n type: 'test'\n ...\n# Subtest: acquisition: graph reference overlap\nok 209 - acquisition: graph reference overlap\n ---\n duration_ms: 0.622538\n type: 'test'\n ...\n# Subtest: acquisition: excerpt missing exact row despite same path in Math\nok 210 - acquisition: excerpt missing exact row despite same path in Math\n ---\n duration_ms: 0.673816\n type: 'test'\n ...\n# Subtest: acquisition: excerpt incorrect pin\nok 211 - acquisition: excerpt incorrect pin\n ---\n duration_ms: 0.448395\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate id\nok 212 - acquisition: excerpt duplicate id\n ---\n duration_ms: 0.720582\n type: 'test'\n ...\n# Subtest: acquisition: excerpt duplicate span\nok 213 - acquisition: excerpt duplicate span\n ---\n duration_ms: 0.7671\n type: 'test'\n ...\n# Subtest: acquisition: excerpt digest mismatch\nok 214 - acquisition: excerpt digest mismatch\n ---\n duration_ms: 0.657888\n type: 'test'\n ...\n# Subtest: acquisition: excerpt lone surrogate\nok 215 - acquisition: excerpt lone surrogate\n ---\n duration_ms: 0.527471\n type: 'test'\n ...\n# Subtest: acquisition: excerpt boolean line\nok 216 - acquisition: excerpt boolean line\n ---\n duration_ms: 0.551949\n type: 'test'\n ...\n# Subtest: acquisition: excerpt empty id\nok 217 - acquisition: excerpt empty id\n ---\n duration_ms: 0.579893\n type: 'test'\n ...\n# Subtest: acquisition: excerpt invalid range\nok 218 - acquisition: excerpt invalid range\n ---\n duration_ms: 1.707398\n type: 'test'\n ...\n# Subtest: acquisition: excerpt unsafe path\nok 219 - acquisition: excerpt unsafe path\n ---\n duration_ms: 0.617571\n type: 'test'\n ...\n# Subtest: acquisition: malformed references collection\nok 220 - acquisition: malformed references collection\n ---\n duration_ms: 0.685055\n type: 'test'\n ...\n# Subtest: acquisition: malformed equations collection\nok 221 - acquisition: malformed equations collection\n ---\n duration_ms: 0.191911\n type: 'test'\n ...\n# Subtest: acquisition: malformed sources collection\nok 222 - acquisition: malformed sources collection\n ---\n duration_ms: 3.591875\n type: 'test'\n ...\n# Subtest: acquisition: invalid boolean inventory bytes\nok 223 - acquisition: invalid boolean inventory bytes\n ---\n duration_ms: 1.062293\n type: 'test'\n ...\n# Subtest: acquisition: inventory bytes exceed admitted bound\nok 224 - acquisition: inventory bytes exceed admitted bound\n ---\n duration_ms: 1.649937\n type: 'test'\n ...\n# Subtest: acquisition: graph points at Main\nok 225 - acquisition: graph points at Main\n ---\n duration_ms: 0.865799\n type: 'test'\n ...\n# Subtest: acquisition: invalid inventory repository\nok 226 - acquisition: invalid inventory repository\n ---\n duration_ms: 0.769395\n type: 'test'\n ...\n# Subtest: acquisition: inde" +2026-10-29T20:56:00.2258769Z CBZ_NODE_TAP_JSON 11 "pendent errors sorted deduplicated\nok 227 - acquisition: independent errors sorted deduplicated\n ---\n duration_ms: 2.159192\n type: 'test'\n ...\n# Subtest: acquisition: non-string inventory repository is unavailable not an exception\nok 228 - acquisition: non-string inventory repository is unavailable not an exception\n ---\n duration_ms: 0.594156\n type: 'test'\n ...\n# Subtest: acquisition: non-string reference repository is unavailable not an exception\nok 229 - acquisition: non-string reference repository is unavailable not an exception\n ---\n duration_ms: 0.550998\n type: 'test'\n ...\n# Subtest: acquisition: unsafe encoded inventory path\nok 230 - acquisition: unsafe encoded inventory path\n ---\n duration_ms: 0.585004\n type: 'test'\n ...\n# Subtest: acquisition: lone surrogate inventory path\nok 231 - acquisition: lone surrogate inventory path\n ---\n duration_ms: 0.579212\n type: 'test'\n ...\n# Subtest: acquisition: excerpt line exceeds JS safe integer\nok 232 - acquisition: excerpt line exceeds JS safe integer\n ---\n duration_ms: 0.612955\n type: 'test'\n ...\n# Subtest: acquisition: overlapping distinct spans are preserved\nok 233 - acquisition: overlapping distinct spans are preserved\n ---\n duration_ms: 0.579948\n type: 'test'\n ...\n# Subtest: acquisition: integer-valued JSON byte number follows shared numeric semantics\nok 234 - acquisition: integer-valued JSON byte number follows shared numeric semantics\n ---\n duration_ms: 0.56718\n type: 'test'\n ...\n# Subtest: acquisition: well-formed Unicode path boundary counts codepoints\nok 235 - acquisition: well-formed Unicode path boundary counts codepoints\n ---\n duration_ms: 1.679127\n type: 'test'\n ...\n# Subtest: acquisition: huge JSON byte number is unavailable not an exception\nok 236 - acquisition: huge JSON byte number is unavailable not an exception\n ---\n duration_ms: 0.573573\n type: 'test'\n ...\n# Subtest: acquisition: graph identity array has malformed input disposition\nok 237 - acquisition: graph identity array has malformed input disposition\n ---\n duration_ms: 0.54643\n type: 'test'\n ...\n# Subtest: current row keeps excerpt identities separate and renders hostile source text inertly\nok 238 - current row keeps excerpt identities separate and renders hostile source text inertly\n ---\n duration_ms: 2.569316\n type: 'test'\n ...\n# Subtest: current snapshot rejects invalid identities and preserves literal source values\nok 239 - current snapshot rejects invalid identities and preserves literal source values\n ---\n duration_ms: 0.8198\n type: 'test'\n ...\n# Subtest: freshness separates future, stale and current observations\nok 240 - freshness separates future, stale and current observations\n ---\n duration_ms: 0.095092\n type: 'test'\n ...\n# Subtest: source links bind safe paths to pinned commits and reject executable targets\nok 241 - source links bind safe paths to pinned commits and reject executable targets\n ---\n duration_ms: 0.187583\n type: 'test'\n ...\n# Subtest: focus expansion deduplicates multi-parent nodes and enforces render ceiling\nok 242 - focus expansion deduplicates multi-parent nodes and enforces render ceiling\n ---\n duration_ms: 0.522415\n type: 'test'\n ...\n# Subtest: five metadata axes and explicit mapping gaps never infer kernel or review approval\nok 243 - five metadata axes and explicit mapping gaps never infer kernel or review approval\n ---\n duration_ms: 0.21175\n type: 'test'\n ...\n# Subtest: search and independent URL state preserve exact identifiers and reject unknown node\nok 244 - search and independent URL state preserve exact identifiers and reject unknown node\n ---\n duration_ms: 0.488913\n type: 'test'\n ...\n# Subtest: hash mismatch and malformed payload refuse current rendering\nok 245 - hash mismatch and malformed payload refuse current rendering\n ---\n duration_ms: 3.949083\n type: 'test'\n ...\n# Subtest: global graph search finds unloaded nodes and bounds large catalogs\nok 246 - global graph search finds unloaded nodes and bounds large catalogs\n ---\n duration_ms: 2.529615\n type: 'test'\n ...\n# Subtest: equation" +2026-10-29T20:56:00.2284780Z CBZ_NODE_TAP_JSON 12 " and graph share bookmarks refuse changed main source instead of substituting\nok 247 - equation and graph share bookmarks refuse changed main source instead of substituting\n ---\n duration_ms: 0.218174\n type: 'test'\n ...\n# Subtest: graph search filter survives source-bound URL state\nok 248 - graph search filter survives source-bound URL state\n ---\n duration_ms: 0.144537\n type: 'test'\n ...\n# Subtest: prototype property names cannot become fabricated graph nodes\nok 249 - prototype property names cannot become fabricated graph nodes\n ---\n duration_ms: 0.748564\n type: 'test'\n ...\n# Subtest: current reverse reach counts distinct nodes in a required diamond and excludes root\nok 250 - current reverse reach counts distinct nodes in a required diamond and excludes root\n ---\n duration_ms: 16.85211\n type: 'test'\n ...\n# Subtest: current required routes return one shortest route per unresolved research target\nok 251 - current required routes return one shortest route per unresolved research target\n ---\n duration_ms: 0.603435\n type: 'test'\n ...\n# Subtest: context-only unresolved targets affect all-edge reach but earn no required route\nok 252 - context-only unresolved targets affect all-edge reach but earn no required route\n ---\n duration_ms: 0.210134\n type: 'test'\n ...\n# Subtest: context shortcuts do not erase longer required routes and parallel edges count once\nok 253 - context shortcuts do not erase longer required routes and parallel edges count once\n ---\n duration_ms: 0.241068\n type: 'test'\n ...\n# Subtest: unresolved target kinds and classifications match the existing source vocabulary\nok 254 - unresolved target kinds and classifications match the existing source vocabulary\n ---\n duration_ms: 0.351039\n type: 'test'\n ...\n# Subtest: actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\nok 255 - actual graph retains the p15 boundary 1/0 and CH-LIFT 3/0 regressions\n ---\n duration_ms: 7.45245\n type: 'test'\n ...\n# Subtest: full reach and required routes do not depend on filtered or capped viewport\nok 256 - full reach and required routes do not depend on filtered or capped viewport\n ---\n duration_ms: 4.20071\n type: 'test'\n ...\n# Subtest: bounded graph windows expose complete match and frontier counts with paging\nok 257 - bounded graph windows expose complete match and frontier counts with paging\n ---\n duration_ms: 4.268258\n type: 'test'\n ...\n# Subtest: graph filters apply to complete matches without altering raw node labels or edges\nok 258 - graph filters apply to complete matches without altering raw node labels or edges\n ---\n duration_ms: 0.441227\n type: 'test'\n ...\n# Subtest: equation text filtering retains inert literal content and bounded complete counts\nok 259 - equation text filtering retains inert literal content and bounded complete counts\n ---\n duration_ms: 1.011583\n type: 'test'\n ...\n# Subtest: atlas offset equation search and exact metadata filters survive URL state\nok 260 - atlas offset equation search and exact metadata filters survive URL state\n ---\n duration_ms: 0.458666\n type: 'test'\n ...\n# Subtest: the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\nok 261 - the real admitted inspector exposes the exact source-linked arithmetic companion without parent coverage\n ---\n duration_ms: 21.290409\n type: 'test'\n ...\n# Subtest: claim summary puts exact scope and pinned source before continuation metadata\nok 262 - claim summary puts exact scope and pinned source before continuation metadata\n ---\n duration_ms: 12.80276\n type: 'test'\n ...\n# Subtest: controller owns an explicit formal gap even without the spatial rendering platform\nok 263 - controller owns an explicit formal gap even without the spatial rendering platform\n ---\n duration_ms: 8.172551\n type: 'test'\n ...\n# Subtest: same-claim layout preserves disclosures while changed and refused claims reset their projection\nok 264 - same-claim layout preserves disclosures while changed and refused claims reset their projection\n ---\n duration_ms: 13" +2026-10-29T20:56:00.2310780Z CBZ_NODE_TAP_JSON 13 ".227765\n type: 'test'\n ...\n# Subtest: missing source and scope stay explicit and recorded notes are not labelled hypotheses\nok 265 - missing source and scope stay explicit and recorded notes are not labelled hypotheses\n ---\n duration_ms: 16.990912\n type: 'test'\n ...\n# Subtest: atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\nok 266 - atlas Graph and List apply each bookmarked exact metadata filter without changing source evidence\n ---\n duration_ms: 34.82571\n type: 'test'\n ...\n# Subtest: atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\nok 267 - atlas metadata filters page the complete matching set and disclose the exact bookmark constraints\n ---\n duration_ms: 25.26185\n type: 'test'\n ...\n# Subtest: atlas filter bookmarks persist through search, node selection, reload and Back\nok 268 - atlas filter bookmarks persist through search, node selection, reload and Back\n ---\n duration_ms: 12.98484\n type: 'test'\n ...\n# Subtest: atlas refuses mismatched source bookmarks before applying metadata filters\nok 269 - atlas refuses mismatched source bookmarks before applying metadata filters\n ---\n duration_ms: 4.689471\n type: 'test'\n ...\n# Subtest: node identifiers and recorded source paths require own literal string fields\nok 270 - node identifiers and recorded source paths require own literal string fields\n ---\n duration_ms: 0.28517\n type: 'test'\n ...\n# Subtest: static reading links retain one advertised material archive among source links\nok 271 - static reading links retain one advertised material archive among source links\n ---\n duration_ms: 0.609003\n type: 'test'\n ...\n# Subtest: static reading links refuse missing ambiguous and unsafe archive addresses\nok 272 - static reading links refuse missing ambiguous and unsafe archive addresses\n ---\n duration_ms: 0.459306\n type: 'test'\n ...\n# Subtest: refused source identity survives view changes Share reload and history\nok 273 - refused source identity survives view changes Share reload and history\n ---\n duration_ms: 58.467582\n type: 'test'\n ...\n# Subtest: initial Share and every non-adopting control preserve a refused identity\nok 274 - initial Share and every non-adopting control preserve a refused identity\n ---\n duration_ms: 4.081012\n type: 'test'\n ...\n# Subtest: explicit current diagnostic selection alone may adopt current source pins\nok 275 - explicit current diagnostic selection alone may adopt current source pins\n ---\n duration_ms: 5.600642\n type: 'test'\n ...\n# Subtest: resume projection labels exact snapshot identity and separates review records from operational state\nok 276 - resume projection labels exact snapshot identity and separates review records from operational state\n ---\n duration_ms: 2.32812\n type: 'test'\n ...\n# Subtest: closed issues and accepted dispositions do not invent completion, ownership or a task link\nok 277 - closed issues and accepted dispositions do not invent completion, ownership or a task link\n ---\n duration_ms: 0.559213\n type: 'test'\n ...\n# Subtest: lookalike operational metadata in the graph is never promoted to next action, owner or stop\nok 278 - lookalike operational metadata in the graph is never promoted to next action, owner or stop\n ---\n duration_ms: 0.283411\n type: 'test'\n ...\n# Subtest: missing fields stay explicitly not recorded\nok 279 - missing fields stay explicitly not recorded\n ---\n duration_ms: 0.563789\n type: 'test'\n ...\n# Subtest: stale or disagreeing clocks change only the freshness state and keep every warning\nok 280 - stale or disagreeing clocks change only the freshness state and keep every warning\n ---\n duration_ms: 0.803241\n type: 'test'\n ...\n# Subtest: shared source hashes do not transfer review fields or the explicit task pointer\nok 281 - shared source hashes do not transfer review fields or the explicit task pointer\n ---\n duration_ms: 0.20843\n type: 'test'\n ...\n# Subtest: only exact public review URLs link; issue numbers and other strings stay inert\nok 282 - only exact" +2026-10-29T20:56:00.2336647Z CBZ_NODE_TAP_JSON 14 " public review URLs link; issue numbers and other strings stay inert\n ---\n duration_ms: 0.498208\n type: 'test'\n ...\n# Subtest: unknown and prototype identifiers have no resume projection\nok 283 - unknown and prototype identifiers have no resume projection\n ---\n duration_ms: 0.218221\n type: 'test'\n ...\n# Subtest: explicit task records are frozen operational pointers to public records\nok 284 - explicit task records are frozen operational pointers to public records\n ---\n duration_ms: 1.101243\n type: 'test'\n ...\n# Subtest: static node pages render the identical projection for every real node and the fixtures\nok 285 - static node pages render the identical projection for every real node and the fixtures\n ---\n duration_ms: 128.337064\n type: 'test'\n ...\n# Subtest: narrow startup and history fallback use List while an explicit Graph choice survives\nok 286 - narrow startup and history fallback use List while an explicit Graph choice survives\n ---\n duration_ms: 1.238421\n type: 'test'\n ...\n# Subtest: implicit viewport defaults adapt in both directions and unknown view values are not preferences\nok 287 - implicit viewport defaults adapt in both directions and unknown view values are not preferences\n ---\n duration_ms: 0.40362\n type: 'test'\n ...\n# Subtest: enhancement moves the exact admitted DOM into stable labelled panels without a history write\nok 288 - enhancement moves the exact admitted DOM into stable labelled panels without a history write\n ---\n duration_ms: 2.110355\n type: 'test'\n ...\n# Subtest: horizontal arrow keys wrap focus without changing the selected panel or URL\nok 289 - horizontal arrow keys wrap focus without changing the selected panel or URL\n ---\n duration_ms: 0.620834\n type: 'test'\n ...\n# Subtest: activating a tab changes the visible panel exactly once and preserves one tab stop\nok 290 - activating a tab changes the visible panel exactly once and preserves one tab stop\n ---\n duration_ms: 0.54115\n type: 'test'\n ...\n# Subtest: node selection reveals Evidence before focus even when Diagnostics was selected\nok 291 - node selection reveals Evidence before focus even when Diagnostics was selected\n ---\n duration_ms: 0.356199\n type: 'test'\n ...\n# Subtest: restoring absent or unknown panel values returns to browse without rewriting the address\nok 292 - restoring absent or unknown panel values returns to browse without rewriting the address\n ---\n duration_ms: 0.437579\n type: 'test'\n ...\n# Subtest: layout URLs preserve all scientific pins, historical filters and independent searches\nok 293 - layout URLs preserve all scientific pins, historical filters and independent searches\n ---\n duration_ms: 1.598771\n type: 'test'\n ...\n# Subtest: unmodified direct browse activation exits reading and focuses the browse entry point\nok 294 - unmodified direct browse activation exits reading and focuses the browse entry point\n ---\n duration_ms: 0.767467\n type: 'test'\n ...\n# Subtest: modified browse clicks retain native open-link behavior\nok 295 - modified browse clicks retain native open-link behavior\n ---\n duration_ms: 1.04107\n type: 'test'\n ...\n# Subtest: reader Back and Forward use ordinary browser history without creating entries\nok 296 - reader Back and Forward use ordinary browser history without creating entries\n ---\n duration_ms: 0.444371\n type: 'test'\n ...\n# Subtest: restoring history moves focus out of the now hidden reading or browse region\nok 297 - restoring history moves focus out of the now hidden reading or browse region\n ---\n duration_ms: 0.232461\n type: 'test'\n ...\n# Subtest: changing viewport repairs focus only when the currently focused browse content is hidden\nok 298 - changing viewport repairs focus only when the currently focused browse content is hidden\n ---\n duration_ms: 0.348039\n type: 'test'\n ...\n# Subtest: the browse reading button enters Evidence and reset removes only presentation state\nok 299 - the browse reading button enters Evidence and reset removes only presentation state\n ---\n duration_ms: 0.271147\n type: 'test'\n ...\n# Subtest: widenin" +2026-10-29T20:56:00.2362760Z CBZ_NODE_TAP_JSON 15 "g the viewport moves focus off mobile-only reader and browse controls\nok 300 - widening the viewport moves focus off mobile-only reader and browse controls\n ---\n duration_ms: 0.468674\n type: 'test'\n ...\n# Subtest: resize repairs focus after the renderer removes a focused source or graph child\nok 301 - resize repairs focus after the renderer removes a focused source or graph child\n ---\n duration_ms: 0.318304\n type: 'test'\n ...\n# Subtest: resize recovers a mobile control blurred by CSS before the media change event\nok 302 - resize recovers a mobile control blurred by CSS before the media change event\n ---\n duration_ms: 0.522007\n type: 'test'\n ...\n# Subtest: implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\nok 303 - implicit graph-to-list resize repairs a connected hidden stage and preserves outside focus\n ---\n duration_ms: 0.313121\n type: 'test'\n ...\n# Subtest: native modified and auxiliary Browse use the current independent source filter without writing history\nok 304 - native modified and auxiliary Browse use the current independent source filter without writing history\n ---\n duration_ms: 1.576588\n type: 'test'\n ...\n# Subtest: export records bounded current parameters, eigenvalues and zero boundary meaning\nok 305 - export records bounded current parameters, eigenvalues and zero boundary meaning\n ---\n duration_ms: 5.7501\n type: 'test'\n ...\n# Subtest: negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\nok 306 - negative decimal grid eigenvalues stay canonical across figure model, metadata, citation and footer\n ---\n duration_ms: 9.932506\n type: 'test'\n ...\n# Subtest: accepted floating-point step tolerance normalizes before classifying and replaying the figure\nok 307 - accepted floating-point step tolerance normalizes before classifying and replaying the figure\n ---\n duration_ms: 5.210518\n type: 'test'\n ...\n# Subtest: invalid, out-of-range or off-step parameters and false timestamps are refused\nok 308 - invalid, out-of-range or off-step parameters and false timestamps are refused\n ---\n duration_ms: 0.791609\n type: 'test'\n ...\n# Subtest: citation keeps only the canonical figure permalink and pinned teaching source\nok 309 - citation keeps only the canonical figure permalink and pinned teaching source\n ---\n duration_ms: 0.527198\n type: 'test'\n ...\n# Subtest: SVG retains actual geometry, concrete theme, aria names and visible teaching footer\nok 310 - SVG retains actual geometry, concrete theme, aria names and visible teaching footer\n ---\n duration_ms: 1.592267\n type: 'test'\n ...\n# Subtest: DOM capture accepts actual plain labels with empty class and omits exported classes\nok 311 - DOM capture accepts actual plain labels with empty class and omits exported classes\n ---\n duration_ms: 3.938859\n type: 'test'\n ...\n# Subtest: light theme colors are exported from the captured record\nok 312 - light theme colors are exported from the captured record\n ---\n duration_ms: 0.795817\n type: 'test'\n ...\n# Subtest: inherited native system font stacks remain self-contained without remote font syntax\nok 313 - inherited native system font stacks remain self-contained without remote font syntax\n ---\n duration_ms: 1.218582\n type: 'test'\n ...\n# Subtest: all diagram text and attribute values are XML escaped\nok 314 - all diagram text and attribute values are XML escaped\n ---\n duration_ms: 1.272858\n type: 'test'\n ...\n# Subtest: XML-forbidden BMP noncharacters are refused in every displayed text kind\nok 315 - XML-forbidden BMP noncharacters are refused in every displayed text kind\n ---\n duration_ms: 2.967929\n type: 'test'\n ...\n# Subtest: blank, stale or unsupported diagram content is refused instead of exported\nok 316 - blank, stale or unsupported diagram content is refused instead of exported\n ---\n duration_ms: 6.836216\n type: 'test'\n ...\n# Subtest: clipboard absence exposes manual citation and never permits copy\nok 317 - clipboard absence exposes manual citation and never permits copy\n ---\n duratio" +2026-10-29T20:56:00.2388816Z CBZ_NODE_TAP_JSON 16 "n_ms: 0.483953\n type: 'test'\n ...\n# Subtest: clipboard denial preserves the current manual text and reports failure\nok 318 - clipboard denial preserves the current manual text and reports failure\n ---\n duration_ms: 0.302938\n type: 'test'\n ...\n# Subtest: pending clipboard writes are serialized and cannot report stale settings as copied\nok 319 - pending clipboard writes are serialized and cannot report stale settings as copied\n ---\n duration_ms: 0.356983\n type: 'test'\n ...\n# Subtest: capture refusal clears the current citation text and blocks a later copy\nok 320 - capture refusal clears the current citation text and blocks a later copy\n ---\n duration_ms: 0.288658\n type: 'test'\n ...\n# Subtest: capture refusal during a pending copy clears text and cannot claim stale success or fallback\nok 321 - capture refusal during a pending copy clears text and cannot claim stale success or fallback\n ---\n duration_ms: 0.471569\n type: 'test'\n ...\n# Subtest: a successful current write reports success, while unavailable figures block later writes\nok 322 - a successful current write reports success, while unavailable figures block later writes\n ---\n duration_ms: 0.351599\n type: 'test'\n ...\n# Subtest: evidence shows recorded links without promoting missing review or formal evidence\nok 323 - evidence shows recorded links without promoting missing review or formal evidence\n ---\n duration_ms: 2.688527\n type: 'test'\n ...\n# Subtest: evidence retains unsafe paths as metadata and never turns a reference into verification\nok 324 - evidence retains unsafe paths as metadata and never turns a reference into verification\n ---\n duration_ms: 0.656393\n type: 'test'\n ...\n# Subtest: all-records and exact classification filters intersect text without relabeling nodes\nok 325 - all-records and exact classification filters intersect text without relabeling nodes\n ---\n duration_ms: 23.738667\n type: 'test'\n ...\n# Subtest: saved filters restore exact state and visibly reject unknown classifications\nok 326 - saved filters restore exact state and visibly reject unknown classifications\n ---\n duration_ms: 1.925284\n type: 'test'\n ...\n# Subtest: recorded context keeps reading-rule order and resolves only recorded same-graph references\nok 327 - recorded context keeps reading-rule order and resolves only recorded same-graph references\n ---\n duration_ms: 2.287586\n type: 'test'\n ...\n# Subtest: absent context is visibly not recorded and is never inferred from dependencies\nok 328 - absent context is visibly not recorded and is never inferred from dependencies\n ---\n duration_ms: 2.714022\n type: 'test'\n ...\n# Subtest: unresolved and unsafe context references stay literal without executable destinations\nok 329 - unresolved and unsafe context references stay literal without executable destinations\n ---\n duration_ms: 3.305689\n type: 'test'\n ...\n# Subtest: malformed context preserves complete recorded values instead of inventing references\nok 330 - malformed context preserves complete recorded values instead of inventing references\n ---\n duration_ms: 1.998408\n type: 'test'\n ...\n# Subtest: context presentation does not change graph edges, impact ranking, classifications or existing search\nok 331 - context presentation does not change graph edges, impact ranking, classifications or existing search\n ---\n duration_ms: 3.479177\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 0 ms digest delay\nok 332 - dependency startup preserves complete source metadata and search after 0 ms digest delay\n ---\n duration_ms: 45.810326\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and search after 150 ms digest delay\nok 333 - dependency startup preserves complete source metadata and search after 150 ms digest delay\n ---\n duration_ms: 166.209516\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 0 ms digest delay\nok 334 - dependency startup preserves complete source metadata and \\#object-evidenc" +2026-10-29T20:56:00.2415010Z CBZ_NODE_TAP_JSON 17 "e after 0 ms digest delay\n ---\n duration_ms: 14.02179\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\nok 335 - dependency startup preserves complete source metadata and \\#object-evidence after 150 ms digest delay\n ---\n duration_ms: 165.470448\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\nok 336 - dependency startup preserves complete source metadata and \\#object-audit after 0 ms digest delay\n ---\n duration_ms: 22.314928\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\nok 337 - dependency startup preserves complete source metadata and \\#object-audit after 150 ms digest delay\n ---\n duration_ms: 163.812016\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\nok 338 - dependency startup preserves complete source metadata and \\#object-reading-context after 0 ms digest delay\n ---\n duration_ms: 13.022718\n type: 'test'\n ...\n# Subtest: dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\nok 339 - dependency startup preserves complete source metadata and \\#object-reading-context after 150 ms digest delay\n ---\n duration_ms: 169.700168\n type: 'test'\n ...\n# Subtest: the pinned graph is complete and structurally valid\nok 340 - the pinned graph is complete and structurally valid\n ---\n duration_ms: 1.742169\n type: 'test'\n ...\n# Subtest: unresolved targets include open leaves with no recorded dependents\nok 341 - unresolved targets include open leaves with no recorded dependents\n ---\n duration_ms: 3.820844\n type: 'test'\n ...\n# Subtest: unresolved targets rank by transitive impact without hiding zero-impact leaves\nok 342 - unresolved targets rank by transitive impact without hiding zero-impact leaves\n ---\n duration_ms: 2.776055\n type: 'test'\n ...\n# Subtest: downstream counts keep all-edge reach separate from required-only reach\nok 343 - downstream counts keep all-edge reach separate from required-only reach\n ---\n duration_ms: 0.829989\n type: 'test'\n ...\n# Subtest: the pinned snapshot keeps its recorded counterexample and 19 differing counts\nok 344 - the pinned snapshot keeps its recorded counterexample and 19 differing counts\n ---\n duration_ms: 2.192615\n type: 'test'\n ...\n# Subtest: reach labels state their edge scope and do not describe reach as blocking\nok 345 - reach labels state their edge scope and do not describe reach as blocking\n ---\n duration_ms: 1.229465\n type: 'test'\n ...\n# Subtest: search covers ids, notes, source paths, classifications and edge relations\nok 346 - search covers ids, notes, source paths, classifications and edge relations\n ---\n duration_ms: 1.987558\n type: 'test'\n ...\n# Subtest: the app verifies graph bytes against a compiled source identity before parsing\nok 347 - the app verifies graph bytes against a compiled source identity before parsing\n ---\n duration_ms: 6.104657\n type: 'test'\n ...\n# Subtest: classification styling and metadata preserve source review lineage\nok 348 - classification styling and metadata preserve source review lineage\n ---\n duration_ms: 3.087012\n type: 'test'\n ...\n# Subtest: classification CSS identifiers use locale-neutral ASCII case folding\nok 349 - classification CSS identifiers use locale-neutral ASCII case folding\n ---\n duration_ms: 2.518395\n type: 'test'\n ...\n# Subtest: dependency paths use required source edges and retain relation metadata\nok 350 - dependency paths use required source edges and retain relation metadata\n ---\n duration_ms: 4.703459\n type: 'test'\n ...\n# Subtest: saved node links fail visibly instead of selecting an unrelated node\nok 351 - saved node links fail visibly instead of selecting an unrelated node\n ---\n duration_ms: 2.488679\n type: 'test'\n ...\n# Subtest: provenance pins the exact Math source bytes and labels the " +2026-10-29T20:56:00.2441119Z CBZ_NODE_TAP_JSON 18 "snapshot boundary\nok 352 - provenance pins the exact Math source bytes and labels the snapshot boundary\n ---\n duration_ms: 0.847763\n type: 'test'\n ...\n# Subtest: the viewer page exposes its source boundary and accessible interaction contract\nok 353 - the viewer page exposes its source boundary and accessible interaction contract\n ---\n duration_ms: 1.691718\n type: 'test'\n ...\n# Subtest: the evidence table keeps automatic layout and breaks words only in Source detail\nok 354 - the evidence table keeps automatic layout and breaks words only in Source detail\n ---\n duration_ms: 1.387192\n type: 'test'\n ...\n# Subtest: the three schema-absent evidence lanes read identically for different nodes and never claim a failure\nok 355 - the three schema-absent evidence lanes read identically for different nodes and never claim a failure\n ---\n duration_ms: 1.375441\n type: 'test'\n ...\n# Subtest: recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\nok 356 - recorded review text quotes the disposition and provider(s), names review fields recorded without one, and reports absence only when no review field exists\n ---\n duration_ms: 2.222692\n type: 'test'\n ...\n# Subtest: the static classification options and token list equal the pinned graph and stay disabled until verified\nok 357 - the static classification options and token list equal the pinned graph and stay disabled until verified\n ---\n duration_ms: 1.89192\n type: 'test'\n ...\n# Subtest: the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\nok 358 - the static vocabulary quotes exactly the classifications, layers, kinds and non-discharge tokens of the pinned graph\n ---\n duration_ms: 2.517987\n type: 'test'\n ...\n# Subtest: the unresolved-target sentence names exactly the viewer list rule\nok 359 - the unresolved-target sentence names exactly the viewer list rule\n ---\n duration_ms: 0.894189\n type: 'test'\n ...\n# Subtest: the page states the rendered bytes as PROVENANCE pins them and dates its currency read\nok 360 - the page states the rendered bytes as PROVENANCE pins them and dates its currency read\n ---\n duration_ms: 6.428037\n type: 'test'\n ...\n# Subtest: the cone classifies signs, retaining both zero-eigenvalue boundaries\nok 361 - the cone classifies signs, retaining both zero-eigenvalue boundaries\n ---\n duration_ms: 1.726285\n type: 'test'\n ...\n# Subtest: cone weight is determinant squared only on the negative-definite side\nok 362 - cone weight is determinant squared only on the negative-definite side\n ---\n duration_ms: 1.307201\n type: 'test'\n ...\n# Subtest: halving pin distance divides cubic gap by eight and annulus radii by two\nok 363 - halving pin distance divides cubic gap by eight and annulus radii by two\n ---\n duration_ms: 0.804465\n type: 'test'\n ...\n# Subtest: remote membership uses fixed distance and an open height window\nok 364 - remote membership uses fixed distance and an open height window\n ---\n duration_ms: 0.502583\n type: 'test'\n ...\n# Subtest: all eight three-object subsets receive the correct capacity-one partition\nok 365 - all eight three-object subsets receive the correct capacity-one partition\n ---\n duration_ms: 0.515623\n type: 'test'\n ...\n# Subtest: models reject invalid or unrepresentable teaching parameters\nok 366 - models reject invalid or unrepresentable teaching parameters\n ---\n duration_ms: 0.880269\n type: 'test'\n ...\n# Subtest: shared parameters restore all three experiments, including empty selection\nok 367 - shared parameters restore all three experiments, including empty selection\n ---\n duration_ms: 3.038886\n type: 'test'\n ...\n# Subtest: invalid numeric links are reported and defaulted without clamping or partial coercion\nok 368 - invalid numeric links are reported and defaulted without clamping or partial coercion\n ---\n duration_ms: 0.315337\n type: 'test'\n ...\n# Subtest: invalid choices cannot invent regions or objects\nok 369 - inval" +2026-10-29T20:56:00.2467320Z CBZ_NODE_TAP_JSON 19 "id choices cannot invent regions or objects\n ---\n duration_ms: 0.613331\n type: 'test'\n ...\n# Subtest: sharing serializes current controls and preserves section and unrelated query fields\nok 370 - sharing serializes current controls and preserves section and unrelated query fields\n ---\n duration_ms: 0.969922\n type: 'test'\n ...\n# Subtest: curvature presets draw and commit the selected controls with matching share and export state\nok 371 - curvature presets draw and commit the selected controls with matching share and export state\n ---\n duration_ms: 1.641641\n type: 'test'\n ...\n# Subtest: unknown curvature presets leave controls and current figure untouched\nok 372 - unknown curvature presets leave controls and current figure untouched\n ---\n duration_ms: 0.1714\n type: 'test'\n ...\n# Subtest: PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\nok 373 - PNG embeds exact structured figure metadata and UTF-8 citation without changing image chunks\n ---\n duration_ms: 4.107251\n type: 'test'\n ...\n# Subtest: PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\nok 374 - PNG refuses malformed signature, truncated or oversized chunks, corrupt CRC and trailing bytes\n ---\n duration_ms: 2.148473\n type: 'test'\n ...\n# Subtest: PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\nok 375 - PNG refuses missing or misplaced required chunks, mismatched dimensions and preexisting text metadata\n ---\n duration_ms: 2.433747\n type: 'test'\n ...\n# Subtest: PNG refuses unbounded or unsupported metadata, citations and target dimensions\nok 376 - PNG refuses unbounded or unsupported metadata, citations and target dimensions\n ---\n duration_ms: 1.607778\n type: 'test'\n ...\n# Subtest: controller downloads once only after asynchronous preparation and final unchanged recapture\nok 377 - controller downloads once only after asynchronous preparation and final unchanged recapture\n ---\n duration_ms: 1.101484\n type: 'test'\n ...\n# Subtest: controller coalesces repeated activation while a preparation is pending\nok 378 - controller coalesces repeated activation while a preparation is pending\n ---\n duration_ms: 0.421436\n type: 'test'\n ...\n# Subtest: changed or tampered final SVG, metadata or citation refuses download\nok 379 - changed or tampered final SVG, metadata or citation refuses download\n ---\n duration_ms: 1.194807\n type: 'test'\n ...\n# Subtest: control revision cancels work even after a change away and back\nok 380 - control revision cancels work even after a change away and back\n ---\n duration_ms: 0.568277\n type: 'test'\n ...\n# Subtest: late failure from an invalidated operation cannot erase newer successful state\nok 381 - late failure from an invalidated operation cannot erase newer successful state\n ---\n duration_ms: 0.863671\n type: 'test'\n ...\n# Subtest: capture, preparation, null result and download errors stay explicit and allow retry\nok 382 - capture, preparation, null result and download errors stay explicit and allow retry\n ---\n duration_ms: 2.286778\n type: 'test'\n ...\n# Subtest: unready controller cannot prepare or download a figure\nok 383 - unready controller cannot prepare or download a figure\n ---\n duration_ms: 0.366302\n type: 'test'\n ...\n# Subtest: PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\nok 384 - PNG refuses an empty image-data stream even when chunk CRCs and dimensions are valid\n ---\n duration_ms: 0.499296\n type: 'test'\n ...\n# Subtest: rasterizer refuses missing canvas context before image work and releases canvas storage\nok 385 - rasterizer refuses missing canvas context before image work and releases canvas storage\n ---\n duration_ms: 0.752052\n type: 'test'\n ...\n# Subtest: rasterizer image decode, dimension, encoder and null-output failures release all resources\nok 386 - rasterizer image decode, dimension, encoder and null-output failures release all resources\n ---\n duration_ms: 2.014511\n type: 'test'\n ...\n# Su" +2026-10-29T20:56:00.2493313Z CBZ_NODE_TAP_JSON 20 "btest: rasterizer is bounded by its timeout and abort signal, with no late image callbacks\nok 387 - rasterizer is bounded by its timeout and abort signal, with no late image callbacks\n ---\n duration_ms: 8.927987\n type: 'test'\n ...\n# Subtest: existing and unknown collection bookmarks retain Files while explicit text survives\nok 388 - existing and unknown collection bookmarks retain Files while explicit text survives\n ---\n duration_ms: 1.830528\n type: 'test'\n ...\n# Subtest: collection links preserve literal query and independent state without changing the target\nok 389 - collection links preserve literal query and independent state without changing the target\n ---\n duration_ms: 0.580332\n type: 'test'\n ...\n# Subtest: an excerpt link retains exact source commit, literal filename and complete line range\nok 390 - an excerpt link retains exact source commit, literal filename and complete line range\n ---\n duration_ms: 0.453562\n type: 'test'\n ...\n# Subtest: invalid or missing excerpt ranges cannot become invented source line identities\nok 391 - invalid or missing excerpt ranges cannot become invented source line identities\n ---\n duration_ms: 0.242005\n type: 'test'\n ...\n# Subtest: search links preserve literal text and unrelated page state\nok 392 - search links preserve literal text and unrelated page state\n ---\n duration_ms: 1.108611\n type: 'test'\n ...\n# Subtest: empty queries remove only the current-source parameter\nok 393 - empty queries remove only the current-source parameter\n ---\n duration_ms: 0.293378\n type: 'test'\n ...\n# Subtest: no initialization on another page or before snapshot admission\nok 394 - no initialization on another page or before snapshot admission\n ---\n duration_ms: 0.266115\n type: 'test'\n ...\n# Subtest: aggregate count uses area, all realizations, and bin width exactly once\nok 395 - aggregate count uses area, all realizations, and bin width exactly once\n ---\n duration_ms: 2.643377\n type: 'test'\n ...\n# Subtest: twice the count gives twice the mass and density\nok 396 - twice the count gives twice the mass and density\n ---\n duration_ms: 0.388869\n type: 'test'\n ...\n# Subtest: adding zero-count realizations still increases the denominator\nok 397 - adding zero-count realizations still increases the denominator\n ---\n duration_ms: 0.262916\n type: 'test'\n ...\n# Subtest: a wider synthetic bin preserves mass and divides density by its width\nok 398 - a wider synthetic bin preserves mass and divides density by its width\n ---\n duration_ms: 0.344727\n type: 'test'\n ...\n# Subtest: zero counts produce valid zero estimates without a fabricated positive floor\nok 399 - zero counts produce valid zero estimates without a fabricated positive floor\n ---\n duration_ms: 0.319729\n type: 'test'\n ...\n# Subtest: counts and realization totals reject fractions, unsafe integers, and nonnumbers\nok 400 - counts and realization totals reject fractions, unsafe integers, and nonnumbers\n ---\n duration_ms: 0.815505\n type: 'test'\n ...\n# Subtest: only positive ordered finite bin edges are accepted\nok 401 - only positive ordered finite bin edges are accepted\n ---\n duration_ms: 0.480649\n type: 'test'\n ...\n# Subtest: normalization refuses unsafe exposure and overflow or underflow in positive density\nok 402 - normalization refuses unsafe exposure and overflow or underflow in positive density\n ---\n duration_ms: 0.439963\n type: 'test'\n ...\n# Subtest: input parsing rejects blanks instead of turning them into zero counts\nok 403 - input parsing rejects blanks instead of turning them into zero counts\n ---\n duration_ms: 1.525399\n type: 'test'\n ...\n# Subtest: decimal input, including scientific notation, reaches the same normalization\nok 404 - decimal input, including scientific notation, reaches the same normalization\n ---\n duration_ms: 1.290146\n type: 'test'\n ...\n# Subtest: decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\nok 405 - decimal conversion cannot round a fractional count to an integer or a nonzero input to zero\n ---\n duration_ms: 1.347" +2026-10-29T20:56:00.2518924Z CBZ_NODE_TAP_JSON 21 "415\n type: 'test'\n ...\n# Subtest: six complete inputs feed exactly one conditional conclusion\nok 406 - six complete inputs feed exactly one conditional conclusion\n ---\n duration_ms: 9.415811\n type: 'test'\n ...\n# Subtest: the normalization and fixed lower comparison are retained\nok 407 - the normalization and fixed lower comparison are retained\n ---\n duration_ms: 1.141201\n type: 'test'\n ...\n# Subtest: measurability and almost-everywhere quantifiers are retained\nok 408 - measurability and almost-everywhere quantifiers are retained\n ---\n duration_ms: 0.99252\n type: 'test'\n ...\n# Subtest: positive and zero cases and the density non-implication remain explicit\nok 409 - positive and zero cases and the density non-implication remain explicit\n ---\n duration_ms: 0.992416\n type: 'test'\n ...\n# Subtest: changed source bytes are refused before projection\nok 410 - changed source bytes are refused before projection\n ---\n duration_ms: 2.505032\n type: 'test'\n ...\n# Subtest: integer and mutable commit identities are refused\nok 411 - integer and mutable commit identities are refused\n ---\n duration_ms: 0.413348\n type: 'test'\n ...\n# Subtest: a numeric hash cannot be coerced into a string\nok 412 - a numeric hash cannot be coerced into a string\n ---\n duration_ms: 0.374918\n type: 'test'\n ...\n# Subtest: private repository and changed proof paths are refused\nok 413 - private repository and changed proof paths are refused\n ---\n duration_ms: 0.445618\n type: 'test'\n ...\n# Subtest: redirected URL and changed blob or size are refused\nok 414 - redirected URL and changed blob or size are refused\n ---\n duration_ms: 0.940051\n type: 'test'\n ...\n# Subtest: deleting H3 cannot silently weaken the route\nok 415 - deleting H3 cannot silently weaken the route\n ---\n duration_ms: 3.226061\n type: 'test'\n ...\n# Subtest: ALL cannot become ANY\nok 416 - ALL cannot become ANY\n ---\n duration_ms: 1.128378\n type: 'test'\n ...\n# Subtest: self dependency or unknown nodes are refused\nok 417 - self dependency or unknown nodes are refused\n ---\n duration_ms: 1.664464\n type: 'test'\n ...\n# Subtest: invented acceptance and independence fields are refused\nok 418 - invented acceptance and independence fields are refused\n ---\n duration_ms: 3.531782\n type: 'test'\n ...\n# Subtest: rendering exposes hypotheses, exact identity, and application boundary\nok 419 - rendering exposes hypotheses, exact identity, and application boundary\n ---\n duration_ms: 1.666856\n type: 'test'\n ...\n# Subtest: a failed load clears any earlier ready view and says so in the status line\nok 420 - a failed load clears any earlier ready view and says so in the status line\n ---\n duration_ms: 0.503943\n type: 'test'\n ...\n# Subtest: a page without the status line still shows the refusal in the host, without a role\nok 421 - a page without the status line still shows the refusal in the host, without a role\n ---\n duration_ms: 0.396597\n type: 'test'\n ...\n# Subtest: the source fixture is complete and immutable\nok 422 - the source fixture is complete and immutable\n ---\n duration_ms: 1.70675\n type: 'test'\n ...\n# Subtest: museum HTML has the route host, navigation and module without replacing existing cards\nok 423 - museum HTML has the route host, navigation and module without replacing existing cards\n ---\n duration_ms: 1.387094\n type: 'test'\n ...\n# Subtest: CLI projects the exact source and produces deterministic JSON\nok 424 - CLI projects the exact source and produces deterministic JSON\n ---\n duration_ms: 69.410713\n type: 'test'\n ...\n# Subtest: CLI rejects altered manifest bytes\nok 425 - CLI rejects altered manifest bytes\n ---\n duration_ms: 33.751634\n type: 'test'\n ...\n# Subtest: CLI refuses missing or repeated conditional claim\nok 426 - CLI refuses missing or repeated conditional claim\n ---\n duration_ms: 74.613055\n type: 'test'\n ...\n# Subtest: CLI rejects weakened projection in check mode\nok 427 - CLI rejects weakened projection in check mode\n ---\n duration_ms: 105.597377\n type: 'test'\n ...\n# Subtest: CLI rejects nonlocal manifest and malfo" +2026-10-29T20:56:00.2544230Z CBZ_NODE_TAP_JSON 22 "rmed hash types\nok 428 - CLI rejects nonlocal manifest and malformed hash types\n ---\n duration_ms: 113.256237\n type: 'test'\n ...\n# Subtest: CLI refuses missing input and unknown options\nok 429 - CLI refuses missing input and unknown options\n ---\n duration_ms: 65.557625\n type: 'test'\n ...\n# Subtest: CLI rejects source substitution\nok 430 - CLI rejects source substitution\n ---\n duration_ms: 36.249255\n type: 'test'\n ...\n# Subtest: the pull_request filter keeps every earlier path and adds the shared museum fixture\nok 431 - the pull_request filter keeps every earlier path and adds the shared museum fixture\n ---\n duration_ms: 1.346348\n type: 'test'\n ...\n# Subtest: a fixture-only change was missed before and now runs the conditional suites\nok 432 - a fixture-only change was missed before and now runs the conditional suites\n ---\n duration_ms: 0.58428\n type: 'test'\n ...\n# Subtest: existing matching paths stay matched and unrelated paths stay excluded\nok 433 - existing matching paths stay matched and unrelated paths stay excluded\n ---\n duration_ms: 1.133644\n type: 'test'\n ...\n# Subtest: every local file the conditional suites and replay tool load triggers the workflow\nok 434 - every local file the conditional suites and replay tool load triggers the workflow\n ---\n duration_ms: 3.744436\n type: 'test'\n ...\n# Subtest: a verified startup renders the route from the selected claim proof bytes\nok 435 - a verified startup renders the route from the selected claim proof bytes\n ---\n duration_ms: 42.284191\n type: 'test'\n ...\n# Subtest: the museum page and the conditional route share one verified startup and byte cache\nok 436 - the museum page and the conditional route share one verified startup and byte cache\n ---\n duration_ms: 16.871593\n type: 'test'\n ...\n# Subtest: a rejected startup is not retained for a later caller\nok 437 - a rejected startup is not retained for a later caller\n ---\n duration_ms: 12.258308\n type: 'test'\n ...\n# Subtest: changed proof bytes clear an earlier view and infer nothing\nok 438 - changed proof bytes clear an earlier view and infer nothing\n ---\n duration_ms: 6.389498\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor is refused before its bytes are fetched\nok 439 - a manifest proof that is not the audited descriptor is refused before its bytes are fetched\n ---\n duration_ms: 2.424758\n type: 'test'\n ...\n# Subtest: a stale manifest stops before any pinned remote request\nok 440 - a stale manifest stops before any pinned remote request\n ---\n duration_ms: 1.533671\n type: 'test'\n ...\n# Subtest: a page without the route container is left untouched\nok 441 - a page without the route container is left untouched\n ---\n duration_ms: 0.560682\n type: 'test'\n ...\n# Subtest: a verified route: the outcome is written to the attached role=\"status\" line after the host changes\nok 442 - a verified route: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 5.904318\n type: 'test'\n ...\n# Subtest: a verified route: nothing inserted into the route host carries a role or is live\nok 443 - a verified route: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 7.535668\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\nok 444 - a changed museum.json at startup: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.329696\n type: 'test'\n ...\n# Subtest: a changed museum.json at startup: nothing inserted into the route host carries a role or is live\nok 445 - a changed museum.json at startup: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 1.729682\n type: 'test'\n ...\n# Subtest: a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\nok 446 - a stale manifest: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 1" +2026-10-29T20:56:00.2569562Z CBZ_NODE_TAP_JSON 23 "0.193959\n type: 'test'\n ...\n# Subtest: a stale manifest: nothing inserted into the route host carries a role or is live\nok 447 - a stale manifest: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 7.710152\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\nok 448 - a manifest proof that is not the audited descriptor: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 6.836776\n type: 'test'\n ...\n# Subtest: a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\nok 449 - a manifest proof that is not the audited descriptor: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.229083\n type: 'test'\n ...\n# Subtest: changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\nok 450 - changed proof bytes: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 2.818682\n type: 'test'\n ...\n# Subtest: changed proof bytes: nothing inserted into the route host carries a role or is live\nok 451 - changed proof bytes: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 2.905656\n type: 'test'\n ...\n# Subtest: an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\nok 452 - an unavailable museum module: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.765924\n type: 'test'\n ...\n# Subtest: an unavailable museum module: nothing inserted into the route host carries a role or is live\nok 453 - an unavailable museum module: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.536613\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\nok 454 - a manifest without the route claim: the outcome is written to the attached role=\"status\" line after the host changes\n ---\n duration_ms: 0.763444\n type: 'test'\n ...\n# Subtest: a manifest without the route claim: nothing inserted into the route host carries a role or is live\nok 455 - a manifest without the route claim: nothing inserted into the route host carries a role or is live\n ---\n duration_ms: 0.553915\n type: 'test'\n ...\n# Subtest: museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\nok 456 - museum.html has exactly one route status line: static, role=\"status\", directly before an empty host\n ---\n duration_ms: 0.335955\n type: 'test'\n ...\n# Subtest: on a first run the static Verifying\u2026 line receives no write while the route is verified\nok 457 - on a first run the static Verifying\u2026 line receives no write while the route is verified\n ---\n duration_ms: 9.858684\n type: 'test'\n ...\n# Subtest: an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\nok 458 - an older page without the status line shows one plain Verifying\u2026 paragraph in the host until the refusal replaces it\n ---\n duration_ms: 1.657881\n type: 'test'\n ...\n# Subtest: an older page without the status line still shows the refusal as a plain paragraph in the host\nok 459 - an older page without the status line still shows the refusal as a plain paragraph in the host\n ---\n duration_ms: 0.930242\n type: 'test'\n ...\n# Subtest: an older page without the status line draws only the route on success\nok 460 - an older page without the status line draws only the route on success\n ---\n duration_ms: 3.199856\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 461 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 2.418822\n type: 'tes" +2026-10-29T20:56:00.2595158Z CBZ_NODE_TAP_JSON 24 "t'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 462 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.523775\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 463 - unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\n ---\n duration_ms: 1.78566\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 464 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.793875\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 465 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.561767\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 466 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.149977\n type: 'test'\n ...\n# Subtest: museum exposes source-bound rendering rather than silently omitting the page\nok 467 - museum exposes source-bound rendering rather than silently omitting the page\n ---\n duration_ms: 0.368183\n type: 'test'\n ...\n# Subtest: a delayed initial museum bookmark still reaches its verified claim when untouched\nok 468 - a delayed initial museum bookmark still reaches its verified claim when untouched\n ---\n duration_ms: 48.933597\n type: 'test'\n ...\n# Subtest: museum wheel while verifying sources cancels delayed focus and scroll\nok 469 - museum wheel while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.973078\n type: 'test'\n ...\n# Subtest: museum keydown while verifying sources cancels delayed focus and scroll\nok 470 - museum keydown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 9.624686\n type: 'test'\n ...\n# Subtest: museum pointerdown while verifying sources cancels delayed focus and scroll\nok 471 - museum pointerdown while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 13.192853\n type: 'test'\n ...\n# Subtest: museum focusin while verifying sources cancels delayed focus and scroll\nok 472 - museum focusin while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 14.994704\n type: 'test'\n ...\n# Subtest: museum hashchange while verifying sources cancels delayed focus and scroll\nok 473 - museum hashchange while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 8.035933\n type: 'test'\n ...\n# Subtest: museum popstate while verifying sources cancels delayed focus and scroll\nok 474 - museum popstate while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 10.828506\n type: 'test'\n ...\n# Subtest: museum pagehide while verifying sources cancels delayed focus and scroll\nok 475 - museum pagehide while verifying sources cancels delayed focus and scroll\n ---\n duration_ms: 4.83838\n type: 'test'\n ...\n# Subtest: full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\nok 476 - full reviewed bullets, the reconciled D1 row and both AMEND rows retain their classes and source wording\n ---\n duration_ms: 1.153689\n type: 'test'\n ...\n# Subtest: source display cannot promote a counterexample or an AMEND row\nok 477 - source display cannot promote a counterexample or an AMEND row\n ---\n duration_ms: 1.00569\n type: 'test'\n ...\n# Subtest: a genuine source elsewhere in the index cannot replace this claim proof or scope\nok 478 - a genuine source elsewhere in the index cannot replace this claim proof or scope\n ---\n duration_ms: 0.604133\n type: 'test'\n ...\n# Subtest: replay command must occur exactly in the verified replay source\nok 479 - replay command must occur exactly in the verified rep" +2026-10-29T20:56:00.2620840Z CBZ_NODE_TAP_JSON 25 "lay source\n ---\n duration_ms: 3.184434\n type: 'test'\n ...\n# Subtest: lifetime source identity must match D2 and packets must use the pinned main snapshot\nok 480 - lifetime source identity must match D2 and packets must use the pinned main snapshot\n ---\n duration_ms: 0.805632\n type: 'test'\n ...\n# Subtest: malformed, mutable and falsely displayed source identities are refused before fetch\nok 481 - malformed, mutable and falsely displayed source identities are refused before fetch\n ---\n duration_ms: 0.404116\n type: 'test'\n ...\n# Subtest: verified source bytes are required before a claim can be presented\nok 482 - verified source bytes are required before a claim can be presented\n ---\n duration_ms: 5.711908\n type: 'test'\n ...\n# Subtest: streamed responses stop at the byte cap and cancel the reader\nok 483 - streamed responses stop at the byte cap and cancel the reader\n ---\n duration_ms: 1.116189\n type: 'test'\n ...\n# Subtest: a stalled response body is aborted within its request deadline\nok 484 - a stalled response body is aborted within its request deadline\n ---\n duration_ms: 16.808616\n type: 'test'\n ...\n# Subtest: review comment pointers cannot masquerade as byte-frozen comment content\nok 485 - review comment pointers cannot masquerade as byte-frozen comment content\n ---\n duration_ms: 0.647641\n type: 'test'\n ...\n# Subtest: the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\nok 486 - the accepted D1 row binds its STATUS quote, index-pinned proof and byte-bound review\n ---\n duration_ms: 1.113766\n type: 'test'\n ...\n# Subtest: packet index refuses a foreign packet, changed scientific effect and mismatched result path\nok 487 - packet index refuses a foreign packet, changed scientific effect and mismatched result path\n ---\n duration_ms: 2.262231\n type: 'test'\n ...\n# Subtest: new landed chart packet requires its exact separate main commit and remains engineering-only\nok 488 - new landed chart packet requires its exact separate main commit and remains engineering-only\n ---\n duration_ms: 1.112142\n type: 'test'\n ...\n# Subtest: rendered claims use declared HTML containers, complete identities and literal disclaimer\nok 489 - rendered claims use declared HTML containers, complete identities and literal disclaimer\n ---\n duration_ms: 8.133482\n type: 'test'\n ...\n# Subtest: museum manifest must match the config byte count and SHA-256 before source projection\nok 490 - museum manifest must match the config byte count and SHA-256 before source projection\n ---\n duration_ms: 3.795391\n type: 'test'\n ...\n# Subtest: museum.html keeps its two evidence live regions and a separate current observation region\nok 491 - museum.html keeps its two evidence live regions and a separate current observation region\n ---\n duration_ms: 3.427663\n type: 'test'\n ...\n# Subtest: brand.css keeps the route status line visible and in the error colour when it refuses\nok 492 - brand.css keeps the route status line visible and in the error colour when it refuses\n ---\n duration_ms: 1.323198\n type: 'test'\n ...\n# Subtest: refused cards carry no role and are not live; the museum status line counts every one of them\nok 493 - refused cards carry no role and are not live; the museum status line counts every one of them\n ---\n duration_ms: 4.109445\n type: 'test'\n ...\n# Subtest: an unknown exhibit is counted in the museum status line like any other unavailable view\nok 494 - an unknown exhibit is counted in the museum status line like any other unavailable view\n ---\n duration_ms: 4.892694\n type: 'test'\n ...\n# Subtest: a declared exhibit that cannot be shown is counted in the museum status line\nok 495 - a declared exhibit that cannot be shown is counted in the museum status line\n ---\n duration_ms: 6.617641\n type: 'test'\n ...\n# Subtest: the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\nok 496 - the dependency-record join map binds each card to its graph node by exact path and SHA-256, never by title\n ---\n duration_ms: 1.144954\n typ" +2026-10-29T20:56:00.2646488Z CBZ_NODE_TAP_JSON 26 "e: 'test'\n ...\n# Subtest: a coherent old browser cache cannot hide the newly pinned packet\nok 497 - a coherent old browser cache cannot hide the newly pinned packet\n ---\n duration_ms: 16.448655\n type: 'test'\n ...\n# Subtest: a mixed new config and stale museum manifest fails closed\nok 498 - a mixed new config and stale museum manifest fails closed\n ---\n duration_ms: 2.578924\n type: 'test'\n ...\n# Subtest: actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\nok 499 - actual pinned museum renders all cards and rejects cross-claim source, scope and replay substitutions\n ---\n duration_ms: 15.93924\n type: 'test'\n ...\n# Subtest: verified claim quotes expose readable source and exact review citations\nok 500 - verified claim quotes expose readable source and exact review citations\n ---\n duration_ms: 4.89059\n type: 'test'\n ...\n# Subtest: readable presentation retains the exact original source quote in a disclosure\nok 501 - readable presentation retains the exact original source quote in a disclosure\n ---\n duration_ms: 5.042461\n type: 'test'\n ...\n# Subtest: packet cards render in manifest order when the first packet arrives last\nok 502 - packet cards render in manifest order when the first packet arrives last\n ---\n duration_ms: 9.351492\n type: 'test'\n ...\n# Subtest: a refused packet keeps its manifest slot when the other packet arrives later\nok 503 - a refused packet keeps its manifest slot when the other packet arrives later\n ---\n duration_ms: 9.230433\n type: 'test'\n ...\n# Subtest: every refused packet is counted in the museum status line\nok 504 - every refused packet is counted in the museum status line\n ---\n duration_ms: 7.446741\n type: 'test'\n ...\n# Subtest: a rendered packet replaces its Verifying placeholder\nok 505 - a rendered packet replaces its Verifying placeholder\n ---\n duration_ms: 6.67985\n type: 'test'\n ...\n# Subtest: EC014 rejects degenerate pins and retains the declared raw and corrected row orders\nok 506 - EC014 rejects degenerate pins and retains the declared raw and corrected row orders\n ---\n duration_ms: 1.814552\n type: 'test'\n ...\n# Subtest: remote membership keeps rho fixed and excludes all heights outside the open pin window\nok 507 - remote membership keeps rho fixed and excludes all heights outside the open pin window\n ---\n duration_ms: 0.475932\n type: 'test'\n ...\n# Subtest: annulus membership uses scaled coordinates with fixed A and B in dimension two\nok 508 - annulus membership uses scaled coordinates with fixed A and B in dimension two\n ---\n duration_ms: 0.447575\n type: 'test'\n ...\n# Subtest: P15 exact finite example partitions every proper subset and rejects the full triple\nok 509 - P15 exact finite example partitions every proper subset and rejects the full triple\n ---\n duration_ms: 0.518343\n type: 'test'\n ...\n# Subtest: unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\nok 510 - unsupported kinds and mismatched source descriptors do not render geometry or request CDN code\n ---\n duration_ms: 0.577153\n type: 'test'\n ...\n# Subtest: all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\nok 511 - all static exhibits render with no WebGL or CDN dependency and preserve excluded regions\n ---\n duration_ms: 3.522541\n type: 'test'\n ...\n# Subtest: remote exclusion and annulus open complements are filled by defined SVG hatches\nok 512 - remote exclusion and annulus open complements are filled by defined SVG hatches\n ---\n duration_ms: 0.745254\n type: 'test'\n ...\n# Subtest: P15 vertex toggles change the actual decomposition result\nok 513 - P15 vertex toggles change the actual decomposition result\n ---\n duration_ms: 0.782914\n type: 'test'\n ...\n# Subtest: EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\nok 514 - EC014 retains complete two-dimensional content when WebGL is missing or CDN fails\n ---\n duration_ms: 1.819024\n type: 'test'\n ...\n# Subtest: EC014 live status follows the visible view t" +2026-10-29T20:56:00.2672422Z CBZ_NODE_TAP_JSON 27 "hrough 3D, 2D and back\nok 515 - EC014 live status follows the visible view through 3D, 2D and back\n ---\n duration_ms: 5.418852\n type: 'test'\n ...\n# Subtest: correct source bytes cannot acquire a different valid-looking commit\nok 516 - correct source bytes cannot acquire a different valid-looking commit\n ---\n duration_ms: 1.36117\n type: 'test'\n ...\n# Subtest: exported projection preserves the complete audited source descriptor\nok 517 - exported projection preserves the complete audited source descriptor\n ---\n duration_ms: 11.046217\n type: 'test'\n ...\n# Subtest: offline CLI refuses coherent hash-correct source relabeling\nok 518 - offline CLI refuses coherent hash-correct source relabeling\n ---\n duration_ms: 41.885627\n type: 'test'\n ...\n# Subtest: published node-status records are real graph nodes with a valid owner and no mathematical flags\nok 519 - published node-status records are real graph nodes with a valid owner and no mathematical flags\n ---\n duration_ms: 161.3683\n type: 'test'\n ...\n# Subtest: a record with an owner but no evidence_url fails validation\nok 520 - a record with an owner but no evidence_url fails validation\n ---\n duration_ms: 372.943401\n type: 'test'\n ...\n# Subtest: closed schema, evidence pattern, and primary source_rev are enforced\nok 521 - closed schema, evidence pattern, and primary source_rev are enforced\n ---\n duration_ms: 1063.512011\n type: 'test'\n ...\n# Subtest: pinned rev equals the blob or tree commit segment\nok 522 - pinned rev equals the blob or tree commit segment\n ---\n duration_ms: 311.135387\n type: 'test'\n ...\n# Subtest: carried_forward resolution_url uses the shared comment pattern\nok 523 - carried_forward resolution_url uses the shared comment pattern\n ---\n duration_ms: 424.55943\n type: 'test'\n ...\n# Subtest: released_url keeps the owner object and the atlas says released\nok 524 - released_url keeps the owner object and the atlas says released\n ---\n duration_ms: 141.979367\n type: 'test'\n ...\n# Subtest: resume projection shows a node-status view and refuses an owner without evidence\nok 525 - resume projection shows a node-status view and refuses an owner without evidence\n ---\n duration_ms: 566.701436\n type: 'test'\n ...\n# Subtest: a valid observed_at and source_rev refresh still validates and renders\nok 526 - a valid observed_at and source_rev refresh still validates and renders\n ---\n duration_ms: 191.473246\n type: 'test'\n ...\n# Subtest: the atlas resume section passes the published node-status view into resumeProjection\nok 527 - the atlas resume section passes the published node-status view into resumeProjection\n ---\n duration_ms: 1.499923\n type: 'test'\n ...\n# Subtest: lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\nok 528 - lifetime continuation exposes conditional R1 evidence without promoting the general graph claim\n ---\n duration_ms: 155.802744\n type: 'test'\n ...\n# Subtest: all eight selections export the displayed capacity-one assignments with 1-based IDs\nok 529 - all eight selections export the displayed capacity-one assignments with 1-based IDs\n ---\n duration_ms: 3.943751\n type: 'test'\n ...\n# Subtest: the failed triple explicitly records an attempted placement rather than a valid partition\nok 530 - the failed triple explicitly records an attempted placement rather than a valid partition\n ---\n duration_ms: 0.749662\n type: 'test'\n ...\n# Subtest: normalization sorts without mutating input and excludes unrelated state from the permalink\nok 531 - normalization sorts without mutating input and excludes unrelated state from the permalink\n ---\n duration_ms: 0.252244\n type: 'test'\n ...\n# Subtest: malformed selections and noncanonical or false ISO timestamps are refused\nok 532 - malformed selections and noncanonical or false ISO timestamps are refused\n ---\n duration_ms: 1.326862\n type: 'test'\n ...\n# Subtest: metadata carries the exact pinned finite source and non-certifying scope\nok 533 - metadata carries the exact pinned finite source and non-certifying scope\n ---\n dura" +2026-10-29T20:56:00.2698440Z CBZ_NODE_TAP_JSON 28 "tion_ms: 0.520119\n type: 'test'\n ...\n# Subtest: plaintext citations identify selected objects, actual empty groups and failed placement\nok 534 - plaintext citations identify selected objects, actual empty groups and failed placement\n ---\n duration_ms: 0.740839\n type: 'test'\n ...\n# Subtest: expected nodes match every current drawPalette selection including empty labels and failed connectors\nok 535 - expected nodes match every current drawPalette selection including empty labels and failed connectors\n ---\n duration_ms: 2.19615\n type: 'test'\n ...\n# Subtest: SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\nok 536 - SVG preserves displayed geometry and both concrete themes with source metadata and a readable scope footer\n ---\n duration_ms: 19.028028\n type: 'test'\n ...\n# Subtest: stale selection, labels, connectors, arbitrary roots and missing content are refused\nok 537 - stale selection, labels, connectors, arbitrary roots and missing content are refused\n ---\n duration_ms: 2.132766\n type: 'test'\n ...\n# Subtest: the visible footer records the same ISO generation timestamp as export metadata\nok 538 - the visible footer records the same ISO generation timestamp as export metadata\n ---\n duration_ms: 1.59976\n type: 'test'\n ...\n# Subtest: inherited native font stacks on actual non-text primitives remain self-contained\nok 539 - inherited native font stacks on actual non-text primitives remain self-contained\n ---\n duration_ms: 4.804952\n type: 'test'\n ...\n# Subtest: unsupported active, resource, nested or hidden content cannot pass a matching geometry export\nok 540 - unsupported active, resource, nested or hidden content cannot pass a matching geometry export\n ---\n duration_ms: 3.732149\n type: 'test'\n ...\n# Subtest: pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\nok 541 - pin metadata records current bounded controls, teaching choices, scale geometry and full pinned source identities\n ---\n duration_ms: 2.256328\n type: 'test'\n ...\n# Subtest: only displayed hundredth-tick controls and canonical ISO times are accepted\nok 542 - only displayed hundredth-tick controls and canonical ISO times are accepted\n ---\n duration_ms: 0.929282\n type: 'test'\n ...\n# Subtest: citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\nok 543 - citation includes selected highlight, full sources, qualitative limits and a feature-only permalink\n ---\n duration_ms: 0.554731\n type: 'test'\n ...\n# Subtest: expected geometry matches the actual independent annulus and remote records at both comparison settings\nok 544 - expected geometry matches the actual independent annulus and remote records at both comparison settings\n ---\n duration_ms: 11.750252\n type: 'test'\n ...\n# Subtest: pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\nok 545 - pin export refuses stale pins, ring width, height window, remote path, labels and extra resources\n ---\n duration_ms: 2.94634\n type: 'test'\n ...\n# Subtest: the visible pin footer records the same ISO generation timestamp as metadata\nok 546 - the visible pin footer records the same ISO generation timestamp as metadata\n ---\n duration_ms: 1.424771\n type: 'test'\n ...\n# Public shop base interactions passed: 2138 original rows, exact decimals, search and selection.\n# Subtest: SIDE24 always identifies the engineering exhibit before the controls\nok 547 - SIDE24 always identifies the engineering exhibit before the controls\n ---\n duration_ms: 0.94088\n type: 'test'\n ...\n# Subtest: count cards and every status row retain their own source context\nok 548 - count cards and every status row retain their own source context\n ---\n duration_ms: 5.818176\n type: 'test'\n ...\n# Subtest: repository and path filters combine with search and reset pagination\nok 549 - repository and path filters combine with search and reset pagination\n ---\n duration_ms: 23.563482\n type: 'test'\n ...\n# Subt" +2026-10-29T20:56:00.2724147Z CBZ_NODE_TAP_JSON 29 "est: query view shows its pin and the local byte-check command without a live ref control\nok 550 - query view shows its pin and the local byte-check command without a live ref control\n ---\n duration_ms: 0.342299\n type: 'test'\n ...\n# Subtest: brand assets exist and declare no scientific authority\nok 551 - brand assets exist and declare no scientific authority\n ---\n duration_ms: 2.942125\n type: 'test'\n ...\n# Subtest: dark and light text, links and state labels meet 4.5:1 contrast\nok 552 - dark and light text, links and state labels meet 4.5:1 contrast\n ---\n duration_ms: 1.139442\n type: 'test'\n ...\n# Subtest: buttons and focus ring have explicit contrast\nok 553 - buttons and focus ring have explicit contrast\n ---\n duration_ms: 0.395149\n type: 'test'\n ...\n# Subtest: palette tokens are actually applied, not decorative metadata\nok 554 - palette tokens are actually applied, not decorative metadata\n ---\n duration_ms: 7.020292\n type: 'test'\n ...\n# Subtest: all public pages load local branding after legacy styles with no CSP relaxation\nok 555 - all public pages load local branding after legacy styles with no CSP relaxation\n ---\n duration_ms: 1.575531\n type: 'test'\n ...\n# Subtest: light, reduced-motion, forced-color and print modes are supplied\nok 556 - light, reduced-motion, forced-color and print modes are supplied\n ---\n duration_ms: 0.569881\n type: 'test'\n ...\n# Subtest: status classes retain redundant patterns and non-brand acceptance color\nok 557 - status classes retain redundant patterns and non-brand acceptance color\n ---\n duration_ms: 0.883215\n type: 'test'\n ...\n# Subtest: decorative SVGs are self-contained, named and contain no scripts or external embeds\nok 558 - decorative SVGs are self-contained, named and contain no scripts or external embeds\n ---\n duration_ms: 0.77953\n type: 'test'\n ...\n# Subtest: body links remain underlined and keyboard focus is not removed\nok 559 - body links remain underlined and keyboard focus is not removed\n ---\n duration_ms: 1.209827\n type: 'test'\n ...\n# Subtest: navigation and grids can reflow on small screens\nok 560 - navigation and grids can reflow on small screens\n ---\n duration_ms: 1.468423\n type: 'test'\n ...\n# Subtest: styles do not hide evidence, scope disclaimers or refusal states\nok 561 - styles do not hide evidence, scope disclaimers or refusal states\n ---\n duration_ms: 1.218906\n type: 'test'\n ...\n# Subtest: low-contrast adversarial palette fails the same numerical threshold\nok 562 - low-contrast adversarial palette fails the same numerical threshold\n ---\n duration_ms: 0.957478\n type: 'test'\n ...\n# Subtest: the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\nok 563 - the museum figure focus ring keeps its 3px width, 4px offset and the clip room drawn for it\n ---\n duration_ms: 13.850645\n type: 'test'\n ...\n# Subtest: the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\nok 564 - the conditional-route card leaves room inside its clip for the focus ring of its summaries and links\n ---\n duration_ms: 16.471781\n type: 'test'\n ...\n# Subtest: valid source preserves exact strings\nok 565 - valid source preserves exact strings\n ---\n duration_ms: 42.817285\n type: 'test'\n ...\n# Subtest: local pinned data bypasses an older response while still verifying current bytes\nok 566 - local pinned data bypasses an older response while still verifying current bytes\n ---\n duration_ms: 1.938043\n type: 'test'\n ...\n# Subtest: digest mismatch refuses data\nok 567 - digest mismatch refuses data\n ---\n duration_ms: 1.647955\n type: 'test'\n ...\n# Subtest: byte count mismatch refuses data\nok 568 - byte count mismatch refuses data\n ---\n duration_ms: 0.431577\n type: 'test'\n ...\n# Subtest: mutable branch URL refused before request\nok 569 - mutable branch URL refused before request\n ---\n duration_ms: 0.177357\n type: 'test'\n ...\n# Subtest: HTTP failure gives no data\nok 570 - HTTP failure gives no data\n ---\n duration_ms: 0.317677\n type: 'test'\n ...\n# Subtest: " +2026-10-29T20:56:00.2750009Z CBZ_NODE_TAP_JSON 30 "status snapshot counts are selected rows\nok 571 - status snapshot counts are selected rows\n ---\n duration_ms: 0.938329\n type: 'test'\n ...\n# Subtest: unknown category refused\nok 572 - unknown category refused\n ---\n duration_ms: 0.288968\n type: 'test'\n ...\n# Subtest: changed count refused\nok 573 - changed count refused\n ---\n duration_ms: 0.159014\n type: 'test'\n ...\n# Subtest: promotion authority refused\nok 574 - promotion authority refused\n ---\n duration_ms: 0.100877\n type: 'test'\n ...\n# Subtest: coefficient endpoints remain distinct exactly\nok 575 - coefficient endpoints remain distinct exactly\n ---\n duration_ms: 0.239974\n type: 'test'\n ...\n# Subtest: float endpoints refused\nok 576 - float endpoints refused\n ---\n duration_ms: 0.164742\n type: 'test'\n ...\n# Subtest: coefficient acceptance flag cannot be flipped\nok 577 - coefficient acceptance flag cannot be flipped\n ---\n duration_ms: 0.10242\n type: 'test'\n ...\n# Subtest: catalog points at immutable public paths\nok 578 - catalog points at immutable public paths\n ---\n duration_ms: 0.228846\n type: 'test'\n ...\n# Subtest: catalog rejects private repo and traversal\nok 579 - catalog rejects private repo and traversal\n ---\n duration_ms: 0.223007\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different commit\nok 580 - correct bytes cannot be attributed to a different commit\n ---\n duration_ms: 0.241446\n type: 'test'\n ...\n# Subtest: correct bytes cannot be attributed to a different path\nok 581 - correct bytes cannot be attributed to a different path\n ---\n duration_ms: 0.293368\n type: 'test'\n ...\n# Subtest: Home explains the landscape before publication machinery\nok 582 - Home explains the landscape before publication machinery\n ---\n duration_ms: 1.427675\n type: 'test'\n ...\n# Subtest: Explore reaches a real local control and result before source publication\nok 583 - Explore reaches a real local control and result before source publication\n ---\n duration_ms: 0.500025\n type: 'test'\n ...\n# Subtest: Research opens with questions, explicit editorial date and an accessible preserved archive\nok 584 - Research opens with questions, explicit editorial date and an accessible preserved archive\n ---\n duration_ms: 1.244463\n type: 'test'\n ...\n# Subtest: Research reading map routes to all four preserved introductory paths\nok 585 - Research reading map routes to all four preserved introductory paths\n ---\n duration_ms: 1.733921\n type: 'test'\n ...\n# Subtest: Library routes present-day discovery separately from dated records\nok 586 - Library routes present-day discovery separately from dated records\n ---\n duration_ms: 0.59931\n type: 'test'\n ...\n# Subtest: Deep archived fragments reveal every ancestor without focus or history writes\nok 587 - Deep archived fragments reveal every ancestor without focus or history writes\n ---\n duration_ms: 1.314863\n type: 'test'\n ...\n# Subtest: Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\nok 588 - Repeated eligible same-page links reopen collapsed fragment ancestors without focus writes\n ---\n duration_ms: 0.649225\n type: 'test'\n ...\n# Subtest: Fragment restoration leaves modified, prevented and nonlocal navigation untouched\nok 589 - Fragment restoration leaves modified, prevented and nonlocal navigation untouched\n ---\n duration_ms: 0.624068\n type: 'test'\n ...\n# Subtest: current readers expose consistent native task links with real destinations\nok 590 - current readers expose consistent native task links with real destinations\n ---\n duration_ms: 14.729933\n type: 'test'\n ...\n# Subtest: missing and already-enhanced menus receive no extra listeners\nok 591 - missing and already-enhanced menus receive no extra listeners\n ---\n duration_ms: 0.234502\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 592 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 86.970079\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only throug" +2026-10-29T20:56:00.2776142Z CBZ_NODE_TAP_JSON 31 "h pagination and filtering\nok 593 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 61.27736\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 594 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 51.660721\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 595 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 81.443359\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 596 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 155.202882\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 597 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.623397\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 598 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.576537\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 599 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.193398\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 600 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 30.966228\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 601 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 28.05302\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 602 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.56287\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 603 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.928177\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 604 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 27.658751\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 605 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 20.449839\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 606 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.46515\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 607 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 25.222652\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 608 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 21.243312\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 609 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 42.362391\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 610 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 26.90665\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 611 - a refused confi" +2026-10-29T20:56:00.2802173Z CBZ_NODE_TAP_JSON 32 "guration still reveals the requested unavailable section\n ---\n duration_ms: 1.976847\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 612 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 22.338048\n type: 'test'\n ...\n# Subtest: reader movement between source settlement and final rendering prevents correction\nok 613 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 25.051246\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 614 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 26.502687\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 615 - a config refusal settles every pending source note\n ---\n duration_ms: 1.897608\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 616 - a query refusal preserves verified import custody information\n ---\n duration_ms: 21.463184\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 617 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 25.30369\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 618 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.275442\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 619 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 26.884908\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 620 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.727242\n type: 'test'\n ...\n# Subtest: a bookmarked combined search restores the one exact proof and source link\nok 621 - a bookmarked combined search restores the one exact proof and source link\n ---\n duration_ms: 22.002453\n type: 'test'\n ...\n# Subtest: typing preserves unrelated parameters, fragment and history state; share link only includes filters\nok 622 - typing preserves unrelated parameters, fragment and history state; share link only includes filters\n ---\n duration_ms: 29.830464\n type: 'test'\n ...\n# Subtest: popstate restores filters and pagination without rewriting history or stealing focus\nok 623 - popstate restores filters and pagination without rewriting history or stealing focus\n ---\n duration_ms: 36.770725\n type: 'test'\n ...\n# Subtest: clear filters recovers from no matches and resets pagination with search focus\nok 624 - clear filters recovers from no matches and resets pagination with search focus\n ---\n duration_ms: 32.980894\n type: 'test'\n ...\n# Subtest: unknown repository and duplicate parameters use documented first-value rules\nok 625 - unknown repository and duplicate parameters use documented first-value rules\n ---\n duration_ms: 26.394531\n type: 'test'\n ...\n# Subtest: encoded punctuation stays inert search text\nok 626 - encoded punctuation stays inert search text\n ---\n duration_ms: 21.072171\n type: 'test'\n ...\n# Subtest: catalog readiness uses the latest location while sources are still loading\nok 627 - catalog readiness uses the latest location while sources are still loading\n ---\n duration_ms: 28.388487\n type: 'test'\n ...\n# Subtest: an unavailable inventory keeps new controls unavailable and infers no results\nok 628 - an unavailable inventory keeps new controls unavailable and infers no results\n ---\n duration_ms: 4.867385\n type: 'test'\n ...\n# Subtest: a refused history update leaves filtering and the explicit search link usable\nok 629 - a refused history update leaves filtering and the explicit search link usable\n ---\n duration_ms: 32.197717\n type: 'test'\n ." +2026-10-29T20:56:00.2828224Z CBZ_NODE_TAP_JSON 33 "..\n# Subtest: restored empty filters preserve the ordinary initial 50-row catalog\nok 630 - restored empty filters preserve the ordinary initial 50-row catalog\n ---\n duration_ms: 24.248638\n type: 'test'\n ...\n# Subtest: malformed UTF-8 query escapes remain inert and are canonically encoded in the link\nok 631 - malformed UTF-8 query escapes remain inert and are canonically encoded in the link\n ---\n duration_ms: 22.529204\n type: 'test'\n ...\n# Subtest: every former landing section routes to its preserved workspace section\nok 632 - every former landing section routes to its preserved workspace section\n ---\n duration_ms: 0.658112\n type: 'test'\n ...\n# Subtest: new home fragments and untrusted fragments never become redirect destinations\nok 633 - new home fragments and untrusted fragments never become redirect destinations\n ---\n duration_ms: 0.12501\n type: 'test'\n ...\n# Subtest: browser entry follows a bookmarked section and future hash changes\nok 634 - browser entry follows a bookmarked section and future hash changes\n ---\n duration_ms: 2.308298\n type: 'test'\n ...\n# Subtest: the reader home does not preload the technical inventory or source viewer\nok 635 - the reader home does not preload the technical inventory or source viewer\n ---\n duration_ms: 0.246108\n type: 'test'\n ...\n# Subtest: verified source cards become reachable after asynchronous rendering\nok 636 - verified source cards become reachable after asynchronous rendering\n ---\n duration_ms: 1.74308\n type: 'test'\n ...\n# Subtest: saved source hands exact fields to the same-site reference builder\nok 637 - saved source hands exact fields to the same-site reference builder\n ---\n duration_ms: 3.45662\n type: 'test'\n ...\n# Subtest: Git blob alone never becomes a file SHA-256 or inferred author/review field\nok 638 - Git blob alone never becomes a file SHA-256 or inferred author/review field\n ---\n duration_ms: 0.968717\n type: 'test'\n ...\n# Subtest: valid punctuation and Unicode roundtrip without changing the literal Git path\nok 639 - valid punctuation and Unicode roundtrip without changing the literal Git path\n ---\n duration_ms: 0.894422\n type: 'test'\n ...\n# Subtest: valid reading-list paths outside the Cite contract return explicit unavailable signal\nok 640 - valid reading-list paths outside the Cite contract return explicit unavailable signal\n ---\n duration_ms: 0.98126\n type: 'test'\n ...\n# Subtest: queries and malformed or overprivileged imported records cannot become references\nok 641 - queries and malformed or overprivileged imported records cannot become references\n ---\n duration_ms: 1.273228\n type: 'test'\n ...\n# Subtest: imported notes refuse raw duplicate schema and source identity keys\nok 642 - imported notes refuse raw duplicate schema and source identity keys\n ---\n duration_ms: 4.76826\n type: 'test'\n ...\n# Subtest: source-button identity matches legal filename URI spellings without conflating path segments\nok 643 - source-button identity matches legal filename URI spellings without conflating path segments\n ---\n duration_ms: 0.498001\n type: 'test'\n ...\n# Subtest: valid entries retain exact identities and normalize only search whitespace\nok 644 - valid entries retain exact identities and normalize only search whitespace\n ---\n duration_ms: 3.181098\n type: 'test'\n ...\n# Subtest: entries require exact plain JSON data records with no inherited or executable fields\nok 645 - entries require exact plain JSON data records with no inherited or executable fields\n ---\n duration_ms: 3.036338\n type: 'test'\n ...\n# Subtest: unexpected keys never become imported links, statuses or inferred metadata\nok 646 - unexpected keys never become imported links, statuses or inferred metadata\n ---\n duration_ms: 0.740294\n type: 'test'\n ...\n# Subtest: required properties and string types cannot be coerced or defaulted\nok 647 - required properties and string types cannot be coerced or defaulted\n ---\n duration_ms: 2.242465\n type: 'test'\n ...\n# Subtest: source repositories and commits must name an allowed owner and exact immutable comm" +2026-10-29T20:56:00.2854189Z CBZ_NODE_TAP_JSON 34 "it\nok 648 - source repositories and commits must name an allowed owner and exact immutable commit\n ---\n duration_ms: 0.577496\n type: 'test'\n ...\n# Subtest: source paths reject absolute, dot, empty, backslash, URL and control segments\nok 649 - source paths reject absolute, dot, empty, backslash, URL and control segments\n ---\n duration_ms: 0.65932\n type: 'test'\n ...\n# Subtest: dates reject calendar overflow, offsets and invalid timestamp types\nok 650 - dates reject calendar overflow, offsets and invalid timestamp types\n ---\n duration_ms: 1.403174\n type: 'test'\n ...\n# Subtest: Git blobs, SHA-256 and byte counts retain distinct validated types\nok 651 - Git blobs, SHA-256 and byte counts retain distinct validated types\n ---\n duration_ms: 1.553173\n type: 'test'\n ...\n# Subtest: search filters are bounded inert text with collection-specific repositories\nok 652 - search filters are bounded inert text with collection-specific repositories\n ---\n duration_ms: 0.801152\n type: 'test'\n ...\n# Subtest: source links are reconstructed from exact pins with literal raw Git path encoding\nok 653 - source links are reconstructed from exact pins with literal raw Git path encoding\n ---\n duration_ms: 0.521863\n type: 'test'\n ...\n# Subtest: current search links omit every catalog and unrelated parameter\nok 654 - current search links omit every catalog and unrelated parameter\n ---\n duration_ms: 0.438104\n type: 'test'\n ...\n# Subtest: catalog search links omit current parameters and roundtrip all catalog filters\nok 655 - catalog search links omit current parameters and roundtrip all catalog filters\n ---\n duration_ms: 0.315869\n type: 'test'\n ...\n# Subtest: blank saved searches restore their collection all-files view\nok 656 - blank saved searches restore their collection all-files view\n ---\n duration_ms: 0.29288\n type: 'test'\n ...\n# Subtest: entry identity separates source pins and normalized collection search contexts\nok 657 - entry identity separates source pins and normalized collection search contexts\n ---\n duration_ms: 0.592607\n type: 'test'\n ...\n# Subtest: list parsing rejects malformed JSON, schema drift and unexpected root fields\nok 658 - list parsing rejects malformed JSON, schema drift and unexpected root fields\n ---\n duration_ms: 2.144637\n type: 'test'\n ...\n# Subtest: 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\nok 659 - 128 KiB input ceiling uses UTF-8 bytes before JSON parsing\n ---\n duration_ms: 7.125024\n type: 'test'\n ...\n# Subtest: merge validates every entry before returning and leaves inputs unchanged\nok 660 - merge validates every entry before returning and leaves inputs unchanged\n ---\n duration_ms: 0.691285\n type: 'test'\n ...\n# Subtest: deduplication keeps first context and enriches absent identity metadata\nok 661 - deduplication keeps first context and enriches absent identity metadata\n ---\n duration_ms: 0.536269\n type: 'test'\n ...\n# Subtest: conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\nok 662 - conflicting byte, Git blob or SHA-256 identity metadata rejects the entire merge\n ---\n duration_ms: 1.02036\n type: 'test'\n ...\n# Subtest: capacity counts unique entries and overflow is atomic\nok 663 - capacity counts unique entries and overflow is atomic\n ---\n duration_ms: 6.406272\n type: 'test'\n ...\n# Subtest: exported JSON carries only strict schema data and roundtrips identity types\nok 664 - exported JSON carries only strict schema data and roundtrips identity types\n ---\n duration_ms: 0.547715\n type: 'test'\n ...\n# Subtest: export rejects oversized identities instead of creating an unimportable file\nok 665 - export rejects oversized identities instead of creating an unimportable file\n ---\n duration_ms: 1.708668\n type: 'test'\n ...\n# Subtest: combined UTF-8 export size rejects additions atomically even below entry capacity\nok 666 - combined UTF-8 export size rejects additions atomically even below entry capacity\n ---\n duration_ms: 10.136006\n type: 'test'\n ...\n# Subtest: comparison model is implemented\nok 667 - compariso" +2026-10-29T20:56:00.2880219Z CBZ_NODE_TAP_JSON 35 "n model is implemented\n ---\n duration_ms: 6.169833\n type: 'test'\n ...\n# Subtest: literal fields preserve array order and number versus boolean\nok 668 - literal fields preserve array order and number versus boolean\n ---\n duration_ms: 0.462909\n type: 'test'\n ...\n# Subtest: real retained archives distinguish pin moves from blob/byte moves\nok 669 - real retained archives distinguish pin moves from blob/byte moves\n ---\n duration_ms: 338.833007\n type: 'test'\n ...\n# Subtest: payload integrity refuses byte and digest mismatch\nok 670 - payload integrity refuses byte and digest mismatch\n ---\n duration_ms: 2.055894\n type: 'test'\n ...\n# Subtest: unsafe public paths and unsupported versions refuse\nok 671 - unsafe public paths and unsupported versions refuse\n ---\n duration_ms: 0.648992\n type: 'test'\n ...\n# Subtest: duplicate inventory identities refuse; complete edge multiplicity survives\nok 672 - duplicate inventory identities refuse; complete edge multiplicity survives\n ---\n duration_ms: 46.238301\n type: 'test'\n ...\n# Subtest: schema2 validates projection and refuses to describe omitted inventory as deleted\nok 673 - schema2 validates projection and refuses to describe omitted inventory as deleted\n ---\n duration_ms: 35.166486\n type: 'test'\n ...\n# Subtest: registry binds selected own descriptors and metadata publication\nok 674 - registry binds selected own descriptors and metadata publication\n ---\n duration_ms: 4.633858\n type: 'test'\n ...\n# Subtest: bounded acquisition refuses oversized responses and follows no redirects\nok 675 - bounded acquisition refuses oversized responses and follows no redirects\n ---\n duration_ms: 18.39765\n type: 'test'\n ...\n# Subtest: publication acquisition verifies registry hash before admitting choices\nok 676 - publication acquisition verifies registry hash before admitting choices\n ---\n duration_ms: 61.412528\n type: 'test'\n ...\n# Subtest: page advertised identity refuses a different publication\nok 677 - page advertised identity refuses a different publication\n ---\n duration_ms: 5.368194\n type: 'test'\n ...\n# Subtest: decoded byte identity survives HTTP content encoding\nok 678 - decoded byte identity survives HTTP content encoding\n ---\n duration_ms: 0.903268\n type: 'test'\n ...\n# Subtest: raw duplicate node IDs refuse even when exact byte digest matches\nok 679 - raw duplicate node IDs refuse even when exact byte digest matches\n ---\n duration_ms: 7.447229\n type: 'test'\n ...\n# Subtest: strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\nok 680 - strict raw JSON refuses escaped equivalent keys and accepts scoped nested keys\n ---\n duration_ms: 1.017664\n type: 'test'\n ...\n# Subtest: raw duplicate metadata and hash-matching registry keys refuse\nok 681 - raw duplicate metadata and hash-matching registry keys refuse\n ---\n duration_ms: 10.446459\n type: 'test'\n ...\n# Subtest: producer-admitted identical current/archive bytes retain distinct typed selections\nok 682 - producer-admitted identical current/archive bytes retain distinct typed selections\n ---\n duration_ms: 78.685606\n type: 'test'\n ...\n# Subtest: material selection labels distinguish archive semantic ID from exact payload digest and bytes\nok 683 - material selection labels distinguish archive semantic ID from exact payload digest and bytes\n ---\n duration_ms: 0.54762\n type: 'test'\n ...\n# Subtest: relative links resolve from the quoting source directory and commit, not the proof or live branch\nok 684 - relative links resolve from the quoting source directory and commit, not the proof or live branch\n ---\n duration_ms: 1.277884\n type: 'test'\n ...\n# Subtest: quoted exact review comments and intentionally mutable source pointers keep their identities\nok 685 - quoted exact review comments and intentionally mutable source pointers keep their identities\n ---\n duration_ms: 0.384382\n type: 'test'\n ...\n# Subtest: unrecognized schemes, foreign destinations, encoded traversal and malformed identities stay literal\nok 686 - unrecognized schemes, foreign destinations, encoded " +2026-10-29T20:56:00.2906370Z CBZ_NODE_TAP_JSON 36 "traversal and malformed identities stay literal\n ---\n duration_ms: 0.599302\n type: 'test'\n ...\n# Subtest: source HTML is always text and unsupported Markdown retains its literal spelling\nok 687 - source HTML is always text and unsupported Markdown retains its literal spelling\n ---\n duration_ms: 1.838046\n type: 'test'\n ...\n# Subtest: every committed quote retains all wording and its original source independently of formatting\nok 688 - every committed quote retains all wording and its original source independently of formatting\n ---\n duration_ms: 6.814379\n type: 'test'\n ...\n# Subtest: unsupported parenthesized destinations and Markdown link titles stay wholly literal\nok 689 - unsupported parenthesized destinations and Markdown link titles stay wholly literal\n ---\n duration_ms: 1.192997\n type: 'test'\n ...\n# Subtest: builds an immutable repository or file reference without attributing authorship\nok 690 - builds an immutable repository or file reference without attributing authorship\n ---\n duration_ms: 3.767042\n type: 'test'\n ...\n# Subtest: rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\nok 691 - rejects mutable refs, unsupported repositories and ambiguous or unsafe paths\n ---\n duration_ms: 1.566284\n type: 'test'\n ...\n# Subtest: allows unicode file names and unambiguous encoded URL delimiters\nok 692 - allows unicode file names and unambiguous encoded URL delimiters\n ---\n duration_ms: 0.316477\n type: 'test'\n ...\n# Subtest: real form wiring clears stale output and announces a corrected reference\nok 693 - real form wiring clears stale output and announces a corrected reference\n ---\n duration_ms: 2.200086\n type: 'test'\n ...\n# Subtest: coefficient exports preserve exact narrow decimal enclosures and pinned identity\nok 694 - coefficient exports preserve exact narrow decimal enclosures and pinned identity\n ---\n duration_ms: 1.114493\n type: 'test'\n ...\n# Subtest: coefficient exports retain strict SIDE24 bounds and paste-ready display math\nok 695 - coefficient exports retain strict SIDE24 bounds and paste-ready display math\n ---\n duration_ms: 0.466573\n type: 'test'\n ...\n# Subtest: coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\nok 696 - coefficient exports refuse rounded numbers, reversed enclosures and mutable sources\n ---\n duration_ms: 0.273914\n type: 'test'\n ...\n# Subtest: interval copying locks all formats until the actual write finishes and handles denial\nok 697 - interval copying locks all formats until the actual write finishes and handles denial\n ---\n duration_ms: 0.876128\n type: 'test'\n ...\n# Subtest: copy sends exactly the displayed pinned commands and never executes them\nok 698 - copy sends exactly the displayed pinned commands and never executes them\n ---\n duration_ms: 0.790017\n type: 'test'\n ...\n# Subtest: clipboard refusal provides manual fallback without success\nok 699 - clipboard refusal provides manual fallback without success\n ---\n duration_ms: 0.838788\n type: 'test'\n ...\n# Subtest: unsupported clipboard leaves the command block readable and gives fallback\nok 700 - unsupported clipboard leaves the command block readable and gives fallback\n ---\n duration_ms: 0.267099\n type: 'test'\n ...\n# Subtest: reproduction controls have static fallback and an explicit live announcement\nok 701 - reproduction controls have static fallback and an explicit live announcement\n ---\n duration_ms: 11.892989\n type: 'test'\n ...\n# Subtest: optional file digest is preserved as supplied metadata with explicit unverified JSON\nok 702 - optional file digest is preserved as supplied metadata with explicit unverified JSON\n ---\n duration_ms: 0.347354\n type: 'test'\n ...\n# Subtest: rejects misleading or malformed digest identities\nok 703 - rejects misleading or malformed digest identities\n ---\n duration_ms: 0.548964\n type: 'test'\n ...\n# Subtest: reference links roundtrip exact unicode identity and preserve unrelated URL fields\nok 704 - reference links roundtrip exact unicode identity and preserve unrelated URL fields\n " +2026-10-29T20:56:00.2932632Z CBZ_NODE_TAP_JSON 37 " ---\n duration_ms: 0.909788\n type: 'test'\n ...\n# Subtest: malformed shared references are refused without partial source identity\nok 705 - malformed shared references are refused without partial source identity\n ---\n duration_ms: 0.553787\n type: 'test'\n ...\n# Subtest: reference workflow copies selected representations and invalidates stale outputs\nok 706 - reference workflow copies selected representations and invalidates stale outputs\n ---\n duration_ms: 0.761916\n type: 'test'\n ...\n# Subtest: shared reference restoration and Back reject invalid state without publishing old output\nok 707 - shared reference restoration and Back reject invalid state without publishing old output\n ---\n duration_ms: 0.561842\n type: 'test'\n ...\n# Subtest: clipboard rejection and delayed completion do not claim a stale copy succeeded\nok 708 - clipboard rejection and delayed completion do not claim a stale copy succeeded\n ---\n duration_ms: 0.729008\n type: 'test'\n ...\n# Subtest: rejects malformed percent and UTF-8 links rather than substituting source path bytes\nok 709 - rejects malformed percent and UTF-8 links rather than substituting source path bytes\n ---\n duration_ms: 0.399156\n type: 'test'\n ...\n# Subtest: a pending clipboard operation prevents a newer reference from overtaking it\nok 710 - a pending clipboard operation prevents a newer reference from overtaking it\n ---\n duration_ms: 0.448014\n type: 'test'\n ...\n# Subtest: BibTeX is an honest source template with exact immutable identity and optional supplied digest\nok 711 - BibTeX is an honest source template with exact immutable identity and optional supplied digest\n ---\n duration_ms: 0.348018\n type: 'test'\n ...\n# Subtest: BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\nok 712 - BibTeX escapes accepted path specials as literal text without changing Unicode or JSON identity\n ---\n duration_ms: 0.307182\n type: 'test'\n ...\n# Subtest: BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\nok 713 - BibTeX renders, copies, clears on edits and restores with Back/Forward source identity\n ---\n duration_ms: 0.826989\n type: 'test'\n ...\n# Subtest: BibTeX shares the copy lock with every format and stale completion cannot announce success\nok 714 - BibTeX shares the copy lock with every format and stale completion cannot announce success\n ---\n duration_ms: 0.620588\n type: 'test'\n ...\n# Subtest: denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\nok 715 - denied and unavailable clipboard preserve selectable BibTeX and explain manual fallback\n ---\n duration_ms: 0.485106\n type: 'test'\n ...\n# Subtest: legal unmatched and nested path braces produce parser-safe literal text\nok 716 - legal unmatched and nested path braces produce parser-safe literal text\n ---\n duration_ms: 15.138776\n type: 'test'\n ...\n# BibTeX binary unavailable; literal/identity assertions ran, real-parser integration omitted.\n# Subtest: sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\nok 717 - sanitized export keeps current labels, concrete styles, opaque background and safely escaped metadata\n ---\n duration_ms: 4.312942\n type: 'test'\n ...\n# Subtest: exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\nok 718 - exact expected nodes reject missing geometry, stale coordinates, labels, classes and root state\n ---\n duration_ms: 1.602592\n type: 'test'\n ...\n# Subtest: unsupported resources and unbounded or invisible styles refuse serialization\nok 719 - unsupported resources and unbounded or invisible styles refuse serialization\n ---\n duration_ms: 2.548744\n type: 'test'\n ...\n# Subtest: capture reads displayed primitives and their concrete computed styles\nok 720 - capture reads displayed primitives and their concrete computed styles\n ---\n duration_ms: 1.755535\n type: 'test'\n ...\n# Subtest: capture refuses hidden root or primitives, nested content, effects and non-SVG children\nok " +2026-10-29T20:56:00.2958947Z CBZ_NODE_TAP_JSON 38 "721 - capture refuses hidden root or primitives, nested content, effects and non-SVG children\n ---\n duration_ms: 1.219138\n type: 'test'\n ...\n# Subtest: capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\nok 722 - capture refuses CSS numeric geometry that overrides current circle and rectangle attributes\n ---\n duration_ms: 1.244119\n type: 'test'\n ...\n# Subtest: rounded rectangle height requires a matching native used-height witness\nok 723 - rounded rectangle height requires a matching native used-height witness\n ---\n duration_ms: 0.844035\n type: 'test'\n ...\n# Subtest: captured Chromium attribute parsing need not equal JavaScript Float32 conversion\nok 724 - captured Chromium attribute parsing need not equal JavaScript Float32 conversion\n ---\n duration_ms: 0.314061\n type: 'test'\n ...\n# Subtest: native height equality cannot admit real CSS overrides sharing a rounded string\nok 725 - native height equality cannot admit real CSS overrides sharing a rounded string\n ---\n duration_ms: 1.879121\n type: 'test'\n ...\n# Subtest: rectangle height witness is finite, bounded and fail-closed\nok 726 - rectangle height witness is finite, bounded and fail-closed\n ---\n duration_ms: 3.855344\n type: 'test'\n ...\n# Subtest: native representation check is bounded to positive rectangle height roundoff\nok 727 - native representation check is bounded to positive rectangle height roundoff\n ---\n duration_ms: 1.802402\n type: 'test'\n ...\n# Subtest: capture refuses auto rectangle dimensions that suppress otherwise current native geometry\nok 728 - capture refuses auto rectangle dimensions that suppress otherwise current native geometry\n ---\n duration_ms: 0.381119\n type: 'test'\n ...\n# Subtest: capture compares effective auto corner radii and preserves native rounded and square rectangles\nok 729 - capture compares effective auto corner radii and preserves native rounded and square rectangles\n ---\n duration_ms: 0.483835\n type: 'test'\n ...\n# Subtest: capture refuses root opacity that would be lost from the opaque standalone export\nok 730 - capture refuses root opacity that would be lost from the opaque standalone export\n ---\n duration_ms: 0.548171\n type: 'test'\n ...\n# Subtest: capture token-compares computed path geometry and refuses hidden or overridden paths\nok 731 - capture token-compares computed path geometry and refuses hidden or overridden paths\n ---\n duration_ms: 1.316887\n type: 'test'\n ...\n# Subtest: manual fallback exposes complete current text and blocks unavailable clipboard writes\nok 732 - manual fallback exposes complete current text and blocks unavailable clipboard writes\n ---\n duration_ms: 0.477691\n type: 'test'\n ...\n# Subtest: pending copies serialize writes and never claim success after control changes\nok 733 - pending copies serialize writes and never claim success after control changes\n ---\n duration_ms: 0.293384\n type: 'test'\n ...\n# Subtest: refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\nok 734 - refusal and failed citation builds invalidate pending writes without reviving cleared fallback text\n ---\n duration_ms: 0.491162\n type: 'test'\n ...\n# Subtest: current clipboard success and denial report only the current figure state\nok 735 - current clipboard success and denial report only the current figure state\n ---\n duration_ms: 0.398852\n type: 'test'\n ...\n# Subtest: workspace refreshes configuration before validating current source pins\nok 736 - workspace refreshes configuration before validating current source pins\n ---\n duration_ms: 90.73017\n type: 'test'\n ...\n# Subtest: catalog hashes remain metadata-only through pagination and filtering\nok 737 - catalog hashes remain metadata-only through pagination and filtering\n ---\n duration_ms: 50.145919\n type: 'test'\n ...\n# Subtest: initial Library navigation is restored only after delayed layout and failed sources settle\nok 738 - initial Library navigation is restored only after delayed layout and failed sources settle\n ---\n duration_ms: 30." +2026-10-29T20:56:00.2985471Z CBZ_NODE_TAP_JSON 39 "643767\n type: 'test'\n ...\n# Subtest: existing section bookmarks all receive keyboard focus after rendering\nok 739 - existing section bookmarks all receive keyboard focus after rendering\n ---\n duration_ms: 79.233913\n type: 'test'\n ...\n# Subtest: empty, unknown and malformed fragments never trigger a correction\nok 740 - empty, unknown and malformed fragments never trigger a correction\n ---\n duration_ms: 149.010123\n type: 'test'\n ...\n# Subtest: reader wheel during loading prevents delayed scrolling and focus stealing\nok 741 - reader wheel during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 25.120455\n type: 'test'\n ...\n# Subtest: reader touchstart during loading prevents delayed scrolling and focus stealing\nok 742 - reader touchstart during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.951669\n type: 'test'\n ...\n# Subtest: reader touchmove during loading prevents delayed scrolling and focus stealing\nok 743 - reader touchmove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.787501\n type: 'test'\n ...\n# Subtest: reader keydown during loading prevents delayed scrolling and focus stealing\nok 744 - reader keydown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 32.926052\n type: 'test'\n ...\n# Subtest: reader pointerdown during loading prevents delayed scrolling and focus stealing\nok 745 - reader pointerdown during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 26.05152\n type: 'test'\n ...\n# Subtest: reader pointermove during loading prevents delayed scrolling and focus stealing\nok 746 - reader pointermove during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 22.979226\n type: 'test'\n ...\n# Subtest: reader focusin during loading prevents delayed scrolling and focus stealing\nok 747 - reader focusin during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.939265\n type: 'test'\n ...\n# Subtest: reader hashchange during loading prevents delayed scrolling and focus stealing\nok 748 - reader hashchange during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 24.891583\n type: 'test'\n ...\n# Subtest: reader popstate during loading prevents delayed scrolling and focus stealing\nok 749 - reader popstate during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 21.250056\n type: 'test'\n ...\n# Subtest: reader pagehide during loading prevents delayed scrolling and focus stealing\nok 750 - reader pagehide during loading prevents delayed scrolling and focus stealing\n ---\n duration_ms: 23.604725\n type: 'test'\n ...\n# Subtest: unpressed pointer movement while sources load does not cancel Library navigation\nok 751 - unpressed pointer movement while sources load does not cancel Library navigation\n ---\n duration_ms: 25.277741\n type: 'test'\n ...\n# Subtest: a changed fragment is not restored even without a hashchange event\nok 752 - a changed fragment is not restored even without a hashchange event\n ---\n duration_ms: 20.853692\n type: 'test'\n ...\n# Subtest: changing a fragment and returning to it leaves the pending correction cancelled\nok 753 - changing a fragment and returning to it leaves the pending correction cancelled\n ---\n duration_ms: 23.441263\n type: 'test'\n ...\n# Subtest: browser fragment scrolling and layout shifts do not count as reader intent\nok 754 - browser fragment scrolling and layout shifts do not count as reader intent\n ---\n duration_ms: 24.046012\n type: 'test'\n ...\n# Subtest: a refused configuration still reveals the requested unavailable section\nok 755 - a refused configuration still reveals the requested unavailable section\n ---\n duration_ms: 4.396765\n type: 'test'\n ...\n# Subtest: a missing target is harmless after loading and removes temporary observers\nok 756 - a missing target is harmless after loading and removes temporary observers\n ---\n duration_ms: 20.929043\n type: 'test'\n ...\n# Subtest: reader movement between source settlem" +2026-10-29T20:56:00.3004085Z CBZ_NODE_TAP_JSON 40 "ent and final rendering prevents correction\nok 757 - reader movement between source settlement and final rendering prevents correction\n ---\n duration_ms: 23.548707\n type: 'test'\n ...\n# Subtest: an import refusal does not leave the separate query source loading forever\nok 758 - an import refusal does not leave the separate query source loading forever\n ---\n duration_ms: 24.274763\n type: 'test'\n ...\n# Subtest: a config refusal settles every pending source note\nok 759 - a config refusal settles every pending source note\n ---\n duration_ms: 1.953889\n type: 'test'\n ...\n# Subtest: a query refusal preserves verified import custody information\nok 760 - a query refusal preserves verified import custody information\n ---\n duration_ms: 20.667672\n type: 'test'\n ...\n# Subtest: a successful query remains usable when the unrelated import source fails\nok 761 - a successful query remains usable when the unrelated import source fails\n ---\n duration_ms: 23.749502\n type: 'test'\n ...\n# Subtest: the static proof link names the pinned proof that the script also assigns\nok 762 - the static proof link names the pinned proof that the script also assigns\n ---\n duration_ms: 0.324236\n type: 'test'\n ...\n# Subtest: a refused pinned source names the pinned GitHub route beside the refusal\nok 763 - a refused pinned source names the pinned GitHub route beside the refusal\n ---\n duration_ms: 25.063653\n type: 'test'\n ...\n# Subtest: a fetch that throws is reported as an unreachable pinned source, and other errors pass through\nok 764 - a fetch that throws is reported as an unreachable pinned source, and other errors pass through\n ---\n duration_ms: 1.548798\n type: 'test'\n ...\n1..764\n# tests 764\n# suites 0\n# pass 764\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5305.042682\n" +2026-10-29T20:56:00.3110348Z ##[group]Run actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 +2026-10-29T20:56:00.3110754Z with: +2026-10-29T20:56:00.3110921Z name: cbz-node-result +2026-10-29T20:56:00.3111157Z path: /home/runner/work/_temp/cbz-node-result +2026-10-29T20:56:00.3111424Z if-no-files-found: error +2026-10-29T20:56:00.3111631Z compression-level: 6 +2026-10-29T20:56:00.3111822Z overwrite: false +2026-10-29T20:56:00.3112007Z include-hidden-files: false +2026-10-29T20:56:00.3112213Z archive: true +2026-10-29T20:56:00.3112388Z env: +2026-10-29T20:56:00.3112611Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.3113010Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib/pkgconfig +2026-10-29T20:56:00.3113411Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.3113770Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.3114176Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/arm64 +2026-10-29T20:56:00.3114834Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/arm64/lib +2026-10-29T20:56:00.3115138Z ##[endgroup] +2026-10-29T20:56:00.4597887Z With the provided path, there will be 41 files uploaded +2026-10-29T20:56:00.4604233Z Artifact name is valid! +2026-10-29T20:56:00.4604658Z Root directory input is valid! +2026-10-29T20:56:00.7476242Z Uploading artifact: cbz-node-result.zip +2026-10-29T20:56:00.7509286Z Beginning upload of artifact content to blob storage +2026-10-29T20:56:01.1984375Z Uploaded bytes 504952 +2026-10-29T20:56:01.2455277Z Finished uploading artifact content to blob storage! +2026-10-29T20:56:01.2455987Z SHA256 digest of uploaded artifact is 6509a78ba032bb49d7eedbb7da2f887836b6e9aa7be1020df454198a93bec16b +2026-10-29T20:56:01.2456478Z Finalizing artifact upload +2026-10-29T20:56:01.7461432Z Artifact cbz-node-result successfully finalized. Artifact ID 12932177690 +2026-10-29T20:56:01.7462139Z Artifact cbz-node-result has been successfully uploaded! Final size is 504952 bytes. Artifact ID is 12932177690 +2026-10-29T20:56:01.7465754Z Artifact download URL: https://github.com/d6g8k5htny-coder/main/actions/runs/40952898593/artifacts/12932177690 +2026-10-29T20:56:01.7678913Z Post job cleanup. +2026-10-29T20:56:01.8438801Z [command]/usr/bin/git version +2026-10-29T20:56:01.8488743Z git version 2.56.0 +2026-10-29T20:56:01.8529061Z Temporarily overriding HOME='/home/runner/work/_temp/59b25de8-6fc2-48f7-a5fc-96d485c6c651' before making global git config changes +2026-10-29T20:56:01.8530280Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T20:56:01.8531026Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T20:56:01.8557019Z Removing SSH command configuration +2026-10-29T20:56:01.8564774Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T20:56:01.8611103Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T20:56:01.8880868Z Removing HTTP extra header +2026-10-29T20:56:01.8886907Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T20:56:01.8930928Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T20:56:01.9189856Z Removing includeIf entries pointing to credentials config files +2026-10-29T20:56:01.9196470Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T20:56:01.9240940Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T20:56:01.9650533Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/normal.log b/cbz/evidence/cold-start-node/red/normal.log new file mode 100644 index 000000000..5631e668b --- /dev/null +++ b/cbz/evidence/cold-start-node/red/normal.log @@ -0,0 +1,734 @@ +2026-10-29T19:43:40.2655329Z Current runner version: '2.338.0' +2026-10-29T19:43:40.2683605Z ##[group]Runner Image Provisioner +2026-10-29T19:43:40.2684508Z Hosted Compute Agent +2026-10-29T19:43:40.2685322Z Version: 20261021.618 +2026-10-29T19:43:40.2686054Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:43:40.2686894Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:43:40.2687808Z Worker ID: {c4fddc20-8652-48e4-80bd-ae50e58578a9} +2026-10-29T19:43:40.2688608Z Region: westcentralus +2026-10-29T19:43:40.2689311Z Cloud: Azure +2026-10-29T19:43:40.2689907Z ##[endgroup] +2026-10-29T19:43:40.2691716Z ##[group]Operating System +2026-10-29T19:43:40.2692422Z Ubuntu +2026-10-29T19:43:40.2693036Z 24.04.5 +2026-10-29T19:43:40.2693683Z LTS +2026-10-29T19:43:40.2694304Z ##[endgroup] +2026-10-29T19:43:40.2694935Z ##[group]Runner Image +2026-10-29T19:43:40.2695603Z Image: ubuntu-24.04 +2026-10-29T19:43:40.2696269Z Version: 20261025.353.1 +2026-10-29T19:43:40.2697907Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:43:40.2699561Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:43:40.2700592Z ##[endgroup] +2026-10-29T19:43:40.2702168Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:43:40.2704628Z Contents: read +2026-10-29T19:43:40.2705274Z Metadata: read +2026-10-29T19:43:40.2705988Z ##[endgroup] +2026-10-29T19:43:40.2708561Z Secret source: Actions +2026-10-29T19:43:40.2709698Z Cache mode: write +2026-10-29T19:43:40.2710672Z Prepare workflow directory +2026-10-29T19:43:40.3079255Z Prepare all required actions +2026-10-29T19:43:40.3129120Z Getting action download info +2026-10-29T19:43:40.6099549Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:43:40.6980877Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:43:40.9131486Z Complete job name: controls (0) +2026-10-29T19:43:40.9993591Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:43:40.9994631Z with: +2026-10-29T19:43:40.9995095Z persist-credentials: false +2026-10-29T19:43:40.9995608Z fetch-depth: 0 +2026-10-29T19:43:40.9996077Z repository: d6g8k5htny-coder/main +2026-10-29T19:43:41.0000308Z token: *** +2026-10-29T19:43:41.0000763Z ssh-strict: true +2026-10-29T19:43:41.0001211Z ssh-user: git +2026-10-29T19:43:41.0001647Z clean: true +2026-10-29T19:43:41.0002111Z sparse-checkout-cone-mode: true +2026-10-29T19:43:41.0002644Z fetch-tags: false +2026-10-29T19:43:41.0003097Z show-progress: true +2026-10-29T19:43:41.0003553Z lfs: false +2026-10-29T19:43:41.0003979Z submodules: false +2026-10-29T19:43:41.0004436Z set-safe-directory: true +2026-10-29T19:43:41.0004950Z allow-unsafe-pr-checkout: false +2026-10-29T19:43:41.0005668Z ##[endgroup] +2026-10-29T19:43:41.2395608Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:43:41.2398411Z ##[group]Getting Git version info +2026-10-29T19:43:41.2399475Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:43:41.2401032Z [command]/usr/bin/git version +2026-10-29T19:43:41.2474527Z git version 2.56.0 +2026-10-29T19:43:41.2496878Z ##[endgroup] +2026-10-29T19:43:41.2510476Z Temporarily overriding HOME='/home/runner/work/_temp/a20e99ea-a50a-4d8c-a69d-059c9ca090fe' before making global git config changes +2026-10-29T19:43:41.2512849Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:43:41.2516662Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:43:41.2568058Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:43:41.2572906Z ##[group]Determining repository object format +2026-10-29T19:43:41.2574443Z ##[endgroup] +2026-10-29T19:43:41.2575656Z ##[group]Initializing the repository +2026-10-29T19:43:41.2578964Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:43:41.2675192Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:43:41.2677111Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:43:41.2678939Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:43:41.2680200Z hint: call: +2026-10-29T19:43:41.2681101Z hint: +2026-10-29T19:43:41.2681968Z hint: git config --global init.defaultBranch +2026-10-29T19:43:41.2683034Z hint: +2026-10-29T19:43:41.2684493Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:43:41.2685839Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:43:41.2686605Z hint: +2026-10-29T19:43:41.2687044Z hint: git branch -m +2026-10-29T19:43:41.2687741Z hint: +2026-10-29T19:43:41.2688417Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:43:41.2689408Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:43:41.2701759Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:43:41.2751305Z ##[endgroup] +2026-10-29T19:43:41.2752588Z ##[group]Disabling automatic garbage collection +2026-10-29T19:43:41.2755016Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:43:41.2827807Z ##[endgroup] +2026-10-29T19:43:41.2829336Z ##[group]Setting up auth +2026-10-29T19:43:41.2830294Z Removing SSH command configuration +2026-10-29T19:43:41.2835515Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:43:41.2877299Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:43:41.3343314Z Removing HTTP extra header +2026-10-29T19:43:41.3345692Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:43:41.3355192Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:43:41.3676227Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:43:41.3683838Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:43:41.3760190Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:43:41.4039744Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:43:41.4094014Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:41.4141498Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:41.4189892Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:41.4237238Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:41.4281914Z ##[endgroup] +2026-10-29T19:43:41.4282693Z ##[group]Fetching the repository +2026-10-29T19:43:41.4289062Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T19:43:52.6689589Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:43:52.6696488Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T19:43:52.6699512Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T19:43:52.6702231Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T19:43:52.6705269Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T19:43:52.6709239Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T19:43:52.6712574Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T19:43:52.6715014Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T19:43:52.6717335Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:52.6720900Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T19:43:52.6724723Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T19:43:52.6728922Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T19:43:52.6733054Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T19:43:52.6737655Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T19:43:52.6741409Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T19:43:52.6745276Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T19:43:52.6749607Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T19:43:52.6754141Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T19:43:52.6757331Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T19:43:52.6760737Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T19:43:52.6764169Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T19:43:52.6768038Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T19:43:52.6771348Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T19:43:52.6774292Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T19:43:52.6777420Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T19:43:52.6780770Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T19:43:52.6783972Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T19:43:52.6786994Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T19:43:52.6790345Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T19:43:52.6794940Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T19:43:52.6799904Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T19:43:52.6805260Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T19:43:52.6809312Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T19:43:52.6812761Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T19:43:52.6816159Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T19:43:52.6819868Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T19:43:52.6823389Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T19:43:52.6826769Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T19:43:52.6830547Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T19:43:52.6834392Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T19:43:52.6838317Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T19:43:52.6841157Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T19:43:52.6843654Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T19:43:52.6846804Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T19:43:52.6851161Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T19:43:52.6855881Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T19:43:52.6859550Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T19:43:52.6862881Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T19:43:52.6865518Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T19:43:52.6868441Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T19:43:52.6871122Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T19:43:52.6873959Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T19:43:52.6876923Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T19:43:52.6880002Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T19:43:52.6882809Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T19:43:52.6885813Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T19:43:52.6889226Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T19:43:52.6892535Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T19:43:52.6895951Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T19:43:52.6899053Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T19:43:52.6902235Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T19:43:52.6905754Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T19:43:52.6909232Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T19:43:52.6912239Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T19:43:52.6915221Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T19:43:52.6918762Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T19:43:52.6920983Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T19:43:52.6923434Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T19:43:52.6927138Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T19:43:52.6930855Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T19:43:52.6934975Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T19:43:52.6937714Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T19:43:52.6940085Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T19:43:52.6942619Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T19:43:52.6945497Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T19:43:52.6948253Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T19:43:52.6951220Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T19:43:52.6954281Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T19:43:52.6957139Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T19:43:52.6959851Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T19:43:52.6963273Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T19:43:52.6966504Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T19:43:52.6970027Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T19:43:52.6973548Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T19:43:52.6977093Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T19:43:52.6981304Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T19:43:52.6984773Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T19:43:52.6988245Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T19:43:52.6991429Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T19:43:52.6994596Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T19:43:52.6998097Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T19:43:52.7001359Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T19:43:52.7004651Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T19:43:52.7008178Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T19:43:52.7011245Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T19:43:52.7014353Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T19:43:52.7017837Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T19:43:52.7020727Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T19:43:52.7023469Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T19:43:52.7026355Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T19:43:52.7029608Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T19:43:52.7032970Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T19:43:52.7036509Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T19:43:52.7040353Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T19:43:52.7043556Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T19:43:52.7046927Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T19:43:52.7050148Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T19:43:52.7052650Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T19:43:52.7055803Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T19:43:52.7060077Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T19:43:52.7063857Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T19:43:52.7067433Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T19:43:52.7070679Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T19:43:52.7073146Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T19:43:52.7076073Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T19:43:52.7079089Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T19:43:52.7081835Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T19:43:52.7084823Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T19:43:52.7087618Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T19:43:52.7090501Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T19:43:52.7093219Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T19:43:52.7095740Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T19:43:52.7098441Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T19:43:52.7101047Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T19:43:52.7104458Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T19:43:52.7108062Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T19:43:52.7110547Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T19:43:52.7113119Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T19:43:52.7116326Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T19:43:52.7119565Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T19:43:52.7122516Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T19:43:52.7125613Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T19:43:52.7128792Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T19:43:52.7131726Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T19:43:52.7134496Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T19:43:52.7138132Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T19:43:52.7141348Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T19:43:52.7143812Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T19:43:52.7146185Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T19:43:52.7148949Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T19:43:52.7151486Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T19:43:52.7154095Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T19:43:52.7157040Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T19:43:52.7160103Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T19:43:52.7162896Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T19:43:52.7165556Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T19:43:52.7168874Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T19:43:52.7172274Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T19:43:52.7175407Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T19:43:52.7178791Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T19:43:52.7181432Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T19:43:52.7184334Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T19:43:52.7187669Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T19:43:52.7190350Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T19:43:52.7193021Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T19:43:52.7195936Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T19:43:52.7199217Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T19:43:52.7202325Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T19:43:52.7205255Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T19:43:52.7208365Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T19:43:52.7210933Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T19:43:52.7213483Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T19:43:52.7216315Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T19:43:52.7219593Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T19:43:52.7222288Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T19:43:52.7224990Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T19:43:52.7228623Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T19:43:52.7232092Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T19:43:52.7235693Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T19:43:52.7239191Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T19:43:52.7242305Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T19:43:52.7245422Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T19:43:52.7248669Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T19:43:52.7251673Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T19:43:52.7254475Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T19:43:52.7257359Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T19:43:52.7260462Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T19:43:52.7263473Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T19:43:52.7266765Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T19:43:52.7269955Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T19:43:52.7272414Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T19:43:52.7274636Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T19:43:52.7277183Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T19:43:52.7280123Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T19:43:52.7282916Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T19:43:52.7285563Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T19:43:52.7288464Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T19:43:52.7291117Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T19:43:52.7293492Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T19:43:52.7295903Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T19:43:52.7298938Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T19:43:52.7301711Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T19:43:52.7304504Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T19:43:52.7307769Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T19:43:52.7310659Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T19:43:52.7313256Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T19:43:52.7315991Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T19:43:52.7318768Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T19:43:52.7321378Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T19:43:52.7324197Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T19:43:52.7326802Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T19:43:52.7329710Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T19:43:52.7332672Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T19:43:52.7335574Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T19:43:52.7338306Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T19:43:52.7340714Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T19:43:52.7342977Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T19:43:52.7431559Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T19:43:52.7435132Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T19:43:52.7440336Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T19:43:52.7446461Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T19:43:52.7450914Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T19:43:52.7453919Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T19:43:52.7456755Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T19:43:52.7459951Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T19:43:52.7463332Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T19:43:52.7465871Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T19:43:52.7468251Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T19:43:52.7470606Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T19:43:52.7473192Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T19:43:52.7475909Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T19:43:52.7479022Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T19:43:52.7481932Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T19:43:52.7484386Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T19:43:52.7486568Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T19:43:52.7489030Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T19:43:52.7491128Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T19:43:52.7493514Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T19:43:52.7496152Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T19:43:52.7498913Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T19:43:52.7501943Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T19:43:52.7504405Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T19:43:52.7506602Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T19:43:52.7509168Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T19:43:52.7511980Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T19:43:52.7515101Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T19:43:52.7518165Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T19:43:52.7520921Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T19:43:52.7523979Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T19:43:52.7527051Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T19:43:52.7530000Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T19:43:52.7531912Z * [new branch] main -> origin/main +2026-10-29T19:43:52.7534130Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T19:43:52.7537269Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T19:43:52.7540242Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T19:43:52.7542581Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T19:43:52.7544616Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T19:43:52.7546428Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T19:43:52.7548087Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T19:43:52.7549630Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T19:43:52.7551165Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T19:43:52.7552728Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T19:43:52.7554346Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T19:43:52.7555930Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T19:43:52.7557424Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T19:43:52.7560720Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:52.7562392Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:52.7564886Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:52.7566400Z a4a466cd818149662116329ee1f70a7b5e40d6f9 +2026-10-29T19:43:52.7569158Z ##[endgroup] +2026-10-29T19:43:52.7570505Z ##[group]Determining the checkout info +2026-10-29T19:43:52.7572026Z ##[endgroup] +2026-10-29T19:43:52.7572917Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:43:52.7575432Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:43:52.7578513Z ##[group]Checking out the ref +2026-10-29T19:43:52.7580474Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:53.1449686Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:43:53.1456014Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:43:53.1494256Z ##[endgroup] +2026-10-29T19:43:53.1557891Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:43:53.1601647Z a4a466cd818149662116329ee1f70a7b5e40d6f9 +2026-10-29T19:43:53.1611579Z ##[group]Removing auth +2026-10-29T19:43:53.1612093Z Removing SSH command configuration +2026-10-29T19:43:53.1615850Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:43:53.1665635Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:43:53.1937770Z Removing HTTP extra header +2026-10-29T19:43:53.1941311Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:43:53.1991718Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:43:53.2267117Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:43:53.2272501Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:43:53.2320137Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:43:53.2321618Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:43:53.2322459Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:43:53.2323126Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:43:53.2330758Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:43:53.2372232Z /home/runner/work/_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:53.2383074Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-45d1dd0c\-8dfd\-46f2\-a7e4\-0d206ccf327d\.config +2026-10-29T19:43:53.2440519Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:43:53.2479558Z /home/runner/work/_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:53.2489311Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-45d1dd0c\-8dfd\-46f2\-a7e4\-0d206ccf327d\.config +2026-10-29T19:43:53.2542972Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:43:53.2583137Z /github/runner_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:53.2599237Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-45d1dd0c\-8dfd\-46f2\-a7e4\-0d206ccf327d\.config +2026-10-29T19:43:53.2649676Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:43:53.2688747Z /github/runner_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config +2026-10-29T19:43:53.2696512Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-45d1dd0c\-8dfd\-46f2\-a7e4\-0d206ccf327d\.config +2026-10-29T19:43:53.2745180Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:43:53.3019310Z Removing credentials config '/home/runner/work/_temp/git-credentials-45d1dd0c-8dfd-46f2-a7e4-0d206ccf327d.config' +2026-10-29T19:43:53.3025542Z ##[endgroup] +2026-10-29T19:43:53.3298602Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:43:53.3299135Z with: +2026-10-29T19:43:53.3299430Z python-version: 3.11 +2026-10-29T19:43:53.3299739Z check-latest: false +2026-10-29T19:43:53.3302359Z token: *** +2026-10-29T19:43:53.3302654Z update-environment: true +2026-10-29T19:43:53.3302979Z allow-prereleases: false +2026-10-29T19:43:53.3303286Z freethreaded: false +2026-10-29T19:43:53.3303578Z ##[endgroup] +2026-10-29T19:43:53.4614035Z ##[group]Installed versions +2026-10-29T19:43:53.4691248Z Successfully set up CPython (3.11.17) +2026-10-29T19:43:53.4692187Z ##[endgroup] +2026-10-29T19:43:53.4835125Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:43:53.4835915Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:43:53.4873100Z shell: /usr/bin/bash -e {0} +2026-10-29T19:43:53.4873444Z env: +2026-10-29T19:43:53.4873806Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:53.4874325Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:43:53.4874861Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:53.4875289Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:53.4875719Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:53.4876155Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:43:53.4876532Z PYTHONOPTIMIZE: 0 +2026-10-29T19:43:53.4876828Z ##[endgroup] +2026-10-29T19:43:53.6329169Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... FAIL +2026-10-29T19:43:53.6331115Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... FAIL +2026-10-29T19:43:53.6332717Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... FAIL +2026-10-29T19:43:53.6334833Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... FAIL +2026-10-29T19:43:53.6336759Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... FAIL +2026-10-29T19:43:53.6338888Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... FAIL +2026-10-29T19:43:53.6340830Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... FAIL +2026-10-29T19:43:53.6342584Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... FAIL +2026-10-29T19:43:53.6344535Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... FAIL +2026-10-29T19:43:53.6346535Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... FAIL +2026-10-29T19:43:53.6348514Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... FAIL +2026-10-29T19:43:53.6350213Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... FAIL +2026-10-29T19:43:53.6352091Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... FAIL +2026-10-29T19:43:53.6353921Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... FAIL +2026-10-29T19:43:53.6355757Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... FAIL +2026-10-29T19:43:53.6358553Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... FAIL +2026-10-29T19:43:53.6360519Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... FAIL +2026-10-29T19:43:53.6362414Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... FAIL +2026-10-29T19:43:53.6364600Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... FAIL +2026-10-29T19:43:53.6366420Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... FAIL +2026-10-29T19:43:53.6368329Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... FAIL +2026-10-29T19:43:53.6370098Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... FAIL +2026-10-29T19:43:53.6371644Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... FAIL +2026-10-29T19:43:53.6373105Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... FAIL +2026-10-29T19:43:53.6373939Z +2026-10-29T19:43:53.6374188Z ====================================================================== +2026-10-29T19:43:53.6375231Z FAIL: test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) +2026-10-29T19:43:53.6376303Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6376984Z Traceback (most recent call last): +2026-10-29T19:43:53.6385355Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6386196Z self.module = runner() +2026-10-29T19:43:53.6386610Z ^^^^^^^^ +2026-10-29T19:43:53.6387367Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6388585Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6389209Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6389563Z +2026-10-29T19:43:53.6389778Z ====================================================================== +2026-10-29T19:43:53.6390635Z FAIL: test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) +2026-10-29T19:43:53.6391535Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6392129Z Traceback (most recent call last): +2026-10-29T19:43:53.6392863Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6393565Z self.module = runner() +2026-10-29T19:43:53.6393954Z ^^^^^^^^ +2026-10-29T19:43:53.6394601Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6395445Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6396070Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6396449Z +2026-10-29T19:43:53.6396671Z ====================================================================== +2026-10-29T19:43:53.6397861Z FAIL: test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) +2026-10-29T19:43:53.6398926Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6399559Z Traceback (most recent call last): +2026-10-29T19:43:53.6400355Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6401464Z self.module = runner() +2026-10-29T19:43:53.6401940Z ^^^^^^^^ +2026-10-29T19:43:53.6402701Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6403660Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6404311Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6404695Z +2026-10-29T19:43:53.6404910Z ====================================================================== +2026-10-29T19:43:53.6406199Z FAIL: test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) +2026-10-29T19:43:53.6407311Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6408019Z Traceback (most recent call last): +2026-10-29T19:43:53.6408756Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6409531Z self.module = runner() +2026-10-29T19:43:53.6409952Z ^^^^^^^^ +2026-10-29T19:43:53.6410665Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6411661Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6412357Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6412765Z +2026-10-29T19:43:53.6413005Z ====================================================================== +2026-10-29T19:43:53.6414116Z FAIL: test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) +2026-10-29T19:43:53.6415255Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6415894Z Traceback (most recent call last): +2026-10-29T19:43:53.6416759Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6417954Z self.module = runner() +2026-10-29T19:43:53.6418394Z ^^^^^^^^ +2026-10-29T19:43:53.6419153Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6420128Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6420832Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6421216Z +2026-10-29T19:43:53.6421427Z ====================================================================== +2026-10-29T19:43:53.6422546Z FAIL: test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) +2026-10-29T19:43:53.6423890Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6424498Z Traceback (most recent call last): +2026-10-29T19:43:53.6425315Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6426124Z self.module = runner() +2026-10-29T19:43:53.6426588Z ^^^^^^^^ +2026-10-29T19:43:53.6427345Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6428390Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6428993Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6429373Z +2026-10-29T19:43:53.6429596Z ====================================================================== +2026-10-29T19:43:53.6430644Z FAIL: test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) +2026-10-29T19:43:53.6431754Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6432360Z Traceback (most recent call last): +2026-10-29T19:43:53.6433101Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6433836Z self.module = runner() +2026-10-29T19:43:53.6434243Z ^^^^^^^^ +2026-10-29T19:43:53.6435184Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6436081Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6436736Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6437110Z +2026-10-29T19:43:53.6437330Z ====================================================================== +2026-10-29T19:43:53.6438564Z FAIL: test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) +2026-10-29T19:43:53.6439681Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6440457Z Traceback (most recent call last): +2026-10-29T19:43:53.6441232Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6441997Z self.module = runner() +2026-10-29T19:43:53.6442422Z ^^^^^^^^ +2026-10-29T19:43:53.6443130Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6444036Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6444686Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6445083Z +2026-10-29T19:43:53.6445302Z ====================================================================== +2026-10-29T19:43:53.6446620Z FAIL: test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) +2026-10-29T19:43:53.6448100Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6448734Z Traceback (most recent call last): +2026-10-29T19:43:53.6449500Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6450272Z self.module = runner() +2026-10-29T19:43:53.6450723Z ^^^^^^^^ +2026-10-29T19:43:53.6451440Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6452355Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6453040Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6453441Z +2026-10-29T19:43:53.6453679Z ====================================================================== +2026-10-29T19:43:53.6454868Z FAIL: test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) +2026-10-29T19:43:53.6456128Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6456774Z Traceback (most recent call last): +2026-10-29T19:43:53.6457750Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6458509Z self.module = runner() +2026-10-29T19:43:53.6458958Z ^^^^^^^^ +2026-10-29T19:43:53.6459657Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6460594Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6461248Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6461656Z +2026-10-29T19:43:53.6461884Z ====================================================================== +2026-10-29T19:43:53.6462995Z FAIL: test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) +2026-10-29T19:43:53.6464086Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6464730Z Traceback (most recent call last): +2026-10-29T19:43:53.6465547Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6466304Z self.module = runner() +2026-10-29T19:43:53.6466741Z ^^^^^^^^ +2026-10-29T19:43:53.6467445Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6468744Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6469380Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6469747Z +2026-10-29T19:43:53.6469972Z ====================================================================== +2026-10-29T19:43:53.6471066Z FAIL: test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) +2026-10-29T19:43:53.6472246Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6472876Z Traceback (most recent call last): +2026-10-29T19:43:53.6473928Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6474705Z self.module = runner() +2026-10-29T19:43:53.6475143Z ^^^^^^^^ +2026-10-29T19:43:53.6475868Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6476789Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6477641Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6478050Z +2026-10-29T19:43:53.6478275Z ====================================================================== +2026-10-29T19:43:53.6479539Z FAIL: test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) +2026-10-29T19:43:53.6480861Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6481449Z Traceback (most recent call last): +2026-10-29T19:43:53.6482205Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6482963Z self.module = runner() +2026-10-29T19:43:53.6483357Z ^^^^^^^^ +2026-10-29T19:43:53.6483979Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6484882Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6485558Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6485936Z +2026-10-29T19:43:53.6486343Z ====================================================================== +2026-10-29T19:43:53.6487422Z FAIL: test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) +2026-10-29T19:43:53.6488738Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6489372Z Traceback (most recent call last): +2026-10-29T19:43:53.6490142Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6490912Z self.module = runner() +2026-10-29T19:43:53.6491321Z ^^^^^^^^ +2026-10-29T19:43:53.6492016Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6492921Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6493573Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6493935Z +2026-10-29T19:43:53.6494143Z ====================================================================== +2026-10-29T19:43:53.6495481Z FAIL: test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) +2026-10-29T19:43:53.6496837Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6497468Z Traceback (most recent call last): +2026-10-29T19:43:53.6498457Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6499247Z self.module = runner() +2026-10-29T19:43:53.6499703Z ^^^^^^^^ +2026-10-29T19:43:53.6500396Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6501210Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6501696Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6502161Z +2026-10-29T19:43:53.6502304Z ====================================================================== +2026-10-29T19:43:53.6503042Z FAIL: test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) +2026-10-29T19:43:53.6503794Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6504276Z Traceback (most recent call last): +2026-10-29T19:43:53.6505018Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6505783Z self.module = runner() +2026-10-29T19:43:53.6506741Z ^^^^^^^^ +2026-10-29T19:43:53.6507654Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6508405Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6508823Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6509084Z +2026-10-29T19:43:53.6509240Z ====================================================================== +2026-10-29T19:43:53.6509977Z FAIL: test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) +2026-10-29T19:43:53.6510725Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6511119Z Traceback (most recent call last): +2026-10-29T19:43:53.6511610Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6512092Z self.module = runner() +2026-10-29T19:43:53.6512374Z ^^^^^^^^ +2026-10-29T19:43:53.6512829Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6513389Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6513792Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6514034Z +2026-10-29T19:43:53.6514185Z ====================================================================== +2026-10-29T19:43:53.6514890Z FAIL: test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) +2026-10-29T19:43:53.6515621Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6516012Z Traceback (most recent call last): +2026-10-29T19:43:53.6516506Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6516981Z self.module = runner() +2026-10-29T19:43:53.6517272Z ^^^^^^^^ +2026-10-29T19:43:53.6517924Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6518481Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6518883Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6519126Z +2026-10-29T19:43:53.6519274Z ====================================================================== +2026-10-29T19:43:53.6519955Z FAIL: test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) +2026-10-29T19:43:53.6520686Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6521069Z Traceback (most recent call last): +2026-10-29T19:43:53.6521544Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6522010Z self.module = runner() +2026-10-29T19:43:53.6522289Z ^^^^^^^^ +2026-10-29T19:43:53.6522741Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6523287Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6523686Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6523914Z +2026-10-29T19:43:53.6524058Z ====================================================================== +2026-10-29T19:43:53.6524914Z FAIL: test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) +2026-10-29T19:43:53.6525630Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6526013Z Traceback (most recent call last): +2026-10-29T19:43:53.6526481Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6526947Z self.module = runner() +2026-10-29T19:43:53.6527220Z ^^^^^^^^ +2026-10-29T19:43:53.6527891Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6528577Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6528978Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6529220Z +2026-10-29T19:43:53.6529358Z ====================================================================== +2026-10-29T19:43:53.6530020Z FAIL: test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) +2026-10-29T19:43:53.6530708Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6531085Z Traceback (most recent call last): +2026-10-29T19:43:53.6531556Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6532021Z self.module = runner() +2026-10-29T19:43:53.6532293Z ^^^^^^^^ +2026-10-29T19:43:53.6532727Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6533282Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6533685Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6533914Z +2026-10-29T19:43:53.6534060Z ====================================================================== +2026-10-29T19:43:53.6534779Z FAIL: test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) +2026-10-29T19:43:53.6535518Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6535894Z Traceback (most recent call last): +2026-10-29T19:43:53.6536366Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6536839Z self.module = runner() +2026-10-29T19:43:53.6537114Z ^^^^^^^^ +2026-10-29T19:43:53.6537709Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6538275Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6538682Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6538921Z +2026-10-29T19:43:53.6539064Z ====================================================================== +2026-10-29T19:43:53.6539600Z FAIL: test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) +2026-10-29T19:43:53.6540169Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6540547Z Traceback (most recent call last): +2026-10-29T19:43:53.6541008Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6541474Z self.module = runner() +2026-10-29T19:43:53.6541744Z ^^^^^^^^ +2026-10-29T19:43:53.6542172Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6542721Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6543124Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6543350Z +2026-10-29T19:43:53.6543495Z ====================================================================== +2026-10-29T19:43:53.6544081Z FAIL: test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) +2026-10-29T19:43:53.6544704Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6545272Z Traceback (most recent call last): +2026-10-29T19:43:53.6545852Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:53.6546330Z self.module = runner() +2026-10-29T19:43:53.6546608Z ^^^^^^^^ +2026-10-29T19:43:53.6547034Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:53.6547770Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:53.6548178Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:53.6548414Z +2026-10-29T19:43:53.6548709Z ---------------------------------------------------------------------- +2026-10-29T19:43:53.6549099Z Ran 24 tests in 0.005s +2026-10-29T19:43:53.6549272Z +2026-10-29T19:43:53.6549401Z FAILED (failures=24) +2026-10-29T19:43:53.6562544Z ##[error]Process completed with exit code 1. +2026-10-29T19:43:53.6724558Z Post job cleanup. +2026-10-29T19:43:53.7612701Z [command]/usr/bin/git version +2026-10-29T19:43:53.7700580Z git version 2.56.0 +2026-10-29T19:43:53.7737616Z Temporarily overriding HOME='/home/runner/work/_temp/54429f48-5e88-4a5c-98cd-e8e523ef7761' before making global git config changes +2026-10-29T19:43:53.7739026Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:43:53.7743601Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:43:53.7784987Z Removing SSH command configuration +2026-10-29T19:43:53.7792458Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:43:53.7844980Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:43:53.8149291Z Removing HTTP extra header +2026-10-29T19:43:53.8150726Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:43:53.8188070Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:43:53.8484315Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:43:53.8493486Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:43:53.8543191Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:43:53.8989091Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/optimized.log b/cbz/evidence/cold-start-node/red/optimized.log new file mode 100644 index 000000000..67d597cb8 --- /dev/null +++ b/cbz/evidence/cold-start-node/red/optimized.log @@ -0,0 +1,734 @@ +2026-10-29T19:43:37.7779709Z Current runner version: '2.338.0' +2026-10-29T19:43:37.7815536Z ##[group]Runner Image Provisioner +2026-10-29T19:43:37.7816992Z Hosted Compute Agent +2026-10-29T19:43:37.7818294Z Version: 20261021.618 +2026-10-29T19:43:37.7819701Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:43:37.7821162Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:43:37.7822560Z Worker ID: {e369aaa9-a93f-4357-a468-9ebb17810020} +2026-10-29T19:43:37.7824068Z Region: centralus +2026-10-29T19:43:37.7825158Z Cloud: Azure +2026-10-29T19:43:37.7826148Z ##[endgroup] +2026-10-29T19:43:37.7828608Z ##[group]Operating System +2026-10-29T19:43:37.7830186Z Ubuntu +2026-10-29T19:43:37.7831213Z 24.04.5 +2026-10-29T19:43:37.7832353Z LTS +2026-10-29T19:43:37.7833323Z ##[endgroup] +2026-10-29T19:43:37.7834417Z ##[group]Runner Image +2026-10-29T19:43:37.7835642Z Image: ubuntu-24.04 +2026-10-29T19:43:37.7836768Z Version: 20261025.353.1 +2026-10-29T19:43:37.7839129Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:43:37.7842482Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:43:37.7844376Z ##[endgroup] +2026-10-29T19:43:37.7846949Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:43:37.7850200Z Contents: read +2026-10-29T19:43:37.7851216Z Metadata: read +2026-10-29T19:43:37.7852451Z ##[endgroup] +2026-10-29T19:43:37.7855314Z Secret source: Actions +2026-10-29T19:43:37.7857134Z Cache mode: write +2026-10-29T19:43:37.7858895Z Prepare workflow directory +2026-10-29T19:43:37.8314520Z Prepare all required actions +2026-10-29T19:43:37.8389726Z Getting action download info +2026-10-29T19:43:38.0893412Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:43:38.1895392Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:43:38.4037541Z Complete job name: controls (1) +2026-10-29T19:43:38.4921959Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:43:38.4923046Z with: +2026-10-29T19:43:38.4923502Z persist-credentials: false +2026-10-29T19:43:38.4924020Z fetch-depth: 0 +2026-10-29T19:43:38.4924479Z repository: d6g8k5htny-coder/main +2026-10-29T19:43:38.4928499Z token: *** +2026-10-29T19:43:38.4928931Z ssh-strict: true +2026-10-29T19:43:38.4929707Z ssh-user: git +2026-10-29T19:43:38.4930136Z clean: true +2026-10-29T19:43:38.4930587Z sparse-checkout-cone-mode: true +2026-10-29T19:43:38.4931131Z fetch-tags: false +2026-10-29T19:43:38.4931586Z show-progress: true +2026-10-29T19:43:38.4932047Z lfs: false +2026-10-29T19:43:38.4932472Z submodules: false +2026-10-29T19:43:38.4932930Z set-safe-directory: true +2026-10-29T19:43:38.4933443Z allow-unsafe-pr-checkout: false +2026-10-29T19:43:38.4934292Z ##[endgroup] +2026-10-29T19:43:38.7810816Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:43:38.7813762Z ##[group]Getting Git version info +2026-10-29T19:43:38.7815259Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:43:38.7816974Z [command]/usr/bin/git version +2026-10-29T19:43:38.7910254Z git version 2.56.0 +2026-10-29T19:43:38.7954468Z ##[endgroup] +2026-10-29T19:43:38.7994527Z Temporarily overriding HOME='/home/runner/work/_temp/eb606405-34ea-4c5f-b8e3-82a1f2d544a1' before making global git config changes +2026-10-29T19:43:38.7996617Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:43:38.8002533Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:43:38.8061316Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:43:38.8072161Z ##[group]Determining repository object format +2026-10-29T19:43:38.8073195Z ##[endgroup] +2026-10-29T19:43:38.8074019Z ##[group]Initializing the repository +2026-10-29T19:43:38.8081653Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:43:38.8237444Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:43:38.8240525Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:43:38.8242644Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:43:38.8243935Z hint: call: +2026-10-29T19:43:38.8244498Z hint: +2026-10-29T19:43:38.8245315Z hint: git config --global init.defaultBranch +2026-10-29T19:43:38.8246300Z hint: +2026-10-29T19:43:38.8247269Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:43:38.8248699Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:43:38.8250548Z hint: +2026-10-29T19:43:38.8251507Z hint: git branch -m +2026-10-29T19:43:38.8252484Z hint: +2026-10-29T19:43:38.8253755Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:43:38.8256148Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:43:38.8271837Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:43:38.8322980Z ##[endgroup] +2026-10-29T19:43:38.8325338Z ##[group]Disabling automatic garbage collection +2026-10-29T19:43:38.8329817Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:43:38.8400953Z ##[endgroup] +2026-10-29T19:43:38.8402896Z ##[group]Setting up auth +2026-10-29T19:43:38.8404352Z Removing SSH command configuration +2026-10-29T19:43:38.8410058Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:43:38.8456090Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:43:38.8860839Z Removing HTTP extra header +2026-10-29T19:43:38.8867491Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:43:38.8938299Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:43:38.9191556Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:43:38.9197225Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:43:38.9254092Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:43:38.9501591Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:43:38.9552834Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:38.9599663Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:38.9645621Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:38.9691043Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:38.9731621Z ##[endgroup] +2026-10-29T19:43:38.9732460Z ##[group]Fetching the repository +2026-10-29T19:43:38.9740384Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +2026-10-29T19:43:49.1949435Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:43:49.1950713Z * [new branch] agent/observer-notes-20261001 -> origin/agent/observer-notes-20261001 +2026-10-29T19:43:49.1952528Z * [new branch] agent/paper1-note-current-20261001 -> origin/agent/paper1-note-current-20261001 +2026-10-29T19:43:49.1954009Z * [new branch] agent3/jetmod-rnunif-status-open-hold -> origin/agent3/jetmod-rnunif-status-open-hold +2026-10-29T19:43:49.1955738Z * [new branch] carrier/v20-planner-source-delivery-20261025 -> origin/carrier/v20-planner-source-delivery-20261025 +2026-10-29T19:43:49.1957434Z * [new branch] cbz/archived-runtime-boundaries-20261029 -> origin/cbz/archived-runtime-boundaries-20261029 +2026-10-29T19:43:49.1958935Z * [new branch] cbz/atlas-browser-coverage-20261029 -> origin/cbz/atlas-browser-coverage-20261029 +2026-10-29T19:43:49.1960261Z * [new branch] cbz/canonical-layer-a-auditor-20261029 -> origin/cbz/canonical-layer-a-auditor-20261029 +2026-10-29T19:43:49.1961001Z * [new branch] cbz/cold-start-node-20261029 -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:49.1961726Z * [new branch] cbz/foundation-handoff-20261029 -> origin/cbz/foundation-handoff-20261029 +2026-10-29T19:43:49.1962487Z * [new branch] cbz/main-receipt-source-custody-20261029 -> origin/cbz/main-receipt-source-custody-20261029 +2026-10-29T19:43:49.1963290Z * [new branch] cbz/source-instrument-20261029 -> origin/cbz/source-instrument-20261029 +2026-10-29T19:43:49.1964056Z * [new branch] cbz/terminal-obligation-index-20261029 -> origin/cbz/terminal-obligation-index-20261029 +2026-10-29T19:43:49.1964877Z * [new branch] cbz/workspace-git-hygiene-20261029 -> origin/cbz/workspace-git-hygiene-20261029 +2026-10-29T19:43:49.1965809Z * [new branch] chatgpt/archsys-p2-current-population-20261015 -> origin/chatgpt/archsys-p2-current-population-20261015 +2026-10-29T19:43:49.1966752Z * [new branch] chatgpt/c101-source-bound-successor-20260925 -> origin/chatgpt/c101-source-bound-successor-20260925 +2026-10-29T19:43:49.1968283Z * [new branch] chatgpt/c245a-replay-admission-contract-20261012 -> origin/chatgpt/c245a-replay-admission-contract-20261012 +2026-10-29T19:43:49.1970455Z * [new branch] chatgpt/cover-accounting-audit-20260924 -> origin/chatgpt/cover-accounting-audit-20260924 +2026-10-29T19:43:49.1971393Z * [new branch] chatgpt/downstream-crosswalk-20260925 -> origin/chatgpt/downstream-crosswalk-20260925 +2026-10-29T19:43:49.1972208Z * [new branch] chatgpt/drive-github-hardening-20260919 -> origin/chatgpt/drive-github-hardening-20260919 +2026-10-29T19:43:49.1973092Z * [new branch] chatgpt/fail-closed-claim-audit-repair-20260925 -> origin/chatgpt/fail-closed-claim-audit-repair-20260925 +2026-10-29T19:43:49.1974043Z * [new branch] chatgpt/gb7c-side24-proof-implementation-20261023 -> origin/chatgpt/gb7c-side24-proof-implementation-20261023 +2026-10-29T19:43:49.1974863Z * [new branch] chatgpt/h3-solver-pilot-20260921 -> origin/chatgpt/h3-solver-pilot-20260921 +2026-10-29T19:43:49.1975642Z * [new branch] chatgpt/main-lean-preflight-20261008-r1 -> origin/chatgpt/main-lean-preflight-20261008-r1 +2026-10-29T19:43:49.1976455Z * [new branch] chatgpt/main399-route-window-20261025 -> origin/chatgpt/main399-route-window-20261025 +2026-10-29T19:43:49.1977266Z * [new branch] chatgpt/math-push-cap-palette-20260924 -> origin/chatgpt/math-push-cap-palette-20260924 +2026-10-29T19:43:49.1978118Z * [new branch] chatgpt/nav-manifest-trigger-20261021-c -> origin/chatgpt/nav-manifest-trigger-20261021-c +2026-10-29T19:43:49.1979053Z * [new branch] chatgpt/navigation-price-20260924 -> origin/chatgpt/navigation-price-20260924 +2026-10-29T19:43:49.1980483Z * [new branch] chatgpt/never-merge-formal-negative-20260927 -> origin/chatgpt/never-merge-formal-negative-20260927 +2026-10-29T19:43:49.1981468Z * [new branch] chatgpt/pr2-postmerge-handoff-20260923 -> origin/chatgpt/pr2-postmerge-handoff-20260923 +2026-10-29T19:43:49.1982834Z * [new branch] chatgpt/probe-test-isolation-20260923 -> origin/chatgpt/probe-test-isolation-20260923 +2026-10-29T19:43:49.1984039Z * [new branch] chatgpt/public-source-visibility-20260926 -> origin/chatgpt/public-source-visibility-20260926 +2026-10-29T19:43:49.1984848Z * [new branch] chatgpt/q0-c103-source-bound-20260925 -> origin/chatgpt/q0-c103-source-bound-20260925 +2026-10-29T19:43:49.1985661Z * [new branch] chatgpt/q0-ledger-external-binding-20260925 -> origin/chatgpt/q0-ledger-external-binding-20260925 +2026-10-29T19:43:49.1986459Z * [new branch] chatgpt/register-export-r1-20260923 -> origin/chatgpt/register-export-r1-20260923 +2026-10-29T19:43:49.1987258Z * [new branch] chatgpt/register-source-preflight-20260923 -> origin/chatgpt/register-source-preflight-20260923 +2026-10-29T19:43:49.1988097Z * [new branch] chatgpt/research-capsule-311-20260924-1504 -> origin/chatgpt/research-capsule-311-20260924-1504 +2026-10-29T19:43:49.1988911Z * [new branch] chatgpt/side24-source-recovery-20260925 -> origin/chatgpt/side24-source-recovery-20260925 +2026-10-29T19:43:49.1990187Z * [new branch] chatgpt/source-architecture-design-20260925 -> origin/chatgpt/source-architecture-design-20260925 +2026-10-29T19:43:49.1991194Z * [new branch] chatgpt/source-recovery-companions-20261016-6215376409 -> origin/chatgpt/source-recovery-companions-20261016-6215376409 +2026-10-29T19:43:49.1992147Z * [new branch] chatgpt/standing-authorization-20260923 -> origin/chatgpt/standing-authorization-20260923 +2026-10-29T19:43:49.1992887Z * [new branch] chatgpt/storefront-20260926 -> origin/chatgpt/storefront-20260926 +2026-10-29T19:43:49.1993556Z * [new branch] chatgpt/vault-census-20260925 -> origin/chatgpt/vault-census-20260925 +2026-10-29T19:43:49.1994259Z * [new branch] chatgpt/wedge-accounting-20260924 -> origin/chatgpt/wedge-accounting-20260924 +2026-10-29T19:43:49.1995049Z * [new branch] chatgpt/withdrawal-governance-20260921 -> origin/chatgpt/withdrawal-governance-20260921 +2026-10-29T19:43:49.1996104Z * [new branch] claude/build-manuscript-contributing-BowxS -> origin/claude/build-manuscript-contributing-BowxS +2026-10-29T19:43:49.1997006Z * [new branch] claude/build-manuscript-script-TiApQ -> origin/claude/build-manuscript-script-TiApQ +2026-10-29T19:43:49.1997717Z * [new branch] claude/cbz0-phase1-20261029 -> origin/claude/cbz0-phase1-20261029 +2026-10-29T19:43:49.1998422Z * [new branch] claude/cover-outside-residual-guard -> origin/claude/cover-outside-residual-guard +2026-10-29T19:43:49.1999307Z * [new branch] claude/cover-survivor-tangency -> origin/claude/cover-survivor-tangency +2026-10-29T19:43:49.2000054Z * [new branch] claude/cover-tangency-on-hardening -> origin/claude/cover-tangency-on-hardening +2026-10-29T19:43:49.2000801Z * [new branch] claude/cover-uniform-cost-contract -> origin/claude/cover-uniform-cost-contract +2026-10-29T19:43:49.2001542Z * [new branch] claude/dbx-crosswalk-01cz-20261024 -> origin/claude/dbx-crosswalk-01cz-20261024 +2026-10-29T19:43:49.2002321Z * [new branch] claude/dbx-crosswalk-01cz-20261024-r2 -> origin/claude/dbx-crosswalk-01cz-20261024-r2 +2026-10-29T19:43:49.2003075Z * [new branch] claude/determined-bardeen-mrqy4y -> origin/claude/determined-bardeen-mrqy4y +2026-10-29T19:43:49.2003893Z * [new branch] claude/drive-audit-github-migration-rrglpp -> origin/claude/drive-audit-github-migration-rrglpp +2026-10-29T19:43:49.2004766Z * [new branch] claude/g1f2-g3f1-worker-liveness-71049ac9 -> origin/claude/g1f2-g3f1-worker-liveness-71049ac9 +2026-10-29T19:43:49.2005582Z * [new branch] claude/g2-02-serialized-size-71049ac9 -> origin/claude/g2-02-serialized-size-71049ac9 +2026-10-29T19:43:49.2006298Z * [new branch] claude/github-chatgpt-xxw5kp -> origin/claude/github-chatgpt-xxw5kp +2026-10-29T19:43:49.2007094Z * [new branch] claude/handoff-lean-register-tools-20261013 -> origin/claude/handoff-lean-register-tools-20261013 +2026-10-29T19:43:49.2007959Z * [new branch] claude/help-other-claude-models-829990 -> origin/claude/help-other-claude-models-829990 +2026-10-29T19:43:49.2008948Z * [new branch] claude/incoming-side24-chart-v2-20260926 -> origin/claude/incoming-side24-chart-v2-20260926 +2026-10-29T19:43:49.2009911Z * [new branch] claude/journal-623-624-combined-d476fc21 -> origin/claude/journal-623-624-combined-d476fc21 +2026-10-29T19:43:49.2010635Z * [new branch] claude/ladder-pin-reconcile -> origin/claude/ladder-pin-reconcile +2026-10-29T19:43:49.2011461Z * [new branch] claude/lean-verification-specification-20261010 -> origin/claude/lean-verification-specification-20261010 +2026-10-29T19:43:49.2012290Z * [new branch] claude/main-landing-page -> origin/claude/main-landing-page +2026-10-29T19:43:49.2013006Z * [new branch] claude/nice-maxwell-7i7ok0 -> origin/claude/nice-maxwell-7i7ok0 +2026-10-29T19:43:49.2013669Z * [new branch] claude/nice-maxwell-7i7ok0-cbz0 -> origin/claude/nice-maxwell-7i7ok0-cbz0 +2026-10-29T19:43:49.2014537Z * [new branch] claude/physics-multiscale-reconstruction-a1G1I -> origin/claude/physics-multiscale-reconstruction-a1G1I +2026-10-29T19:43:49.2015372Z * [new branch] claude/pinned-sources-inventory -> origin/claude/pinned-sources-inventory +2026-10-29T19:43:49.2016106Z * [new branch] claude/quarantine-digest-coverage -> origin/claude/quarantine-digest-coverage +2026-10-29T19:43:49.2016797Z * [new branch] claude/recovery-01N-20261013 -> origin/claude/recovery-01N-20261013 +2026-10-29T19:43:49.2017444Z * [new branch] claude/recovery-01cz-20261013 -> origin/claude/recovery-01cz-20261013 +2026-10-29T19:43:49.2018148Z * [new branch] claude/recovery-01cz-delta-20261018 -> origin/claude/recovery-01cz-delta-20261018 +2026-10-29T19:43:49.2018896Z * [new branch] claude/recovery-01cz-delta-20261020 -> origin/claude/recovery-01cz-delta-20261020 +2026-10-29T19:43:49.2019806Z * [new branch] claude/recovery-S-20261013 -> origin/claude/recovery-S-20261013 +2026-10-29T19:43:49.2020714Z * [new branch] claude/review-grok-github-uploads-gsthj3 -> origin/claude/review-grok-github-uploads-gsthj3 +2026-10-29T19:43:49.2021584Z * [new branch] claude/setup-complexity-physics-8H96d -> origin/claude/setup-complexity-physics-8H96d +2026-10-29T19:43:49.2022362Z * [new branch] claude/shared-custody-01cz-20261025 -> origin/claude/shared-custody-01cz-20261025 +2026-10-29T19:43:49.2023070Z * [new branch] claude/side24-v3-draft-20261013 -> origin/claude/side24-v3-draft-20261013 +2026-10-29T19:43:49.2023851Z * [new branch] claude/side24-v3-supplement-draft-20261013 -> origin/claude/side24-v3-supplement-draft-20261013 +2026-10-29T19:43:49.2024738Z * [new branch] claude/side24-v3-supplement-draft10-20261019 -> origin/claude/side24-v3-supplement-draft10-20261019 +2026-10-29T19:43:49.2025645Z * [new branch] claude/side24-v3-supplement-draft11-20261019 -> origin/claude/side24-v3-supplement-draft11-20261019 +2026-10-29T19:43:49.2026533Z * [new branch] claude/side24-v3-supplement-draft12-20261019 -> origin/claude/side24-v3-supplement-draft12-20261019 +2026-10-29T19:43:49.2027415Z * [new branch] claude/side24-v3-supplement-draft13-20261020 -> origin/claude/side24-v3-supplement-draft13-20261020 +2026-10-29T19:43:49.2028288Z * [new branch] claude/side24-v3-supplement-draft14-20261021 -> origin/claude/side24-v3-supplement-draft14-20261021 +2026-10-29T19:43:49.2029326Z * [new branch] claude/side24-v3-supplement-draft15-20261021 -> origin/claude/side24-v3-supplement-draft15-20261021 +2026-10-29T19:43:49.2030210Z * [new branch] claude/side24-v3-supplement-draft16-20261021 -> origin/claude/side24-v3-supplement-draft16-20261021 +2026-10-29T19:43:49.2031084Z * [new branch] claude/side24-v3-supplement-draft17-20261026 -> origin/claude/side24-v3-supplement-draft17-20261026 +2026-10-29T19:43:49.2031956Z * [new branch] claude/side24-v3-supplement-draft18-20261026 -> origin/claude/side24-v3-supplement-draft18-20261026 +2026-10-29T19:43:49.2033456Z * [new branch] claude/side24-v3-supplement-draft9-20261015 -> origin/claude/side24-v3-supplement-draft9-20261015 +2026-10-29T19:43:49.2034801Z * [new branch] claude/zeta-fold-r2-replay-venue-20261020 -> origin/claude/zeta-fold-r2-replay-venue-20261020 +2026-10-29T19:43:49.2035909Z * [new branch] claude/zeta-fold-residual-diag-retention-20261021 -> origin/claude/zeta-fold-residual-diag-retention-20261021 +2026-10-29T19:43:49.2037052Z * [new branch] claude/zeta-manifest-check-adoption-20261021 -> origin/claude/zeta-manifest-check-adoption-20261021 +2026-10-29T19:43:49.2038072Z * [new branch] codex/605-v22-canonical-dataset-20261025 -> origin/codex/605-v22-canonical-dataset-20261025 +2026-10-29T19:43:49.2038957Z * [new branch] codex/architecture-cli-boundary-red-20261016 -> origin/codex/architecture-cli-boundary-red-20261016 +2026-10-29T19:43:49.2040201Z * [new branch] codex/architecture-post-upload-probe-20261008 -> origin/codex/architecture-post-upload-probe-20261008 +2026-10-29T19:43:49.2041302Z * [new branch] codex/c226-formal-phase-evidence -> origin/codex/c226-formal-phase-evidence +2026-10-29T19:43:49.2042684Z * [new branch] codex/c287-population-current-main-20261016 -> origin/codex/c287-population-current-main-20261016 +2026-10-29T19:43:49.2043714Z * [new branch] codex/canvas-model-controls-20261009 -> origin/codex/canvas-model-controls-20261009 +2026-10-29T19:43:49.2044620Z * [new branch] codex/casefold-adapter-checked-probe-20261008 -> origin/codex/casefold-adapter-checked-probe-20261008 +2026-10-29T19:43:49.2045565Z * [new branch] codex/casefold-adapter-final-checked-20261008 -> origin/codex/casefold-adapter-final-checked-20261008 +2026-10-29T19:43:49.2046499Z * [new branch] codex/cbz-math514-exact-scope-auditor-20261029 -> origin/codex/cbz-math514-exact-scope-auditor-20261029 +2026-10-29T19:43:49.2047564Z * [new branch] codex/cbz-math514-kernel-replay-20261029 -> origin/codex/cbz-math514-kernel-replay-20261029 +2026-10-29T19:43:49.2048496Z * [new branch] codex/current-observation-recovery-20261022-2234 -> origin/codex/current-observation-recovery-20261022-2234 +2026-10-29T19:43:49.2049777Z * [new branch] codex/cusp-analytic-guards-20261009-root01a11cbf -> origin/codex/cusp-analytic-guards-20261009-root01a11cbf +2026-10-29T19:43:49.2050643Z * [new branch] codex/enforcement-control-20260922 -> origin/codex/enforcement-control-20260922 +2026-10-29T19:43:49.2051369Z * [new branch] codex/enforcement-probe-20260922 -> origin/codex/enforcement-probe-20260922 +2026-10-29T19:43:49.2052301Z * [new branch] codex/exact-population-certificate-20261009-root01a11cbf -> origin/codex/exact-population-certificate-20261009-root01a11cbf +2026-10-29T19:43:49.2053446Z * [new branch] codex/exact-population-certificate-ci-20261009-root01a11cbf -> origin/codex/exact-population-certificate-ci-20261009-root01a11cbf +2026-10-29T19:43:49.2054535Z * [new branch] codex/global-cusp-h0-selector-20261009-root01a11cbf -> origin/codex/global-cusp-h0-selector-20261009-root01a11cbf +2026-10-29T19:43:49.2055775Z * [new branch] codex/global-cusp-h0-validation-20261009-root01a11cbf -> origin/codex/global-cusp-h0-validation-20261009-root01a11cbf +2026-10-29T19:43:49.2056644Z * [new branch] codex/h3-closure-mirror-20261018 -> origin/codex/h3-closure-mirror-20261018 +2026-10-29T19:43:49.2057368Z * [new branch] codex/higher-homology-fold-20261008 -> origin/codex/higher-homology-fold-20261008 +2026-10-29T19:43:49.2058234Z * [new branch] codex/lease-crypto-runtime-preparation-20261009 -> origin/codex/lease-crypto-runtime-preparation-20261009 +2026-10-29T19:43:49.2059084Z * [new branch] codex/lease-protocol-tests-20261009 -> origin/codex/lease-protocol-tests-20261009 +2026-10-29T19:43:49.2060150Z * [new branch] codex/main-classic-rule-evidence-20261025 -> origin/codex/main-classic-rule-evidence-20261025 +2026-10-29T19:43:49.2060972Z * [new branch] codex/main388-new-successor-20261014 -> origin/codex/main388-new-successor-20261014 +2026-10-29T19:43:49.2061937Z * [new branch] codex/main583-setup-python-only-20261024 -> origin/codex/main583-setup-python-only-20261024 +2026-10-29T19:43:49.2062745Z * [new branch] codex/mechanism-assimilation-20260922 -> origin/codex/mechanism-assimilation-20260922 +2026-10-29T19:43:49.2063545Z * [new branch] codex/milestone-audit-summary-20261002 -> origin/codex/milestone-audit-summary-20261002 +2026-10-29T19:43:49.2064302Z * [new branch] codex/navigation-timing-20261016 -> origin/codex/navigation-timing-20261016 +2026-10-29T19:43:49.2065046Z * [new branch] codex/parallel-reader-tools-20261003 -> origin/codex/parallel-reader-tools-20261003 +2026-10-29T19:43:49.2065823Z * [new branch] codex/population-a1-controls-20261013 -> origin/codex/population-a1-controls-20261013 +2026-10-29T19:43:49.2066857Z * [new branch] codex/population-runner-attribution-20261013-root01a11cbf-2035z -> origin/codex/population-runner-attribution-20261013-root01a11cbf-2035z +2026-10-29T19:43:49.2067881Z * [new branch] codex/reader-native-admission-20261017 -> origin/codex/reader-native-admission-20261017 +2026-10-29T19:43:49.2068627Z * [new branch] codex/reader-native-cp-20261017 -> origin/codex/reader-native-cp-20261017 +2026-10-29T19:43:49.2069615Z * [new branch] codex/reader-runtime-preparation-20261011 -> origin/codex/reader-runtime-preparation-20261011 +2026-10-29T19:43:49.2070586Z * [new branch] codex/reader438-review-evidence-20261017-root01a14b9f -> origin/codex/reader438-review-evidence-20261017-root01a14b9f +2026-10-29T19:43:49.2071490Z * [new branch] codex/req8-controls-r01-20261020-1500 -> origin/codex/req8-controls-r01-20261020-1500 +2026-10-29T19:43:49.2072374Z * [new branch] codex/reviewed-fold-diagonal-20261016-root01a11cbf -> origin/codex/reviewed-fold-diagonal-20261016-root01a11cbf +2026-10-29T19:43:49.2073387Z * [new branch] codex/routing-broker-tests-20261009 -> origin/codex/routing-broker-tests-20261009 +2026-10-29T19:43:49.2074286Z * [new branch] codex/routing-sqlite-runtime-preparation-20261008 -> origin/codex/routing-sqlite-runtime-preparation-20261008 +2026-10-29T19:43:49.2075264Z * [new branch] codex/semantic-memory-task1-20261016 -> origin/codex/semantic-memory-task1-20261016 +2026-10-29T19:43:49.2076101Z * [new branch] codex/semantic-runtime-preparation-20261008 -> origin/codex/semantic-runtime-preparation-20261008 +2026-10-29T19:43:49.2077124Z * [new branch] codex/signed-lease-recovery-evidence-20261018-root01a14b9f -> origin/codex/signed-lease-recovery-evidence-20261018-root01a14b9f +2026-10-29T19:43:49.2078081Z * [new branch] codex/site-at-generated-f614-20261025 -> origin/codex/site-at-generated-f614-20261025 +2026-10-29T19:43:49.2079420Z * [new branch] codex/site-first-red-20261022-2207 -> origin/codex/site-first-red-20261022-2207 +2026-10-29T19:43:49.2080745Z * [new branch] codex/site-publication-receipts -> origin/codex/site-publication-receipts +2026-10-29T19:43:49.2082215Z * [new branch] codex/site-route-controls-v3-20261022-2338 -> origin/codex/site-route-controls-v3-20261022-2338 +2026-10-29T19:43:49.2083581Z * [new branch] codex/source-workflows-20261029 -> origin/codex/source-workflows-20261029 +2026-10-29T19:43:49.2084713Z * [new branch] codex/spectral-amplitude-crossover-20261008 -> origin/codex/spectral-amplitude-crossover-20261008 +2026-10-29T19:43:49.2085628Z * [new branch] codex/spectral-gaussian-admission-20261008 -> origin/codex/spectral-gaussian-admission-20261008 +2026-10-29T19:43:49.2086537Z * [new branch] codex/stationary-quartic-cusp-20261009 -> origin/codex/stationary-quartic-cusp-20261009 +2026-10-29T19:43:49.2087464Z * [new branch] codex/two-control-cusp-population-20261009 -> origin/codex/two-control-cusp-population-20261009 +2026-10-29T19:43:49.2088348Z * [new branch] codex/verification-museum-20260926 -> origin/codex/verification-museum-20260926 +2026-10-29T19:43:49.2090412Z * [new branch] codex/weighted-cusp-production-20261026-root01a11cbf -> origin/codex/weighted-cusp-production-20261026-root01a11cbf +2026-10-29T19:43:49.2091703Z * [new branch] codex/weighted-cusp-sampling-20261025-root01a11cbf -> origin/codex/weighted-cusp-sampling-20261025-root01a11cbf +2026-10-29T19:43:49.2092685Z * [new branch] copilot/comprehensive-audit-d6g8k5htny-coder -> origin/copilot/comprehensive-audit-d6g8k5htny-coder +2026-10-29T19:43:49.2093656Z * [new branch] copilot/copilotupdate-coordination-references-307 -> origin/copilot/copilotupdate-coordination-references-307 +2026-10-29T19:43:49.2094453Z * [new branch] copilot/ec-014-audit-tasks -> origin/copilot/ec-014-audit-tasks +2026-10-29T19:43:49.2095344Z * [new branch] copilot/update-contributor-routing-agent-message-board-419 -> origin/copilot/update-contributor-routing-agent-message-board-419 +2026-10-29T19:43:49.2096355Z * [new branch] cursor/at-remainder-source-repair-8ffc -> origin/cursor/at-remainder-source-repair-8ffc +2026-10-29T19:43:49.2097173Z * [new branch] cursor/batch249-tip-observe-542e6ec-1c18 -> origin/cursor/batch249-tip-observe-542e6ec-1c18 +2026-10-29T19:43:49.2097986Z * [new branch] cursor/cond-importers-13-audit-20260925 -> origin/cursor/cond-importers-13-audit-20260925 +2026-10-29T19:43:49.2098881Z * [new branch] cursor/contribution-plan-crosswalk-lpw-identity -> origin/cursor/contribution-plan-crosswalk-lpw-identity +2026-10-29T19:43:49.2100590Z * [new branch] cursor/downstream-crosswalk-outside-packet-31c5 -> origin/cursor/downstream-crosswalk-outside-packet-31c5 +2026-10-29T19:43:49.2101689Z * [new branch] cursor/env-rescov-node-classification-20260925 -> origin/cursor/env-rescov-node-classification-20260925 +2026-10-29T19:43:49.2102614Z * [new branch] cursor/f1-repair-618-impl-ref-20261025-9e39 -> origin/cursor/f1-repair-618-impl-ref-20261025-9e39 +2026-10-29T19:43:49.2103624Z * [new branch] cursor/g1-f1-journal-lf-framing-0b94 -> origin/cursor/g1-f1-journal-lf-framing-0b94 +2026-10-29T19:43:49.2104414Z * [new branch] cursor/intermediate-scale-bridge-ab2f -> origin/cursor/intermediate-scale-bridge-ab2f +2026-10-29T19:43:49.2105201Z * [new branch] cursor/inventable-jetmod-probes-4488 -> origin/cursor/inventable-jetmod-probes-4488 +2026-10-29T19:43:49.2106069Z * [new branch] cursor/inventable-jetmod-shortcut-refusals-09c9 -> origin/cursor/inventable-jetmod-shortcut-refusals-09c9 +2026-10-29T19:43:49.2107013Z * [new branch] cursor/inventable-jetmod-status-honesty-f8c0 -> origin/cursor/inventable-jetmod-status-honesty-f8c0 +2026-10-29T19:43:49.2107828Z * [new branch] cursor/inventable-nav-rescue-334e -> origin/cursor/inventable-nav-rescue-334e +2026-10-29T19:43:49.2108673Z * [new branch] cursor/inventable-probe-index-provenance-b0e1 -> origin/cursor/inventable-probe-index-provenance-b0e1 +2026-10-29T19:43:49.2109997Z * [new branch] cursor/inventable-refused-empty-absent-honesty-a3f9 -> origin/cursor/inventable-refused-empty-absent-honesty-a3f9 +2026-10-29T19:43:49.2111042Z * [new branch] cursor/inventable-refused-empty-absent-honesty-f763 -> origin/cursor/inventable-refused-empty-absent-honesty-f763 +2026-10-29T19:43:49.2112115Z * [new branch] cursor/inventable-registers-check-known-acceptance-c426 -> origin/cursor/inventable-registers-check-known-acceptance-c426 +2026-10-29T19:43:49.2113347Z * [new branch] cursor/inventable-rn-absent-empty-honesty-f2a8 -> origin/cursor/inventable-rn-absent-empty-honesty-f2a8 +2026-10-29T19:43:49.2114297Z * [new branch] cursor/inventable-status-jetmod-24jet-row-852a -> origin/cursor/inventable-status-jetmod-24jet-row-852a +2026-10-29T19:43:49.2115241Z * [new branch] cursor/inventable-tip-observation-honesty-79ba -> origin/cursor/inventable-tip-observation-honesty-79ba +2026-10-29T19:43:49.2116171Z * [new branch] cursor/inventable-tip-observe-02cfbfdf-ad5a -> origin/cursor/inventable-tip-observe-02cfbfdf-ad5a +2026-10-29T19:43:49.2117186Z * [new branch] cursor/inventable-tip-observe-388a22ca -> origin/cursor/inventable-tip-observe-388a22ca +2026-10-29T19:43:49.2118025Z * [new branch] cursor/inventable-tip-observe-3b3860da-cf44 -> origin/cursor/inventable-tip-observe-3b3860da-cf44 +2026-10-29T19:43:49.2118891Z * [new branch] cursor/inventable-tip-observe-542e6ec-8fc7 -> origin/cursor/inventable-tip-observe-542e6ec-8fc7 +2026-10-29T19:43:49.2119907Z * [new branch] cursor/inventable-tip-observe-8e359e5-d0bd -> origin/cursor/inventable-tip-observe-8e359e5-d0bd +2026-10-29T19:43:49.2120815Z * [new branch] cursor/inventable-vault-path-tooling-docs-360d -> origin/cursor/inventable-vault-path-tooling-docs-360d +2026-10-29T19:43:49.2121815Z * [new branch] cursor/jetmod-partial-refused-not-24jet-status-vocab -> origin/cursor/jetmod-partial-refused-not-24jet-status-vocab +2026-10-29T19:43:49.2122754Z * [new branch] cursor/jetmod-sibling-sweep-empty-7b82 -> origin/cursor/jetmod-sibling-sweep-empty-7b82 +2026-10-29T19:43:49.2123507Z * [new branch] cursor/jetmod-status-vocab-1814 -> origin/cursor/jetmod-status-vocab-1814 +2026-10-29T19:43:49.2124184Z * [new branch] cursor/main-crosswalk-nav-31c5 -> origin/cursor/main-crosswalk-nav-31c5 +2026-10-29T19:43:49.2124953Z * [new branch] cursor/math-status-inventable-honesty-3242 -> origin/cursor/math-status-inventable-honesty-3242 +2026-10-29T19:43:49.2125811Z * [new branch] cursor/math-status-open-hold-20260922-b4a3 -> origin/cursor/math-status-open-hold-20260922-b4a3 +2026-10-29T19:43:49.2126670Z * [new branch] cursor/math-status-open-hold-20260922-e340 -> origin/cursor/math-status-open-hold-20260922-e340 +2026-10-29T19:43:49.2127624Z * [new branch] cursor/math-status-readme-unmix-9b14 -> origin/cursor/math-status-readme-unmix-9b14 +2026-10-29T19:43:49.2129447Z * [new branch] cursor/math-status-walls-20260922-da25 -> origin/cursor/math-status-walls-20260922-da25 +2026-10-29T19:43:49.2130892Z * [new branch] cursor/path-c-0019-attestations-rw-0c9d -> origin/cursor/path-c-0019-attestations-rw-0c9d +2026-10-29T19:43:49.2131677Z * [new branch] cursor/path-c-portable-fixes -> origin/cursor/path-c-portable-fixes +2026-10-29T19:43:49.2132433Z * [new branch] cursor/q0-ledger-reconcile-ebedb78-31c5 -> origin/cursor/q0-ledger-reconcile-ebedb78-31c5 +2026-10-29T19:43:49.2133320Z * [new branch] cursor/register-consumers-cold-start-nav-a2df -> origin/cursor/register-consumers-cold-start-nav-a2df +2026-10-29T19:43:49.2134174Z * [new branch] cursor/replace-2025-main-landing-6939 -> origin/cursor/replace-2025-main-landing-6939 +2026-10-29T19:43:49.2135027Z * [new branch] cursor/restore-independence-credit-quote-e6a4 -> origin/cursor/restore-independence-credit-quote-e6a4 +2026-10-29T19:43:49.2136014Z * [new branch] cursor/retip-38-outside-residual-guard-077464ef -> origin/cursor/retip-38-outside-residual-guard-077464ef +2026-10-29T19:43:49.2136889Z * [new branch] cursor/retip-46-cellcount-pin-077464ef -> origin/cursor/retip-46-cellcount-pin-077464ef +2026-10-29T19:43:49.2137665Z * [new branch] cursor/rn-unif-walkdown-scope-fixes -> origin/cursor/rn-unif-walkdown-scope-fixes +2026-10-29T19:43:49.2138509Z * [new branch] cursor/scientific-state-schema-crosswalk-31c5 -> origin/cursor/scientific-state-schema-crosswalk-31c5 +2026-10-29T19:43:49.2139808Z * [new branch] cursor/side24-align-fresh-637-4904 -> origin/cursor/side24-align-fresh-637-4904 +2026-10-29T19:43:49.2140634Z * [new branch] cursor/side24-alignment-review-20261026-dd62 -> origin/cursor/side24-alignment-review-20261026-dd62 +2026-10-29T19:43:49.2141504Z * [new branch] cursor/side24-missing-source-custody-0532 -> origin/cursor/side24-missing-source-custody-0532 +2026-10-29T19:43:49.2142299Z * [new branch] cursor/side24-nav-prep-honesty-a050 -> origin/cursor/side24-nav-prep-honesty-a050 +2026-10-29T19:43:49.2143482Z * [new branch] cursor/side24-prep-sot-absent-nav-d1b8 -> origin/cursor/side24-prep-sot-absent-nav-d1b8 +2026-10-29T19:43:49.2144411Z * [new branch] cursor/status-jetmod-inventable-merge-promote-2820 -> origin/cursor/status-jetmod-inventable-merge-promote-2820 +2026-10-29T19:43:49.2145442Z * [new branch] cursor/tip-align-packet-ae7daf7-dc7f -> origin/cursor/tip-align-packet-ae7daf7-dc7f +2026-10-29T19:43:49.2228379Z * [new branch] cursor/tip-docs-hygiene-banners-4a17 -> origin/cursor/tip-docs-hygiene-banners-4a17 +2026-10-29T19:43:49.2230100Z * [new branch] cursor/tip-observe-0adeb651-d320 -> origin/cursor/tip-observe-0adeb651-d320 +2026-10-29T19:43:49.2231318Z * [new branch] cursor/tip-observe-3a29f526-8144 -> origin/cursor/tip-observe-3a29f526-8144 +2026-10-29T19:43:49.2232523Z * [new branch] cursor/tip-observe-fcad7236-c5d9 -> origin/cursor/tip-observe-fcad7236-c5d9 +2026-10-29T19:43:49.2233862Z * [new branch] cursor/vault-quarantine-hygiene-9f01 -> origin/cursor/vault-quarantine-hygiene-9f01 +2026-10-29T19:43:49.2235060Z * [new branch] cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c -> origin/cursor/zeta-fold-slice-c-original-timing-bytes-20261021-458c +2026-10-29T19:43:49.2236227Z * [new branch] cursor/zeta-fold-slice-c-timing-retention-20261020-458c -> origin/cursor/zeta-fold-slice-c-timing-retention-20261020-458c +2026-10-29T19:43:49.2237280Z * [new branch] custody/dot-p15-manifest-correction-20261025 -> origin/custody/dot-p15-manifest-correction-20261025 +2026-10-29T19:43:49.2238232Z * [new branch] custody/dot-v19-dependency-supplement-20261025 -> origin/custody/dot-v19-dependency-supplement-20261025 +2026-10-29T19:43:49.2239106Z * [new branch] custody/dot-v19-gap2-originals-20261026 -> origin/custody/dot-v19-gap2-originals-20261026 +2026-10-29T19:43:49.2240467Z * [new branch] dependabot/github_actions/github-actions-d51a082eac -> origin/dependabot/github_actions/github-actions-d51a082eac +2026-10-29T19:43:49.2241824Z * [new branch] docs/retro-proof-source-join-incorp-20261025 -> origin/docs/retro-proof-source-join-incorp-20261025 +2026-10-29T19:43:49.2243355Z * [new branch] docs/workspace-board-307-h04 -> origin/docs/workspace-board-307-h04 +2026-10-29T19:43:49.2244576Z * [new branch] docs/workspace-board-pointer-307 -> origin/docs/workspace-board-pointer-307 +2026-10-29T19:43:49.2245344Z * [new branch] fix/atlas-hosted-admission-20261029 -> origin/fix/atlas-hosted-admission-20261029 +2026-10-29T19:43:49.2246183Z * [new branch] fix/atlas-persistent-ci-discovery-20261026 -> origin/fix/atlas-persistent-ci-discovery-20261026 +2026-10-29T19:43:49.2247070Z * [new branch] grok-h02-formal-routing-amend-20261013 -> origin/grok-h02-formal-routing-amend-20261013 +2026-10-29T19:43:49.2247974Z * [new branch] grok-h02/retro-proof-source-join-incorp-20261025 -> origin/grok-h02/retro-proof-source-join-incorp-20261025 +2026-10-29T19:43:49.2248910Z * [new branch] grok-h04/c221-doc-01-public-shop-commands -> origin/grok-h04/c221-doc-01-public-shop-commands +2026-10-29T19:43:49.2250024Z * [new branch] grok-h04/c221-doc-01-w8b-commands -> origin/grok-h04/c221-doc-01-w8b-commands +2026-10-29T19:43:49.2250720Z * [new branch] grok-h04/c221-doc-01-w8b-restore -> origin/grok-h04/c221-doc-01-w8b-restore +2026-10-29T19:43:49.2251404Z * [new branch] grok/c160-path-01-fixture-alias -> origin/grok/c160-path-01-fixture-alias +2026-10-29T19:43:49.2252053Z * [new branch] grok/c221-doc-01-w8b-commands -> origin/grok/c221-doc-01-w8b-commands +2026-10-29T19:43:49.2252806Z * [new branch] grok/h02-workspace-board-pointer-20261009 -> origin/grok/h02-workspace-board-pointer-20261009 +2026-10-29T19:43:49.2253633Z * [new branch] grok/workspace-board-pointer-20261009 -> origin/grok/workspace-board-pointer-20261009 +2026-10-29T19:43:49.2254487Z * [new branch] grok16/v20-planner-source-carrier-20261025 -> origin/grok16/v20-planner-source-carrier-20261025 +2026-10-29T19:43:49.2255592Z * [new branch] grokbot-agent12/pr340-identity-binding-20261024 -> origin/grokbot-agent12/pr340-identity-binding-20261024 +2026-10-29T19:43:49.2256372Z * [new branch] grokbot-agent15/ci-cache-01 -> origin/grokbot-agent15/ci-cache-01 +2026-10-29T19:43:49.2257064Z * [new branch] harper/workspace-coord-307-pointer -> origin/harper/workspace-coord-307-pointer +2026-10-29T19:43:49.2257850Z * [new branch] incoming/grok-cycle2-nd-d5-sard-20260926 -> origin/incoming/grok-cycle2-nd-d5-sard-20260926 +2026-10-29T19:43:49.2258894Z * [new branch] inventable/open-problems-frozen-errata-388a22ca -> origin/inventable/open-problems-frozen-errata-388a22ca +2026-10-29T19:43:49.2260258Z * [new branch] inventable/rn-certified-q2-carrier-absent-077464ef -> origin/inventable/rn-certified-q2-carrier-absent-077464ef +2026-10-29T19:43:49.2261181Z * [new branch] inventable/rn-crosswalk-docs-077464ef -> origin/inventable/rn-crosswalk-docs-077464ef +2026-10-29T19:43:49.2262045Z * [new branch] inventable/side24-cell-errata-pointer-848aea2a -> origin/inventable/side24-cell-errata-pointer-848aea2a +2026-10-29T19:43:49.2263134Z * [new branch] inventable/side24-cell-spatial-crosslink-3a29f526 -> origin/inventable/side24-cell-spatial-crosslink-3a29f526 +2026-10-29T19:43:49.2264102Z * [new branch] inventable/side24-cell-square-importers-077464ef -> origin/inventable/side24-cell-square-importers-077464ef +2026-10-29T19:43:49.2264956Z * [new branch] inventable/side24-nav-pages-3b3860da -> origin/inventable/side24-nav-pages-3b3860da +2026-10-29T19:43:49.2265556Z * [new branch] main -> origin/main +2026-10-29T19:43:49.2266390Z * [new branch] research/v22-second-height-generic-gpt6-20261026 -> origin/research/v22-second-height-generic-gpt6-20261026 +2026-10-29T19:43:49.2267517Z * [new branch] rloop/formal-page-triggers-20261014-6178357042 -> origin/rloop/formal-page-triggers-20261014-6178357042 +2026-10-29T19:43:49.2268430Z * [new branch] transport/register-integration-20260923 -> origin/transport/register-integration-20260923 +2026-10-29T19:43:49.2269553Z * [new branch] transport/register-r1-20260923 -> origin/transport/register-r1-20260923 +2026-10-29T19:43:49.2270440Z * [new tag] archive/drive-migration-20261002 -> archive/drive-migration-20261002 +2026-10-29T19:43:49.2271119Z * [new tag] cbz-quarantine-q-8336 -> cbz-quarantine-q-8336 +2026-10-29T19:43:49.2271823Z * [new tag] cbz-quarantine-q-8340 -> cbz-quarantine-q-8340 +2026-10-29T19:43:49.2272466Z * [new tag] cbz-quarantine-q-8429 -> cbz-quarantine-q-8429 +2026-10-29T19:43:49.2273030Z * [new tag] pre-cbz-discovery-1 -> pre-cbz-discovery-1 +2026-10-29T19:43:49.2273671Z * [new tag] retain/pr-646-194e229606c6 -> retain/pr-646-194e229606c6 +2026-10-29T19:43:49.2274232Z * [new tag] retain/pr-650-a51445b4c2d6 -> retain/pr-650-a51445b4c2d6 +2026-10-29T19:43:49.2274909Z * [new tag] retain/pr621-3ef658d7 -> retain/pr621-3ef658d7 +2026-10-29T19:43:49.2275418Z * [new tag] retain/pr634-387b2321 -> retain/pr634-387b2321 +2026-10-29T19:43:49.2276852Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:49.2277602Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:49.2278615Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:49.2279112Z a4a466cd818149662116329ee1f70a7b5e40d6f9 +2026-10-29T19:43:49.2280432Z ##[endgroup] +2026-10-29T19:43:49.2280885Z ##[group]Determining the checkout info +2026-10-29T19:43:49.2281375Z ##[endgroup] +2026-10-29T19:43:49.2281678Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:43:49.2282533Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:43:49.2283501Z ##[group]Checking out the ref +2026-10-29T19:43:49.2284167Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:43:49.6432668Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:43:49.6437751Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:43:49.6475789Z ##[endgroup] +2026-10-29T19:43:49.6535484Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:43:49.6574545Z a4a466cd818149662116329ee1f70a7b5e40d6f9 +2026-10-29T19:43:49.6585730Z ##[group]Removing auth +2026-10-29T19:43:49.6586255Z Removing SSH command configuration +2026-10-29T19:43:49.6591643Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:43:49.6644693Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:43:49.6898118Z Removing HTTP extra header +2026-10-29T19:43:49.6902776Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:43:49.6950073Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:43:49.7195953Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:43:49.7199816Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:43:49.7243964Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:43:49.7244806Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:43:49.7245541Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:43:49.7250300Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:43:49.7254897Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:43:49.7293999Z /home/runner/work/_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:49.7314375Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-93b7c59a\-bf86\-4c8a\-bafa\-6470b5135048\.config +2026-10-29T19:43:49.7364420Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:43:49.7400320Z /home/runner/work/_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:49.7410243Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-93b7c59a\-bf86\-4c8a\-bafa\-6470b5135048\.config +2026-10-29T19:43:49.7471225Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:43:49.7508493Z /github/runner_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:49.7531639Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-93b7c59a\-bf86\-4c8a\-bafa\-6470b5135048\.config +2026-10-29T19:43:49.7564811Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:43:49.7602282Z /github/runner_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config +2026-10-29T19:43:49.7610314Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-93b7c59a\-bf86\-4c8a\-bafa\-6470b5135048\.config +2026-10-29T19:43:49.7655614Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:43:49.7903609Z Removing credentials config '/home/runner/work/_temp/git-credentials-93b7c59a-bf86-4c8a-bafa-6470b5135048.config' +2026-10-29T19:43:49.7913864Z ##[endgroup] +2026-10-29T19:43:49.8193038Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:43:49.8193457Z with: +2026-10-29T19:43:49.8193666Z python-version: 3.11 +2026-10-29T19:43:49.8193898Z check-latest: false +2026-10-29T19:43:49.8196571Z token: *** +2026-10-29T19:43:49.8196791Z update-environment: true +2026-10-29T19:43:49.8197038Z allow-prereleases: false +2026-10-29T19:43:49.8197269Z freethreaded: false +2026-10-29T19:43:49.8197482Z ##[endgroup] +2026-10-29T19:43:49.9422135Z ##[group]Installed versions +2026-10-29T19:43:49.9504543Z Successfully set up CPython (3.11.17) +2026-10-29T19:43:49.9505414Z ##[endgroup] +2026-10-29T19:43:49.9671882Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:43:49.9672595Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:43:49.9708542Z shell: /usr/bin/bash -e {0} +2026-10-29T19:43:49.9708814Z env: +2026-10-29T19:43:49.9709416Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:49.9710003Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:43:49.9710452Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:49.9710840Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:49.9711231Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:43:49.9711652Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:43:49.9711983Z PYTHONOPTIMIZE: 1 +2026-10-29T19:43:49.9712193Z ##[endgroup] +2026-10-29T19:43:51.5496328Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... FAIL +2026-10-29T19:43:51.5497573Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... FAIL +2026-10-29T19:43:51.5499573Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... FAIL +2026-10-29T19:43:51.5502017Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... FAIL +2026-10-29T19:43:51.5503731Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... FAIL +2026-10-29T19:43:51.5505801Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... FAIL +2026-10-29T19:43:51.5507685Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... FAIL +2026-10-29T19:43:51.5510219Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... FAIL +2026-10-29T19:43:51.5512159Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... FAIL +2026-10-29T19:43:51.5513878Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... FAIL +2026-10-29T19:43:51.5515548Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... FAIL +2026-10-29T19:43:51.5517379Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... FAIL +2026-10-29T19:43:51.5519459Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... FAIL +2026-10-29T19:43:51.5521182Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... FAIL +2026-10-29T19:43:51.5523025Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... FAIL +2026-10-29T19:43:51.5524746Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... FAIL +2026-10-29T19:43:51.5526482Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... FAIL +2026-10-29T19:43:51.5528184Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... FAIL +2026-10-29T19:43:51.5530284Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... FAIL +2026-10-29T19:43:51.5531916Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... FAIL +2026-10-29T19:43:51.5533624Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... FAIL +2026-10-29T19:43:51.5535412Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... FAIL +2026-10-29T19:43:51.5536955Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... FAIL +2026-10-29T19:43:51.5538730Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... FAIL +2026-10-29T19:43:51.5539920Z +2026-10-29T19:43:51.5540189Z ====================================================================== +2026-10-29T19:43:51.5541375Z FAIL: test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) +2026-10-29T19:43:51.5542652Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5543372Z Traceback (most recent call last): +2026-10-29T19:43:51.5550859Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5551373Z self.module = runner() +2026-10-29T19:43:51.5551624Z ^^^^^^^^ +2026-10-29T19:43:51.5552068Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5552626Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5553007Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5553223Z +2026-10-29T19:43:51.5553354Z ====================================================================== +2026-10-29T19:43:51.5553903Z FAIL: test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) +2026-10-29T19:43:51.5554469Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5554813Z Traceback (most recent call last): +2026-10-29T19:43:51.5555268Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5555749Z self.module = runner() +2026-10-29T19:43:51.5555984Z ^^^^^^^^ +2026-10-29T19:43:51.5556384Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5556918Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5557284Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5557502Z +2026-10-29T19:43:51.5557614Z ====================================================================== +2026-10-29T19:43:51.5558171Z FAIL: test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) +2026-10-29T19:43:51.5558752Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5559108Z Traceback (most recent call last): +2026-10-29T19:43:51.5559725Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5560374Z self.module = runner() +2026-10-29T19:43:51.5560598Z ^^^^^^^^ +2026-10-29T19:43:51.5561005Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5561534Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5561908Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5562126Z +2026-10-29T19:43:51.5562283Z ====================================================================== +2026-10-29T19:43:51.5563036Z FAIL: test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) +2026-10-29T19:43:51.5563692Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5564042Z Traceback (most recent call last): +2026-10-29T19:43:51.5564476Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5564910Z self.module = runner() +2026-10-29T19:43:51.5565131Z ^^^^^^^^ +2026-10-29T19:43:51.5565523Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5566038Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5566410Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5566628Z +2026-10-29T19:43:51.5566747Z ====================================================================== +2026-10-29T19:43:51.5567336Z FAIL: test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) +2026-10-29T19:43:51.5567947Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5568278Z Traceback (most recent call last): +2026-10-29T19:43:51.5568731Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5569330Z self.module = runner() +2026-10-29T19:43:51.5569575Z ^^^^^^^^ +2026-10-29T19:43:51.5569991Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5570524Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5570892Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5571102Z +2026-10-29T19:43:51.5571217Z ====================================================================== +2026-10-29T19:43:51.5571916Z FAIL: test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) +2026-10-29T19:43:51.5572637Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5572968Z Traceback (most recent call last): +2026-10-29T19:43:51.5573405Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5573834Z self.module = runner() +2026-10-29T19:43:51.5574060Z ^^^^^^^^ +2026-10-29T19:43:51.5574445Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5574955Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5575309Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5575519Z +2026-10-29T19:43:51.5575634Z ====================================================================== +2026-10-29T19:43:51.5576254Z FAIL: test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) +2026-10-29T19:43:51.5576902Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5577234Z Traceback (most recent call last): +2026-10-29T19:43:51.5577655Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5578086Z self.module = runner() +2026-10-29T19:43:51.5578306Z ^^^^^^^^ +2026-10-29T19:43:51.5578885Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5579533Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5579886Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5580090Z +2026-10-29T19:43:51.5580206Z ====================================================================== +2026-10-29T19:43:51.5580836Z FAIL: test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) +2026-10-29T19:43:51.5581495Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5581945Z Traceback (most recent call last): +2026-10-29T19:43:51.5582382Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5582808Z self.module = runner() +2026-10-29T19:43:51.5583025Z ^^^^^^^^ +2026-10-29T19:43:51.5583415Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5583935Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5584287Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5584502Z +2026-10-29T19:43:51.5584608Z ====================================================================== +2026-10-29T19:43:51.5585363Z FAIL: test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) +2026-10-29T19:43:51.5586124Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5586460Z Traceback (most recent call last): +2026-10-29T19:43:51.5586886Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5587307Z self.module = runner() +2026-10-29T19:43:51.5587542Z ^^^^^^^^ +2026-10-29T19:43:51.5587929Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5588442Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5588791Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5589003Z +2026-10-29T19:43:51.5589108Z ====================================================================== +2026-10-29T19:43:51.5589911Z FAIL: test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) +2026-10-29T19:43:51.5590569Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5590901Z Traceback (most recent call last): +2026-10-29T19:43:51.5591316Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5591735Z self.module = runner() +2026-10-29T19:43:51.5591948Z ^^^^^^^^ +2026-10-29T19:43:51.5592338Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5592847Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5593193Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5593399Z +2026-10-29T19:43:51.5593546Z ====================================================================== +2026-10-29T19:43:51.5594132Z FAIL: test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) +2026-10-29T19:43:51.5594736Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5595062Z Traceback (most recent call last): +2026-10-29T19:43:51.5595510Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5595944Z self.module = runner() +2026-10-29T19:43:51.5596162Z ^^^^^^^^ +2026-10-29T19:43:51.5596557Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5597218Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5597576Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5597788Z +2026-10-29T19:43:51.5597893Z ====================================================================== +2026-10-29T19:43:51.5598518Z FAIL: test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) +2026-10-29T19:43:51.5599286Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5599626Z Traceback (most recent call last): +2026-10-29T19:43:51.5600184Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5600616Z self.module = runner() +2026-10-29T19:43:51.5600836Z ^^^^^^^^ +2026-10-29T19:43:51.5601225Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5601745Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5602106Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5602311Z +2026-10-29T19:43:51.5602421Z ====================================================================== +2026-10-29T19:43:51.5603116Z FAIL: test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) +2026-10-29T19:43:51.5603838Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5604166Z Traceback (most recent call last): +2026-10-29T19:43:51.5604601Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5605029Z self.module = runner() +2026-10-29T19:43:51.5605249Z ^^^^^^^^ +2026-10-29T19:43:51.5605632Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5606142Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5606496Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5606706Z +2026-10-29T19:43:51.5606813Z ====================================================================== +2026-10-29T19:43:51.5607413Z FAIL: test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) +2026-10-29T19:43:51.5608041Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5608367Z Traceback (most recent call last): +2026-10-29T19:43:51.5608795Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5609376Z self.module = runner() +2026-10-29T19:43:51.5609594Z ^^^^^^^^ +2026-10-29T19:43:51.5609981Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5610492Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5610840Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5611060Z +2026-10-29T19:43:51.5611170Z ====================================================================== +2026-10-29T19:43:51.5611886Z FAIL: test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) +2026-10-29T19:43:51.5612624Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5612948Z Traceback (most recent call last): +2026-10-29T19:43:51.5613365Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5613788Z self.module = runner() +2026-10-29T19:43:51.5614010Z ^^^^^^^^ +2026-10-29T19:43:51.5614399Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5614908Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5615256Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5615603Z +2026-10-29T19:43:51.5615710Z ====================================================================== +2026-10-29T19:43:51.5616401Z FAIL: test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) +2026-10-29T19:43:51.5617124Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5617459Z Traceback (most recent call last): +2026-10-29T19:43:51.5617883Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5618307Z self.module = runner() +2026-10-29T19:43:51.5618635Z ^^^^^^^^ +2026-10-29T19:43:51.5619029Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5619762Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5620113Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5620326Z +2026-10-29T19:43:51.5620436Z ====================================================================== +2026-10-29T19:43:51.5621117Z FAIL: test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) +2026-10-29T19:43:51.5621823Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5622184Z Traceback (most recent call last): +2026-10-29T19:43:51.5622607Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5623057Z self.module = runner() +2026-10-29T19:43:51.5623275Z ^^^^^^^^ +2026-10-29T19:43:51.5623666Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5624174Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5624521Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5624733Z +2026-10-29T19:43:51.5624845Z ====================================================================== +2026-10-29T19:43:51.5625525Z FAIL: test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) +2026-10-29T19:43:51.5626208Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5626534Z Traceback (most recent call last): +2026-10-29T19:43:51.5626953Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5627370Z self.module = runner() +2026-10-29T19:43:51.5627585Z ^^^^^^^^ +2026-10-29T19:43:51.5627969Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5628477Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5628828Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5629032Z +2026-10-29T19:43:51.5629273Z ====================================================================== +2026-10-29T19:43:51.5629919Z FAIL: test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) +2026-10-29T19:43:51.5630576Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5630902Z Traceback (most recent call last): +2026-10-29T19:43:51.5631325Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5631750Z self.module = runner() +2026-10-29T19:43:51.5631973Z ^^^^^^^^ +2026-10-29T19:43:51.5632363Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5632869Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5633223Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5633435Z +2026-10-29T19:43:51.5633539Z ====================================================================== +2026-10-29T19:43:51.5634349Z FAIL: test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) +2026-10-29T19:43:51.5635026Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5635356Z Traceback (most recent call last): +2026-10-29T19:43:51.5635777Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5636197Z self.module = runner() +2026-10-29T19:43:51.5636415Z ^^^^^^^^ +2026-10-29T19:43:51.5637144Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5637871Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5638254Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5638470Z +2026-10-29T19:43:51.5638588Z ====================================================================== +2026-10-29T19:43:51.5639446Z FAIL: test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) +2026-10-29T19:43:51.5640109Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5640450Z Traceback (most recent call last): +2026-10-29T19:43:51.5640892Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5641332Z self.module = runner() +2026-10-29T19:43:51.5641558Z ^^^^^^^^ +2026-10-29T19:43:51.5641946Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5642469Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5642825Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5643037Z +2026-10-29T19:43:51.5643146Z ====================================================================== +2026-10-29T19:43:51.5643829Z FAIL: test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) +2026-10-29T19:43:51.5644668Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5645251Z Traceback (most recent call last): +2026-10-29T19:43:51.5645989Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5646480Z self.module = runner() +2026-10-29T19:43:51.5646702Z ^^^^^^^^ +2026-10-29T19:43:51.5647095Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5647748Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5648425Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5648796Z +2026-10-29T19:43:51.5648991Z ====================================================================== +2026-10-29T19:43:51.5650422Z FAIL: test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) +2026-10-29T19:43:51.5651210Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5651561Z Traceback (most recent call last): +2026-10-29T19:43:51.5652029Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5652474Z self.module = runner() +2026-10-29T19:43:51.5652700Z ^^^^^^^^ +2026-10-29T19:43:51.5653107Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5653640Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5654010Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5654231Z +2026-10-29T19:43:51.5654344Z ====================================================================== +2026-10-29T19:43:51.5654912Z FAIL: test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) +2026-10-29T19:43:51.5655509Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5656021Z Traceback (most recent call last): +2026-10-29T19:43:51.5656459Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 30, in setUp +2026-10-29T19:43:51.5656937Z self.module = runner() +2026-10-29T19:43:51.5674524Z ^^^^^^^^ +2026-10-29T19:43:51.5675027Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 20, in runner +2026-10-29T19:43:51.5675595Z raise AssertionError("prepared Node runner is missing") +2026-10-29T19:43:51.5675979Z AssertionError: prepared Node runner is missing +2026-10-29T19:43:51.5676199Z +2026-10-29T19:43:51.5676588Z ---------------------------------------------------------------------- +2026-10-29T19:43:51.5676944Z Ran 24 tests in 0.005s +2026-10-29T19:43:51.5677091Z +2026-10-29T19:43:51.5677178Z FAILED (failures=24) +2026-10-29T19:43:51.5689114Z ##[error]Process completed with exit code 1. +2026-10-29T19:43:51.5835923Z Post job cleanup. +2026-10-29T19:43:51.6707149Z [command]/usr/bin/git version +2026-10-29T19:43:51.6754346Z git version 2.56.0 +2026-10-29T19:43:51.6796562Z Temporarily overriding HOME='/home/runner/work/_temp/2c35be8d-0632-4bb6-91da-a4a760dc6437' before making global git config changes +2026-10-29T19:43:51.6798417Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:43:51.6800675Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:43:51.6838170Z Removing SSH command configuration +2026-10-29T19:43:51.6845742Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:43:51.6901458Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:43:51.7188002Z Removing HTTP extra header +2026-10-29T19:43:51.7197903Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:43:51.7232857Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:43:51.7530020Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:43:51.7540091Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:43:51.7600621Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:43:51.8078612Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/source-fixture-custody-normal.log b/cbz/evidence/cold-start-node/red/source-fixture-custody-normal.log new file mode 100644 index 000000000..59dd94a9b --- /dev/null +++ b/cbz/evidence/cold-start-node/red/source-fixture-custody-normal.log @@ -0,0 +1,382 @@ +2026-10-29T19:58:33.9384022Z Current runner version: '2.338.0' +2026-10-29T19:58:33.9408914Z ##[group]Runner Image Provisioner +2026-10-29T19:58:33.9409966Z Hosted Compute Agent +2026-10-29T19:58:33.9410807Z Version: 20261021.618 +2026-10-29T19:58:33.9411540Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:58:33.9412664Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:58:33.9413544Z Worker ID: {08146e8b-6dfb-4b68-acb7-f6a9a9618456} +2026-10-29T19:58:33.9414489Z Region: centralus +2026-10-29T19:58:33.9415223Z Cloud: Azure +2026-10-29T19:58:33.9415898Z ##[endgroup] +2026-10-29T19:58:33.9417739Z ##[group]Operating System +2026-10-29T19:58:33.9418543Z Ubuntu +2026-10-29T19:58:33.9419214Z 24.04.5 +2026-10-29T19:58:33.9419971Z LTS +2026-10-29T19:58:33.9420801Z ##[endgroup] +2026-10-29T19:58:33.9421600Z ##[group]Runner Image +2026-10-29T19:58:33.9422383Z Image: ubuntu-24.04 +2026-10-29T19:58:33.9423038Z Version: 20261025.353.1 +2026-10-29T19:58:33.9424705Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:58:33.9426802Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:58:33.9427958Z ##[endgroup] +2026-10-29T19:58:33.9429865Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:58:33.9432445Z Contents: read +2026-10-29T19:58:33.9433204Z Metadata: read +2026-10-29T19:58:33.9433979Z ##[endgroup] +2026-10-29T19:58:33.9436258Z Secret source: Actions +2026-10-29T19:58:33.9437447Z Cache mode: write +2026-10-29T19:58:33.9439050Z Prepare workflow directory +2026-10-29T19:58:33.9729766Z Prepare all required actions +2026-10-29T19:58:33.9768733Z Getting action download info +2026-10-29T19:58:34.2194301Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:58:34.3953962Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:58:34.5924054Z Complete job name: controls (0) +2026-10-29T19:58:34.6645086Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:58:34.6646010Z with: +2026-10-29T19:58:34.6646412Z persist-credentials: false +2026-10-29T19:58:34.6646869Z fetch-depth: 1 +2026-10-29T19:58:34.6647289Z repository: d6g8k5htny-coder/main +2026-10-29T19:58:34.6651704Z token: *** +2026-10-29T19:58:34.6652199Z ssh-strict: true +2026-10-29T19:58:34.6652607Z ssh-user: git +2026-10-29T19:58:34.6652983Z clean: true +2026-10-29T19:58:34.6653401Z sparse-checkout-cone-mode: true +2026-10-29T19:58:34.6654007Z fetch-tags: false +2026-10-29T19:58:34.6654431Z show-progress: true +2026-10-29T19:58:34.6654836Z lfs: false +2026-10-29T19:58:34.6655222Z submodules: false +2026-10-29T19:58:34.6655625Z set-safe-directory: true +2026-10-29T19:58:34.6656073Z allow-unsafe-pr-checkout: false +2026-10-29T19:58:34.6656827Z ##[endgroup] +2026-10-29T19:58:35.8601265Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:58:35.8603567Z ##[group]Getting Git version info +2026-10-29T19:58:35.8604334Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:58:35.8605469Z [command]/usr/bin/git version +2026-10-29T19:58:35.8841043Z git version 2.56.0 +2026-10-29T19:58:35.8859080Z ##[endgroup] +2026-10-29T19:58:35.8868889Z Temporarily overriding HOME='/home/runner/work/_temp/c046f10b-66f9-4de1-a6ca-9b5d204a7ff7' before making global git config changes +2026-10-29T19:58:35.8873842Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:58:35.8875734Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:58:35.8928913Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:58:35.8931810Z ##[group]Determining repository object format +2026-10-29T19:58:35.8933476Z ##[endgroup] +2026-10-29T19:58:35.8935455Z ##[group]Initializing the repository +2026-10-29T19:58:35.8936830Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:58:35.9044178Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:58:35.9046597Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:58:35.9048418Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:58:35.9049959Z hint: call: +2026-10-29T19:58:35.9051135Z hint: +2026-10-29T19:58:35.9052256Z hint: git config --global init.defaultBranch +2026-10-29T19:58:35.9053920Z hint: +2026-10-29T19:58:35.9055612Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:58:35.9058213Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:58:35.9060546Z hint: +2026-10-29T19:58:35.9061839Z hint: git branch -m +2026-10-29T19:58:35.9063262Z hint: +2026-10-29T19:58:35.9065183Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:58:35.9068019Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:58:35.9073090Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:58:35.9124479Z ##[endgroup] +2026-10-29T19:58:35.9126201Z ##[group]Disabling automatic garbage collection +2026-10-29T19:58:35.9127812Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:58:35.9174004Z ##[endgroup] +2026-10-29T19:58:35.9176016Z ##[group]Setting up auth +2026-10-29T19:58:35.9177764Z Removing SSH command configuration +2026-10-29T19:58:35.9179646Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:58:35.9219552Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:58:36.1032247Z Removing HTTP extra header +2026-10-29T19:58:36.1037073Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:58:36.1083076Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:58:36.1320801Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:58:36.1324965Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:58:36.1368554Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:58:36.1604167Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:58:36.1654719Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:36.1708245Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:36.1753874Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:36.1798718Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:36.1981896Z ##[endgroup] +2026-10-29T19:58:36.1983992Z ##[group]Fetching the repository +2026-10-29T19:58:36.1990412Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +6ee0918527dbc63edfdbc7601f0f8f4dfb20771f:refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:38.2613822Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:58:38.2614875Z * [new ref] 6ee0918527dbc63edfdbc7601f0f8f4dfb20771f -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:38.2622079Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:38.2657546Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:38.2664929Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:38.2699315Z 6ee0918527dbc63edfdbc7601f0f8f4dfb20771f +2026-10-29T19:58:38.2703169Z ##[endgroup] +2026-10-29T19:58:38.2703534Z ##[group]Determining the checkout info +2026-10-29T19:58:38.2704197Z ##[endgroup] +2026-10-29T19:58:38.2708630Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:58:38.2770769Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:58:38.2812502Z ##[group]Checking out the ref +2026-10-29T19:58:38.2816909Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:38.6182463Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:58:38.6186511Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:58:38.6205689Z ##[endgroup] +2026-10-29T19:58:38.6262022Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:58:38.6309821Z 6ee0918527dbc63edfdbc7601f0f8f4dfb20771f +2026-10-29T19:58:38.6322110Z ##[group]Removing auth +2026-10-29T19:58:38.6322497Z Removing SSH command configuration +2026-10-29T19:58:38.6324438Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:58:38.6371467Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:58:38.6599801Z Removing HTTP extra header +2026-10-29T19:58:38.6602367Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:58:38.6644930Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:58:38.6866116Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:58:38.6871210Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:58:38.6911688Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:58:38.6912261Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:58:38.6912697Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:58:38.6913173Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:58:38.6923065Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:58:38.6955110Z /home/runner/work/_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:38.6969518Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-730199d8\-8b33\-40f2\-811f\-d837d862a994\.config +2026-10-29T19:58:38.7015537Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:58:38.7048441Z /home/runner/work/_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:38.7056428Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-730199d8\-8b33\-40f2\-811f\-d837d862a994\.config +2026-10-29T19:58:38.7141823Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:58:38.7177326Z /github/runner_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:38.7185518Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-730199d8\-8b33\-40f2\-811f\-d837d862a994\.config +2026-10-29T19:58:38.7230786Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:58:38.7263687Z /github/runner_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config +2026-10-29T19:58:38.7271192Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-730199d8\-8b33\-40f2\-811f\-d837d862a994\.config +2026-10-29T19:58:38.7314512Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:58:38.7534957Z Removing credentials config '/home/runner/work/_temp/git-credentials-730199d8-8b33-40f2-811f-d837d862a994.config' +2026-10-29T19:58:38.7543521Z ##[endgroup] +2026-10-29T19:58:38.7773314Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:58:38.7773687Z with: +2026-10-29T19:58:38.7773863Z python-version: 3.11 +2026-10-29T19:58:38.7774050Z check-latest: false +2026-10-29T19:58:38.7776186Z token: *** +2026-10-29T19:58:38.7776369Z update-environment: true +2026-10-29T19:58:38.7776585Z allow-prereleases: false +2026-10-29T19:58:38.7776783Z freethreaded: false +2026-10-29T19:58:38.7776965Z ##[endgroup] +2026-10-29T19:58:38.8839935Z ##[group]Installed versions +2026-10-29T19:58:38.8907037Z Successfully set up CPython (3.11.17) +2026-10-29T19:58:38.8907652Z ##[endgroup] +2026-10-29T19:58:38.9173347Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:58:38.9174295Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:58:38.9218904Z shell: /usr/bin/bash -e {0} +2026-10-29T19:58:38.9219177Z env: +2026-10-29T19:58:38.9219543Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:38.9219955Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:58:38.9221151Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:38.9221570Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:38.9221995Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:38.9222429Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:58:38.9222781Z PYTHONOPTIMIZE: 0 +2026-10-29T19:58:38.9223006Z ##[endgroup] +2026-10-29T19:58:39.4170658Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T19:58:39.4171989Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T19:58:39.4179956Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... FAIL +2026-10-29T19:58:39.4181397Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T19:58:39.4182445Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T19:58:39.4183402Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T19:58:39.4184312Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T19:58:39.4895615Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:58:39.5099961Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T19:58:39.5360604Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... FAIL +2026-10-29T19:58:39.5603905Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:58:39.5769595Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:58:39.5951572Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:58:39.6117054Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... FAIL +2026-10-29T19:58:39.6414062Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:58:39.6595138Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... FAIL +2026-10-29T19:58:39.6770007Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... FAIL +2026-10-29T19:58:39.7031581Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:58:39.7407170Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:58:39.7593285Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:58:39.7788029Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:58:39.8043540Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:58:39.8295365Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:58:39.8529643Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:58:39.8724941Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:58:40.2133214Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:58:40.2306194Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:58:40.2614380Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... FAIL +2026-10-29T19:58:40.3677933Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:58:40.3922583Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:58:40.4172657Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:58:40.4454739Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:58:40.4718835Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:58:40.4886395Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:58:40.5054424Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:58:40.5331461Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... FAIL +2026-10-29T19:58:40.6745530Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:58:40.6933727Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:58:42.5538427Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T19:58:42.7682036Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T19:58:43.8401225Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... FAIL +2026-10-29T19:58:43.8401828Z +2026-10-29T19:58:43.8402003Z ====================================================================== +2026-10-29T19:58:43.8403100Z FAIL: test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) +2026-10-29T19:58:43.8403872Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8404272Z Traceback (most recent call last): +2026-10-29T19:58:43.8409640Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 424, in test_import_trace_inside_assertion_cannot_kill +2026-10-29T19:58:43.8410442Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T19:58:43.8410750Z AssertionError: True is not false +2026-10-29T19:58:43.8410911Z +2026-10-29T19:58:43.8411010Z ====================================================================== +2026-10-29T19:58:43.8411552Z FAIL: test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) +2026-10-29T19:58:43.8412087Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8412361Z Traceback (most recent call last): +2026-10-29T19:58:43.8412881Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 141, in test_child_fixture_mutation_is_a_failed_postflight +2026-10-29T19:58:43.8413391Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:43.8413743Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:43.8413968Z +2026-10-29T19:58:43.8414064Z ====================================================================== +2026-10-29T19:58:43.8414575Z FAIL: test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) +2026-10-29T19:58:43.8415091Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8415361Z Traceback (most recent call last): +2026-10-29T19:58:43.8415835Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 163, in test_fixture_file_directory_and_type_set_is_exact +2026-10-29T19:58:43.8416356Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:43.8416707Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:43.8416928Z +2026-10-29T19:58:43.8417028Z ====================================================================== +2026-10-29T19:58:43.8417557Z FAIL: test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) +2026-10-29T19:58:43.8418298Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8418565Z Traceback (most recent call last): +2026-10-29T19:58:43.8419028Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 83, in test_loaded_source_and_imported_helper_cannot_drift +2026-10-29T19:58:43.8419517Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:43.8419880Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:43.8420103Z +2026-10-29T19:58:43.8420395Z ====================================================================== +2026-10-29T19:58:43.8420896Z FAIL: test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) +2026-10-29T19:58:43.8421418Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8421689Z Traceback (most recent call last): +2026-10-29T19:58:43.8422155Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 77, in test_loaded_sources_must_belong_to_selected_main +2026-10-29T19:58:43.8422647Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:43.8423004Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:43.8423223Z +2026-10-29T19:58:43.8423353Z ====================================================================== +2026-10-29T19:58:43.8423936Z FAIL: test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) +2026-10-29T19:58:43.8424437Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8424711Z Traceback (most recent call last): +2026-10-29T19:58:43.8425156Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 124, in test_selected_node_test_symlink_is_rejected +2026-10-29T19:58:43.8425634Z with self.assertRaisesRegex(ValueError, "regular.*Node"): +2026-10-29T19:58:43.8425918Z AssertionError: ValueError not raised +2026-10-29T19:58:43.8426060Z +2026-10-29T19:58:43.8426147Z ====================================================================== +2026-10-29T19:58:43.8426717Z FAIL: test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) +2026-10-29T19:58:43.8427300Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8427573Z Traceback (most recent call last): +2026-10-29T19:58:43.8428062Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 115, in test_tracked_source_symlink_cannot_bind_an_external_dependency +2026-10-29T19:58:43.8428608Z with self.assertRaisesRegex(ValueError, "unsupported tracked Git entry"): +2026-10-29T19:58:43.8428922Z AssertionError: ValueError not raised +2026-10-29T19:58:43.8429064Z +2026-10-29T19:58:43.8429151Z ====================================================================== +2026-10-29T19:58:43.8429602Z FAIL: test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) +2026-10-29T19:58:43.8430081Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8430505Z Traceback (most recent call last): +2026-10-29T19:58:43.8430936Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 481, in test_unmodified_copied_source_passes +2026-10-29T19:58:43.8431423Z self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +2026-10-29T19:58:43.8432000Z AssertionError: 1 != 0 : test_all_byte_identities_are_required (tests.test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:58:43.8432844Z test_ambient_git_redirect_cannot_select_another_object_database (tests.test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T19:58:43.8433847Z test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... FAIL +2026-10-29T19:58:43.8434544Z test_clean_snapshot_binds_head (tests.test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:58:43.8435158Z test_duplicate_config_keys_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:58:43.8435824Z test_existing_output_is_never_overwritten (tests.test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:58:43.8436579Z test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... FAIL +2026-10-29T19:58:43.8437318Z test_invalid_descriptor_domains_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:58:43.8438072Z test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... FAIL +2026-10-29T19:58:43.8438884Z test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... FAIL +2026-10-29T19:58:43.8439694Z test_materialization_checks_every_input_before_writing (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:58:43.8440854Z test_materialization_preserves_exact_bytes (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:58:43.8441592Z test_missing_executable_is_an_execution_error (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:58:43.8442409Z test_missing_historical_object_does_not_fall_back_to_worktree (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:58:43.8443239Z test_node_command_enumerates_every_tracked_test (tests.test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:58:43.8443946Z test_output_in_any_source_root_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:58:43.8444653Z test_preflight_failure_produces_fail_report (tests.test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:58:43.8445436Z test_reads_immutable_blob_instead_of_dirty_working_copy (tests.test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:58:43.8446210Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:58:43.8446984Z test_report_is_atomic_and_keeps_running_distinct_from_pass (tests.test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:58:43.8447775Z test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... FAIL +2026-10-29T19:58:43.8448542Z test_snapshot_detects_assume_unchanged_source_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:58:43.8449364Z test_snapshot_detects_hidden_executable_mode_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:58:43.8450299Z test_snapshot_detects_index_and_untracked_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:58:43.8451076Z test_subprocess_exit_and_output_are_preserved (tests.test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:58:43.8451957Z test_symlink_is_not_admitted_as_a_regular_fixture (tests.test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:58:43.8452698Z test_tap_missing_or_duplicate_fields_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:58:43.8453464Z test_tap_requires_nonzero_complete_all_passed_summary (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:58:43.8454338Z test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... FAIL +2026-10-29T19:58:43.8455066Z test_url_alias_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:58:43.8455657Z test_zero_tracked_node_tests_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:58:43.8456017Z +2026-10-29T19:58:43.8456110Z ====================================================================== +2026-10-29T19:58:43.8456634Z FAIL: test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) +2026-10-29T19:58:43.8457170Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8457531Z Traceback (most recent call last): +2026-10-29T19:58:43.8458052Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 141, in test_child_fixture_mutation_is_a_failed_postflight +2026-10-29T19:58:43.8458539Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:43.8458887Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:43.8459108Z +2026-10-29T19:58:43.8459199Z ====================================================================== +2026-10-29T19:58:43.8459727Z FAIL: test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) +2026-10-29T19:58:43.8460400Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8460662Z Traceback (most recent call last): +2026-10-29T19:58:43.8461108Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 163, in test_fixture_file_directory_and_type_set_is_exact +2026-10-29T19:58:43.8461583Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:43.8461912Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:43.8462127Z +2026-10-29T19:58:43.8462211Z ====================================================================== +2026-10-29T19:58:43.8462737Z FAIL: test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) +2026-10-29T19:58:43.8463302Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8463558Z Traceback (most recent call last): +2026-10-29T19:58:43.8464003Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 83, in test_loaded_source_and_imported_helper_cannot_drift +2026-10-29T19:58:43.8464477Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:43.8464829Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:43.8465062Z +2026-10-29T19:58:43.8465156Z ====================================================================== +2026-10-29T19:58:43.8465655Z FAIL: test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) +2026-10-29T19:58:43.8466174Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8466428Z Traceback (most recent call last): +2026-10-29T19:58:43.8466966Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 77, in test_loaded_sources_must_belong_to_selected_main +2026-10-29T19:58:43.8467437Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:43.8467782Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:43.8468001Z +2026-10-29T19:58:43.8468090Z ====================================================================== +2026-10-29T19:58:43.8468572Z FAIL: test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) +2026-10-29T19:58:43.8469068Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8469322Z Traceback (most recent call last): +2026-10-29T19:58:43.8469751Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 124, in test_selected_node_test_symlink_is_rejected +2026-10-29T19:58:43.8470368Z with self.assertRaisesRegex(ValueError, "regular.*Node"): +2026-10-29T19:58:43.8470656Z AssertionError: ValueError not raised +2026-10-29T19:58:43.8470797Z +2026-10-29T19:58:43.8470888Z ====================================================================== +2026-10-29T19:58:43.8471464Z FAIL: test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) +2026-10-29T19:58:43.8472160Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8472427Z Traceback (most recent call last): +2026-10-29T19:58:43.8472923Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 115, in test_tracked_source_symlink_cannot_bind_an_external_dependency +2026-10-29T19:58:43.8473470Z with self.assertRaisesRegex(ValueError, "unsupported tracked Git entry"): +2026-10-29T19:58:43.8473783Z AssertionError: ValueError not raised +2026-10-29T19:58:43.8473920Z +2026-10-29T19:58:43.8474043Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8474298Z Ran 31 tests in 0.996s +2026-10-29T19:58:43.8474405Z +2026-10-29T19:58:43.8474480Z FAILED (failures=6) +2026-10-29T19:58:43.8474584Z +2026-10-29T19:58:43.8474587Z +2026-10-29T19:58:43.8474699Z ---------------------------------------------------------------------- +2026-10-29T19:58:43.8474950Z Ran 41 tests in 4.423s +2026-10-29T19:58:43.8475055Z +2026-10-29T19:58:43.8475122Z FAILED (failures=8) +2026-10-29T19:58:43.8542739Z ##[error]Process completed with exit code 1. +2026-10-29T19:58:43.8654269Z Post job cleanup. +2026-10-29T19:58:43.9406144Z [command]/usr/bin/git version +2026-10-29T19:58:43.9451107Z git version 2.56.0 +2026-10-29T19:58:43.9485661Z Temporarily overriding HOME='/home/runner/work/_temp/a63cb07d-a1c8-4231-8fc4-c4b19e5643d9' before making global git config changes +2026-10-29T19:58:43.9486279Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:58:43.9491991Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:58:43.9531005Z Removing SSH command configuration +2026-10-29T19:58:43.9537444Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:58:43.9592151Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:58:43.9839067Z Removing HTTP extra header +2026-10-29T19:58:43.9845114Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:58:43.9893790Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:58:44.0154363Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:58:44.0173913Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:58:44.0204728Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:58:44.0577784Z Cleaning up orphan processes diff --git a/cbz/evidence/cold-start-node/red/source-fixture-custody-optimized.log b/cbz/evidence/cold-start-node/red/source-fixture-custody-optimized.log new file mode 100644 index 000000000..d2eab5ca0 --- /dev/null +++ b/cbz/evidence/cold-start-node/red/source-fixture-custody-optimized.log @@ -0,0 +1,382 @@ +2026-10-29T19:58:25.3523244Z Current runner version: '2.338.0' +2026-10-29T19:58:25.3555362Z ##[group]Runner Image Provisioner +2026-10-29T19:58:25.3556391Z Hosted Compute Agent +2026-10-29T19:58:25.3557123Z Version: 20261021.618 +2026-10-29T19:58:25.3557778Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-29T19:58:25.3558975Z Build Date: 2026-10-21T00:45:21Z +2026-10-29T19:58:25.3559702Z Worker ID: {7d026ffb-1601-468e-9b86-cf37faa96848} +2026-10-29T19:58:25.3560436Z Region: centralus +2026-10-29T19:58:25.3561081Z Cloud: Azure +2026-10-29T19:58:25.3561659Z ##[endgroup] +2026-10-29T19:58:25.3563360Z ##[group]Operating System +2026-10-29T19:58:25.3564031Z Ubuntu +2026-10-29T19:58:25.3564967Z 24.04.5 +2026-10-29T19:58:25.3565599Z LTS +2026-10-29T19:58:25.3566152Z ##[endgroup] +2026-10-29T19:58:25.3566780Z ##[group]Runner Image +2026-10-29T19:58:25.3567417Z Image: ubuntu-24.04 +2026-10-29T19:58:25.3568028Z Version: 20261025.353.1 +2026-10-29T19:58:25.3569403Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md +2026-10-29T19:58:25.3571065Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353 +2026-10-29T19:58:25.3572074Z ##[endgroup] +2026-10-29T19:58:25.3573581Z ##[group]GITHUB_TOKEN Permissions +2026-10-29T19:58:25.3576672Z Contents: read +2026-10-29T19:58:25.3577755Z Metadata: read +2026-10-29T19:58:25.3578886Z ##[endgroup] +2026-10-29T19:58:25.3582015Z Secret source: Actions +2026-10-29T19:58:25.3583688Z Cache mode: write +2026-10-29T19:58:25.3585854Z Prepare workflow directory +2026-10-29T19:58:25.3966147Z Prepare all required actions +2026-10-29T19:58:25.4016944Z Getting action download info +2026-10-29T19:58:25.6553176Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1) +2026-10-29T19:58:25.8211117Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97) +2026-10-29T19:58:26.0705769Z Complete job name: controls (1) +2026-10-29T19:58:26.1578397Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 +2026-10-29T19:58:26.1579473Z with: +2026-10-29T19:58:26.1579942Z persist-credentials: false +2026-10-29T19:58:26.1580477Z fetch-depth: 1 +2026-10-29T19:58:26.1580959Z repository: d6g8k5htny-coder/main +2026-10-29T19:58:26.1585171Z token: *** +2026-10-29T19:58:26.1585630Z ssh-strict: true +2026-10-29T19:58:26.1586085Z ssh-user: git +2026-10-29T19:58:26.1586526Z clean: true +2026-10-29T19:58:26.1586984Z sparse-checkout-cone-mode: true +2026-10-29T19:58:26.1587523Z fetch-tags: false +2026-10-29T19:58:26.1587976Z show-progress: true +2026-10-29T19:58:26.1588438Z lfs: false +2026-10-29T19:58:26.1588858Z submodules: false +2026-10-29T19:58:26.1589332Z set-safe-directory: true +2026-10-29T19:58:26.1589851Z allow-unsafe-pr-checkout: false +2026-10-29T19:58:26.1590662Z ##[endgroup] +2026-10-29T19:58:26.4778591Z Syncing repository: d6g8k5htny-coder/main +2026-10-29T19:58:26.4780911Z ##[group]Getting Git version info +2026-10-29T19:58:26.4781619Z Working directory is '/home/runner/work/main/main' +2026-10-29T19:58:26.4782628Z [command]/usr/bin/git version +2026-10-29T19:58:26.4904458Z git version 2.56.0 +2026-10-29T19:58:26.4931156Z ##[endgroup] +2026-10-29T19:58:26.4943598Z Temporarily overriding HOME='/home/runner/work/_temp/e7fd340c-e849-4451-8d90-c40973794aca' before making global git config changes +2026-10-29T19:58:26.4946145Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:58:26.4950808Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:58:26.5042029Z Deleting the contents of '/home/runner/work/main/main' +2026-10-29T19:58:26.5046351Z ##[group]Determining repository object format +2026-10-29T19:58:26.5047884Z ##[endgroup] +2026-10-29T19:58:26.5049124Z ##[group]Initializing the repository +2026-10-29T19:58:26.5053050Z [command]/usr/bin/git init /home/runner/work/main/main +2026-10-29T19:58:26.5195520Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-29T19:58:26.5197166Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-29T19:58:26.5198273Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-29T19:58:26.5199136Z hint: call: +2026-10-29T19:58:26.5199584Z hint: +2026-10-29T19:58:26.5200163Z hint: git config --global init.defaultBranch +2026-10-29T19:58:26.5200869Z hint: +2026-10-29T19:58:26.5201521Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-29T19:58:26.5202602Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-29T19:58:26.5203462Z hint: +2026-10-29T19:58:26.5203932Z hint: git branch -m +2026-10-29T19:58:26.5204745Z hint: +2026-10-29T19:58:26.5205448Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-29T19:58:26.5220362Z Initialized empty Git repository in /home/runner/work/main/main/.git/ +2026-10-29T19:58:26.5230973Z [command]/usr/bin/git remote add origin https://github.com/d6g8k5htny-coder/main +2026-10-29T19:58:26.5288979Z ##[endgroup] +2026-10-29T19:58:26.5290371Z ##[group]Disabling automatic garbage collection +2026-10-29T19:58:26.5293286Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-29T19:58:26.5396179Z ##[endgroup] +2026-10-29T19:58:26.5398120Z ##[group]Setting up auth +2026-10-29T19:58:26.5399354Z Removing SSH command configuration +2026-10-29T19:58:26.5401058Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:58:26.5420314Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:58:26.5865384Z Removing HTTP extra header +2026-10-29T19:58:26.5871349Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:58:26.5919336Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:58:26.6170070Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:58:26.6181436Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:58:26.6228132Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:58:26.6475189Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-29T19:58:26.6523982Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git.path /home/runner/work/_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:26.6568399Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/main/main/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:26.6612322Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:26.6656285Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:26.6697085Z ##[endgroup] +2026-10-29T19:58:26.6698346Z ##[group]Fetching the repository +2026-10-29T19:58:26.6703198Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +6ee0918527dbc63edfdbc7601f0f8f4dfb20771f:refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:28.4976757Z From https://github.com/d6g8k5htny-coder/main +2026-10-29T19:58:28.4979202Z * [new ref] 6ee0918527dbc63edfdbc7601f0f8f4dfb20771f -> origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:28.4985490Z [command]/usr/bin/git branch --list --remote origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:28.5024745Z origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:28.5033950Z [command]/usr/bin/git rev-parse refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:28.5083389Z 6ee0918527dbc63edfdbc7601f0f8f4dfb20771f +2026-10-29T19:58:28.5090431Z ##[endgroup] +2026-10-29T19:58:28.5091772Z ##[group]Determining the checkout info +2026-10-29T19:58:28.5098752Z ##[endgroup] +2026-10-29T19:58:28.5100355Z [command]/usr/bin/git sparse-checkout disable +2026-10-29T19:58:28.5180947Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-29T19:58:28.5233330Z ##[group]Checking out the ref +2026-10-29T19:58:28.5242704Z [command]/usr/bin/git checkout --progress --force -B cbz/cold-start-node-20261029 refs/remotes/origin/cbz/cold-start-node-20261029 +2026-10-29T19:58:28.9684653Z Switched to a new branch 'cbz/cold-start-node-20261029' +2026-10-29T19:58:28.9705171Z branch 'cbz/cold-start-node-20261029' set up to track 'origin/cbz/cold-start-node-20261029'. +2026-10-29T19:58:28.9727432Z ##[endgroup] +2026-10-29T19:58:28.9791048Z [command]/usr/bin/git log -1 --format=%H +2026-10-29T19:58:28.9830994Z 6ee0918527dbc63edfdbc7601f0f8f4dfb20771f +2026-10-29T19:58:28.9842300Z ##[group]Removing auth +2026-10-29T19:58:28.9842958Z Removing SSH command configuration +2026-10-29T19:58:28.9847540Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:58:28.9892332Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:58:29.0318836Z Removing HTTP extra header +2026-10-29T19:58:29.0320783Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:58:29.0384297Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:58:29.0719342Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:58:29.0721232Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:58:29.0752970Z includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:58:29.0754546Z includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:58:29.0762975Z includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:58:29.0764965Z includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:58:29.0767878Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git.path +2026-10-29T19:58:29.0813851Z /home/runner/work/_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:29.0876472Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-05e13687\-105a\-403a\-9c5b\-d5af706960bb\.config +2026-10-29T19:58:29.0903852Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path +2026-10-29T19:58:29.0940473Z /home/runner/work/_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:29.0950326Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/main/main/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-05e13687\-105a\-403a\-9c5b\-d5af706960bb\.config +2026-10-29T19:58:29.0999927Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path +2026-10-29T19:58:29.1036550Z /github/runner_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:29.1045763Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-05e13687\-105a\-403a\-9c5b\-d5af706960bb\.config +2026-10-29T19:58:29.1093099Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path +2026-10-29T19:58:29.1129742Z /github/runner_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config +2026-10-29T19:58:29.1139379Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-05e13687\-105a\-403a\-9c5b\-d5af706960bb\.config +2026-10-29T19:58:29.1189822Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:58:29.1453184Z Removing credentials config '/home/runner/work/_temp/git-credentials-05e13687-105a-403a-9c5b-d5af706960bb.config' +2026-10-29T19:58:29.1463328Z ##[endgroup] +2026-10-29T19:58:29.1748038Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 +2026-10-29T19:58:29.1748618Z with: +2026-10-29T19:58:29.1748913Z python-version: 3.11 +2026-10-29T19:58:29.1749234Z check-latest: false +2026-10-29T19:58:29.1752210Z token: *** +2026-10-29T19:58:29.1752520Z update-environment: true +2026-10-29T19:58:29.1752871Z allow-prereleases: false +2026-10-29T19:58:29.1753194Z freethreaded: false +2026-10-29T19:58:29.1753489Z ##[endgroup] +2026-10-29T19:58:29.3083142Z ##[group]Installed versions +2026-10-29T19:58:29.3193558Z Successfully set up CPython (3.11.17) +2026-10-29T19:58:29.3196084Z ##[endgroup] +2026-10-29T19:58:29.3572423Z ##[group]Run python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:58:29.3573847Z python -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +2026-10-29T19:58:29.3639253Z shell: /usr/bin/bash -e {0} +2026-10-29T19:58:29.3639899Z env: +2026-10-29T19:58:29.3640540Z pythonLocation: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:29.3641524Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib/pkgconfig +2026-10-29T19:58:29.3642526Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:29.3643422Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:29.3644557Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.17/x64 +2026-10-29T19:58:29.3645493Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.17/x64/lib +2026-10-29T19:58:29.3646270Z PYTHONOPTIMIZE: 1 +2026-10-29T19:58:29.3646801Z ##[endgroup] +2026-10-29T19:58:31.3785250Z test_errors_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_errors_cannot_kill) ... ok +2026-10-29T19:58:31.3787041Z test_foreign_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_foreign_assertion_cannot_kill) ... ok +2026-10-29T19:58:31.3795295Z test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) ... FAIL +2026-10-29T19:58:31.3797131Z test_intended_assertion_counts (test_cbz_node_regression.MutationHarnessTests.test_intended_assertion_counts) ... ok +2026-10-29T19:58:31.3798770Z test_launch_failure_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_launch_failure_cannot_kill) ... ok +2026-10-29T19:58:31.3800255Z test_no_tests_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_no_tests_cannot_kill) ... ok +2026-10-29T19:58:31.3801739Z test_success_exit_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_success_exit_cannot_kill) ... ok +2026-10-29T19:58:32.1859108Z test_all_byte_identities_are_required (test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:58:32.2088645Z test_ambient_git_redirect_cannot_select_another_object_database (test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T19:58:32.2272629Z test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... FAIL +2026-10-29T19:58:32.2542191Z test_clean_snapshot_binds_head (test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:58:32.2723992Z test_duplicate_config_keys_refuse (test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:58:32.2911652Z test_existing_output_is_never_overwritten (test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:58:32.3080177Z test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... FAIL +2026-10-29T19:58:32.3284494Z test_invalid_descriptor_domains_refuse (test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:58:32.3511331Z test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... FAIL +2026-10-29T19:58:32.3696691Z test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... FAIL +2026-10-29T19:58:32.3962105Z test_materialization_checks_every_input_before_writing (test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:58:32.4189304Z test_materialization_preserves_exact_bytes (test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:58:32.4379200Z test_missing_executable_is_an_execution_error (test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:58:32.4580445Z test_missing_historical_object_does_not_fall_back_to_worktree (test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:58:32.4862525Z test_node_command_enumerates_every_tracked_test (test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:58:32.5054857Z test_output_in_any_source_root_refuses (test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:58:32.5318603Z test_preflight_failure_produces_fail_report (test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:58:32.5538336Z test_reads_immutable_blob_instead_of_dirty_working_copy (test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:58:32.8827554Z test_real_node_skips_are_not_a_green_suite (test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:58:32.9028071Z test_report_is_atomic_and_keeps_running_distinct_from_pass (test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:58:32.9291574Z test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... FAIL +2026-10-29T19:58:32.9625557Z test_snapshot_detects_assume_unchanged_source_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:58:32.9920428Z test_snapshot_detects_hidden_executable_mode_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:58:33.0236996Z test_snapshot_detects_index_and_untracked_changes (test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:58:33.0694168Z test_subprocess_exit_and_output_are_preserved (test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:58:33.0998024Z test_symlink_is_not_admitted_as_a_regular_fixture (test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:58:33.1194055Z test_tap_missing_or_duplicate_fields_refuse (test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:58:33.1384267Z test_tap_requires_nonzero_complete_all_passed_summary (test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:58:33.1710823Z test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... FAIL +2026-10-29T19:58:33.1919115Z test_url_alias_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:58:33.2125299Z test_zero_tracked_node_tests_refuses (test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:58:39.6130522Z test_every_source_mutation_has_its_intended_assertion (test_cbz_node_regression.SourceMutationTests.test_every_source_mutation_has_its_intended_assertion) ... ok +2026-10-29T19:58:40.4551383Z test_harness_mutations_are_rejected_by_named_controls (test_cbz_node_regression.SourceMutationTests.test_harness_mutations_are_rejected_by_named_controls) ... ok +2026-10-29T19:58:41.6872242Z test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) ... FAIL +2026-10-29T19:58:41.6873113Z +2026-10-29T19:58:41.6873261Z ====================================================================== +2026-10-29T19:58:41.6874272Z FAIL: test_import_trace_inside_assertion_cannot_kill (test_cbz_node_regression.MutationHarnessTests.test_import_trace_inside_assertion_cannot_kill) +2026-10-29T19:58:41.6875280Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6875648Z Traceback (most recent call last): +2026-10-29T19:58:41.6881307Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 424, in test_import_trace_inside_assertion_cannot_kill +2026-10-29T19:58:41.6882041Z self.assertFalse(assertion_kill(result, "test_expected")) +2026-10-29T19:58:41.6882418Z AssertionError: True is not false +2026-10-29T19:58:41.6882590Z +2026-10-29T19:58:41.6882710Z ====================================================================== +2026-10-29T19:58:41.6883407Z FAIL: test_child_fixture_mutation_is_a_failed_postflight (test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) +2026-10-29T19:58:41.6895263Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6915241Z Traceback (most recent call last): +2026-10-29T19:58:41.6916360Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 141, in test_child_fixture_mutation_is_a_failed_postflight +2026-10-29T19:58:41.6917241Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:41.6918043Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:41.6918548Z +2026-10-29T19:58:41.6918738Z ====================================================================== +2026-10-29T19:58:41.6919897Z FAIL: test_fixture_file_directory_and_type_set_is_exact (test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) +2026-10-29T19:58:41.6921123Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6921692Z Traceback (most recent call last): +2026-10-29T19:58:41.6922583Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 163, in test_fixture_file_directory_and_type_set_is_exact +2026-10-29T19:58:41.6923282Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:41.6923738Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:41.6924028Z +2026-10-29T19:58:41.6924143Z ====================================================================== +2026-10-29T19:58:41.6925177Z FAIL: test_loaded_source_and_imported_helper_cannot_drift (test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) +2026-10-29T19:58:41.6926132Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6926469Z Traceback (most recent call last): +2026-10-29T19:58:41.6927120Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 83, in test_loaded_source_and_imported_helper_cannot_drift +2026-10-29T19:58:41.6927794Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:41.6928273Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:41.6928573Z +2026-10-29T19:58:41.6928699Z ====================================================================== +2026-10-29T19:58:41.6929359Z FAIL: test_loaded_sources_must_belong_to_selected_main (test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) +2026-10-29T19:58:41.6930033Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6930365Z Traceback (most recent call last): +2026-10-29T19:58:41.6930983Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 77, in test_loaded_sources_must_belong_to_selected_main +2026-10-29T19:58:41.6931637Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:41.6932103Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:41.6932403Z +2026-10-29T19:58:41.6932512Z ====================================================================== +2026-10-29T19:58:41.6933256Z FAIL: test_selected_node_test_symlink_is_rejected (test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) +2026-10-29T19:58:41.6933905Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6934233Z Traceback (most recent call last): +2026-10-29T19:58:41.6935105Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 124, in test_selected_node_test_symlink_is_rejected +2026-10-29T19:58:41.6935741Z with self.assertRaisesRegex(ValueError, "regular.*Node"): +2026-10-29T19:58:41.6936103Z AssertionError: ValueError not raised +2026-10-29T19:58:41.6936285Z +2026-10-29T19:58:41.6936388Z ====================================================================== +2026-10-29T19:58:41.6937135Z FAIL: test_tracked_source_symlink_cannot_bind_an_external_dependency (test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) +2026-10-29T19:58:41.6937925Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6938260Z Traceback (most recent call last): +2026-10-29T19:58:41.6938923Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 115, in test_tracked_source_symlink_cannot_bind_an_external_dependency +2026-10-29T19:58:41.6939668Z with self.assertRaisesRegex(ValueError, "unsupported tracked Git entry"): +2026-10-29T19:58:41.6940082Z AssertionError: ValueError not raised +2026-10-29T19:58:41.6940263Z +2026-10-29T19:58:41.6940367Z ====================================================================== +2026-10-29T19:58:41.6940971Z FAIL: test_unmodified_copied_source_passes (test_cbz_node_regression.SourceMutationTests.test_unmodified_copied_source_passes) +2026-10-29T19:58:41.6941589Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6941914Z Traceback (most recent call last): +2026-10-29T19:58:41.6942496Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 481, in test_unmodified_copied_source_passes +2026-10-29T19:58:41.6943143Z self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +2026-10-29T19:58:41.6943907Z AssertionError: 1 != 0 : test_all_byte_identities_are_required (tests.test_cbz_node_regression.NodeRunnerTests.test_all_byte_identities_are_required) ... ok +2026-10-29T19:58:41.6945407Z test_ambient_git_redirect_cannot_select_another_object_database (tests.test_cbz_node_regression.NodeRunnerTests.test_ambient_git_redirect_cannot_select_another_object_database) ... ok +2026-10-29T19:58:41.6946855Z test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) ... FAIL +2026-10-29T19:58:41.6947802Z test_clean_snapshot_binds_head (tests.test_cbz_node_regression.NodeRunnerTests.test_clean_snapshot_binds_head) ... ok +2026-10-29T19:58:41.6948625Z test_duplicate_config_keys_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_duplicate_config_keys_refuse) ... ok +2026-10-29T19:58:41.6949528Z test_existing_output_is_never_overwritten (tests.test_cbz_node_regression.NodeRunnerTests.test_existing_output_is_never_overwritten) ... ok +2026-10-29T19:58:41.6950530Z test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) ... FAIL +2026-10-29T19:58:41.6951513Z test_invalid_descriptor_domains_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_invalid_descriptor_domains_refuse) ... ok +2026-10-29T19:58:41.6952521Z test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) ... FAIL +2026-10-29T19:58:41.6953601Z test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) ... FAIL +2026-10-29T19:58:41.6955034Z test_materialization_checks_every_input_before_writing (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_checks_every_input_before_writing) ... ok +2026-10-29T19:58:41.6956237Z test_materialization_preserves_exact_bytes (tests.test_cbz_node_regression.NodeRunnerTests.test_materialization_preserves_exact_bytes) ... ok +2026-10-29T19:58:41.6957245Z test_missing_executable_is_an_execution_error (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_executable_is_an_execution_error) ... ok +2026-10-29T19:58:41.6958344Z test_missing_historical_object_does_not_fall_back_to_worktree (tests.test_cbz_node_regression.NodeRunnerTests.test_missing_historical_object_does_not_fall_back_to_worktree) ... ok +2026-10-29T19:58:41.6959467Z test_node_command_enumerates_every_tracked_test (tests.test_cbz_node_regression.NodeRunnerTests.test_node_command_enumerates_every_tracked_test) ... ok +2026-10-29T19:58:41.6960425Z test_output_in_any_source_root_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_output_in_any_source_root_refuses) ... ok +2026-10-29T19:58:41.6961368Z test_preflight_failure_produces_fail_report (tests.test_cbz_node_regression.NodeRunnerTests.test_preflight_failure_produces_fail_report) ... ok +2026-10-29T19:58:41.6962432Z test_reads_immutable_blob_instead_of_dirty_working_copy (tests.test_cbz_node_regression.NodeRunnerTests.test_reads_immutable_blob_instead_of_dirty_working_copy) ... ok +2026-10-29T19:58:41.6963467Z test_real_node_skips_are_not_a_green_suite (tests.test_cbz_node_regression.NodeRunnerTests.test_real_node_skips_are_not_a_green_suite) ... ok +2026-10-29T19:58:41.6964739Z test_report_is_atomic_and_keeps_running_distinct_from_pass (tests.test_cbz_node_regression.NodeRunnerTests.test_report_is_atomic_and_keeps_running_distinct_from_pass) ... ok +2026-10-29T19:58:41.6965824Z test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) ... FAIL +2026-10-29T19:58:41.6966867Z test_snapshot_detects_assume_unchanged_source_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_assume_unchanged_source_changes) ... ok +2026-10-29T19:58:41.6967976Z test_snapshot_detects_hidden_executable_mode_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_hidden_executable_mode_changes) ... ok +2026-10-29T19:58:41.6969063Z test_snapshot_detects_index_and_untracked_changes (tests.test_cbz_node_regression.NodeRunnerTests.test_snapshot_detects_index_and_untracked_changes) ... ok +2026-10-29T19:58:41.6970115Z test_subprocess_exit_and_output_are_preserved (tests.test_cbz_node_regression.NodeRunnerTests.test_subprocess_exit_and_output_are_preserved) ... ok +2026-10-29T19:58:41.6971273Z test_symlink_is_not_admitted_as_a_regular_fixture (tests.test_cbz_node_regression.NodeRunnerTests.test_symlink_is_not_admitted_as_a_regular_fixture) ... ok +2026-10-29T19:58:41.6972274Z test_tap_missing_or_duplicate_fields_refuse (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_missing_or_duplicate_fields_refuse) ... ok +2026-10-29T19:58:41.6973309Z test_tap_requires_nonzero_complete_all_passed_summary (tests.test_cbz_node_regression.NodeRunnerTests.test_tap_requires_nonzero_complete_all_passed_summary) ... ok +2026-10-29T19:58:41.6974752Z test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) ... FAIL +2026-10-29T19:58:41.6975760Z test_url_alias_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_url_alias_is_rejected) ... ok +2026-10-29T19:58:41.6976557Z test_zero_tracked_node_tests_refuses (tests.test_cbz_node_regression.NodeRunnerTests.test_zero_tracked_node_tests_refuses) ... ok +2026-10-29T19:58:41.6977053Z +2026-10-29T19:58:41.6977167Z ====================================================================== +2026-10-29T19:58:41.6977859Z FAIL: test_child_fixture_mutation_is_a_failed_postflight (tests.test_cbz_node_regression.NodeRunnerTests.test_child_fixture_mutation_is_a_failed_postflight) +2026-10-29T19:58:41.6978575Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6979096Z Traceback (most recent call last): +2026-10-29T19:58:41.6979766Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 141, in test_child_fixture_mutation_is_a_failed_postflight +2026-10-29T19:58:41.6980427Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:41.6980878Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:41.6981174Z +2026-10-29T19:58:41.6981281Z ====================================================================== +2026-10-29T19:58:41.6981967Z FAIL: test_fixture_file_directory_and_type_set_is_exact (tests.test_cbz_node_regression.NodeRunnerTests.test_fixture_file_directory_and_type_set_is_exact) +2026-10-29T19:58:41.6982680Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6983009Z Traceback (most recent call last): +2026-10-29T19:58:41.6983614Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 163, in test_fixture_file_directory_and_type_set_is_exact +2026-10-29T19:58:41.6984260Z self.assertTrue(hasattr(self.module, "verify_fixture_tree"), +2026-10-29T19:58:41.6984892Z AssertionError: False is not true : fixture postflight guard is missing +2026-10-29T19:58:41.6985183Z +2026-10-29T19:58:41.6985290Z ====================================================================== +2026-10-29T19:58:41.6985984Z FAIL: test_loaded_source_and_imported_helper_cannot_drift (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_source_and_imported_helper_cannot_drift) +2026-10-29T19:58:41.6986702Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6987027Z Traceback (most recent call last): +2026-10-29T19:58:41.6987635Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 83, in test_loaded_source_and_imported_helper_cannot_drift +2026-10-29T19:58:41.6988279Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:41.6988739Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:41.6989045Z +2026-10-29T19:58:41.6989148Z ====================================================================== +2026-10-29T19:58:41.6989822Z FAIL: test_loaded_sources_must_belong_to_selected_main (tests.test_cbz_node_regression.NodeRunnerTests.test_loaded_sources_must_belong_to_selected_main) +2026-10-29T19:58:41.6990515Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6990836Z Traceback (most recent call last): +2026-10-29T19:58:41.6991552Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 77, in test_loaded_sources_must_belong_to_selected_main +2026-10-29T19:58:41.6992303Z self.assertTrue(hasattr(self.module, "assert_loaded_sources"), +2026-10-29T19:58:41.6992898Z AssertionError: False is not true : loaded helper identity guard is missing +2026-10-29T19:58:41.6993203Z +2026-10-29T19:58:41.6993313Z ====================================================================== +2026-10-29T19:58:41.6993957Z FAIL: test_selected_node_test_symlink_is_rejected (tests.test_cbz_node_regression.NodeRunnerTests.test_selected_node_test_symlink_is_rejected) +2026-10-29T19:58:41.6994898Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6995249Z Traceback (most recent call last): +2026-10-29T19:58:41.6995838Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 124, in test_selected_node_test_symlink_is_rejected +2026-10-29T19:58:41.6996466Z with self.assertRaisesRegex(ValueError, "regular.*Node"): +2026-10-29T19:58:41.6996822Z AssertionError: ValueError not raised +2026-10-29T19:58:41.6997007Z +2026-10-29T19:58:41.6997121Z ====================================================================== +2026-10-29T19:58:41.6997906Z FAIL: test_tracked_source_symlink_cannot_bind_an_external_dependency (tests.test_cbz_node_regression.NodeRunnerTests.test_tracked_source_symlink_cannot_bind_an_external_dependency) +2026-10-29T19:58:41.6998852Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.6999203Z Traceback (most recent call last): +2026-10-29T19:58:41.6999885Z File "/home/runner/work/main/main/tests/test_cbz_node_regression.py", line 115, in test_tracked_source_symlink_cannot_bind_an_external_dependency +2026-10-29T19:58:41.7001015Z with self.assertRaisesRegex(ValueError, "unsupported tracked Git entry"): +2026-10-29T19:58:41.7001441Z AssertionError: ValueError not raised +2026-10-29T19:58:41.7001617Z +2026-10-29T19:58:41.7001769Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.7002092Z Ran 31 tests in 0.936s +2026-10-29T19:58:41.7002223Z +2026-10-29T19:58:41.7002311Z FAILED (failures=6) +2026-10-29T19:58:41.7002441Z +2026-10-29T19:58:41.7002445Z +2026-10-29T19:58:41.7002579Z ---------------------------------------------------------------------- +2026-10-29T19:58:41.7002894Z Ran 41 tests in 10.309s +2026-10-29T19:58:41.7003032Z +2026-10-29T19:58:41.7003198Z FAILED (failures=8) +2026-10-29T19:58:41.7039043Z ##[error]Process completed with exit code 1. +2026-10-29T19:58:41.7196433Z Post job cleanup. +2026-10-29T19:58:41.8104991Z [command]/usr/bin/git version +2026-10-29T19:58:41.8153585Z git version 2.56.0 +2026-10-29T19:58:41.8197215Z Temporarily overriding HOME='/home/runner/work/_temp/4d093a0a-8556-4a94-86ff-166a560a1832' before making global git config changes +2026-10-29T19:58:41.8198215Z Adding repository directory to the temporary git global config as a safe directory +2026-10-29T19:58:41.8203421Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/main/main +2026-10-29T19:58:41.8241812Z Removing SSH command configuration +2026-10-29T19:58:41.8249607Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-29T19:58:41.8309320Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-29T19:58:41.8583963Z Removing HTTP extra header +2026-10-29T19:58:41.8590372Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-29T19:58:41.8635123Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-29T19:58:41.8916388Z Removing includeIf entries pointing to credentials config files +2026-10-29T19:58:41.8923248Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-29T19:58:41.8975502Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-29T19:58:41.9378621Z Cleaning up orphan processes diff --git a/cbz/evidence/drift-crawler-017-20261029/README.md b/cbz/evidence/drift-crawler-017-20261029/README.md new file mode 100644 index 000000000..e36207a6e --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/README.md @@ -0,0 +1,66 @@ +# Drift crawler: evidence and proposed registration + +Built by Anthropic Claude, session Claude017 (`session_017Mi3hx…`), under the owner's CBZ-0 +addendum ("Intent-locked reinforcements": a dynamic federation drift crawler). +- Pickup: main#684/6510531192. +- Credit 0. Scientific effect NONE. +- Under B-003, this directory and `tools/cbz_drift/` are the only things written here. + `GOVERNANCE.md`, `TOOLING.md` and the gate matrix belong to Root. The proposed text + for them is below. + +## Observed runs (2026-10-29, CPython 3.11.15) + +The tool bytes and every command are in this directory. Exit status is in `exits.txt`. + +| Run | Seed | Crawled | BLOCK | INFO | Lean files / declarations / names shared across locations | Registry artifacts verified | +|---|---|---|---|---|---|---| +| `crawl-pins.json`, local clones | ULW `a4b01682` | 9 repositories | **0** | `PIN-STALE` 4, `REGISTRY-EVOLVED` 31 | 166 / 3,030 / 479 | 592 of 592 | +| `crawl-tips.json`, default tips | ULW `a4b01682` | 9 | **0** | `PIN-STALE` 4, `REGISTRY-EVOLVED` 32 | 172 / 3,039 / 482 | 592 of 592 | +| `crawl-cold-pins.json`, only the seed cloned, the rest found and cloned by the crawler | ULW `a4b01682` | 9 | **0** | as for pins | as for pins | 592 of 592 | + +- **Cold start.** The cold-start report has the same statistics, refs and findings as the + local run at pins. The crawler needs nothing but the seed. +- **What the 0 means.** No two records that claim the same identity disagree. At the pins + and at the tips, every Lean name declared in two or more places (479 at the pins, 482 at + the tips) has one interface. Almost all of them are statement packages copied between Math- packages + (`frontiers/source_*`, `companions/torus_filtration`, `frontiers/compact_morse_elder_adapter`, + `specifications/lean_statements_20261010` and others). Three are within `main`'s + `cbz/evidence` kernel replays. +- **Pins.** The four stale pins (`governance-`, `main`, `Math-`, `meta-framework`) are + behind their tips and on the default line. This crawler reports staleness as INFO. + Currency is what ULW's own `verify_pins.py --require-current` enforces. +- **Local fetch.** Several local clones were shallow. `--fetch` unshallowed them, which is + additive only. Without it, the crawler reports BLOCK `PIN-OFFLINE … shallow clone` and + does not guess ancestry. + +## Tool verification + +- Two interpreter modes (`python3 -B` and `-B -O`): 43 tests OK, about 42 s each. +- **35 mutants, all killed**, each by its designated test failing by assertion. Every + designated test passes on the unmutated copy (the harness control). +- The 344 tests in `main`'s workflow-reading modules give the same 3 errors with and + without this change: `test_formal_workflow_shell` and two `test_periodic_pilot_custody*` + load errors. All three are environmental in this container. + +## Proposed text for Root (B-003) + +**GOVERNANCE.md, Tool registry.** Add this entry: + +> `tools/cbz_drift/crawl.py`: federation drift crawler (G7). Discovers the federation from +> the workspace seed's records and fails on disagreement between records of one +> identity: pins, registry bytes, and the source interfaces of Lean declarations shared +> across locations. Lexical domain and limits: `tools/cbz_drift/README.md`. It certifies +> agreement of recorded identities and source text only; G2–G4 remain authoritative for +> kernel closure. + +**TOOLING.md.** Add this row: + +| Tool | Gate | Command | Verification | +|---|---|---|---| +| `tools/cbz_drift/crawl.py` | G7 | `crawl.py --seed d6g8k5htny-coder/Universal-Law-Workspace --search fed --clone-into fed --fetch --at pins` (and `--at tips`) | `tests/test_cbz_drift.py`, both modes; 35 designated-assertion mutants (G6) | + +**Gate matrix §10, G7.** Proposed wording: "PASS when `cbz-federation-drift` exits 0 at +`--at pins` in the final run, with every discovered repository resolved. A BLOCK finding +fails G7 and blocks integration of the PR that introduces it." The workflow already runs +on every PR to `main` that touches Lean, lake files or the tool. It overrides `main` +with the candidate head and crawls the rest of the federation at its pins and tips. diff --git a/cbz/evidence/drift-crawler-017-20261029/crawl-cold-pins.json b/cbz/evidence/drift-crawler-017-20261029/crawl-cold-pins.json new file mode 100644 index 000000000..b2cb8a51c --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/crawl-cold-pins.json @@ -0,0 +1,406 @@ +{ + "blocking": 0, + "edges": [ + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/google-drive", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/governance-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/main", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/math-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/meta-framework", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/query-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/sandbox", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/trial", + "via": "gitmodules+pins+listed" + } + ], + "findings": [ + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin e396002aa191 is 1 commits behind the default tip 1b62ca2f64b3", + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repo": "d6g8k5htny-coder/governance-", + "tip": "1b62ca2f64b3012c2fdbbf7f55ced236c3042891" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 81acc060341e is 31 commits behind the default tip e6f265384105", + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repo": "d6g8k5htny-coder/main", + "tip": "e6f2653841053004d213b3647a7e14e799f503b2" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 8151f592918a is 17 commits behind the default tip 9f8dbb4d18b9", + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "repo": "d6g8k5htny-coder/math-", + "tip": "9f8dbb4d18b9f3ebd9ffac6b0caa42df9f343966" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin c70e1984477a is 1 commits behind the default tip 0f5894f81a54", + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repo": "d6g8k5htny-coder/meta-framework", + "tip": "0f5894f81a5462c10ee5ec8f8109f466e712e47e" + }, + { + "artifact": "downstream-hard-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate: frontiers/downstream_gate_20260925/README.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-graph", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-graph: frontiers/downstream_gate_20260925/GRAPH.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-code", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-code: frontiers/downstream_gate_20260925/hard_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-tests: frontiers/downstream_gate_20260925/test_hard_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-output", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-output: frontiers/downstream_gate_20260925/RESULTS.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-replay", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-replay: frontiers/downstream_gate_20260925/run_validation.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-kernel", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-kernel: reviews/contact_kernel_tail_20260925/KERNEL_TAILS_AND_SMALL_GAP.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-source-files", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-source-files: reviews/contact_kernel_tail_20260925/SOURCE_FILES.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-manifest: claims/LANDING_CLAIMS.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-check", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-check: tools/landing_claims_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-tests: tests/test_landing_claims_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "lifetime-parent-verify", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact lifetime-parent-verify: imports/lifetime_parent_20260925/verify.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "review-topology-merged", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact review-topology-merged: REVIEW_TOPOLOGY.md differs at the crawled ref e396002aa191", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "proof-availability-index", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact proof-availability-index: PROOF_INDEX.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "trial-status-guard-snapshot", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact trial-status-guard-snapshot: portable/STATUS_GUARD_SNAPSHOT.json differs at the crawled ref 3738c859d519", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-downstream-gate-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-downstream-gate-workflow: .github/workflows/downstream-gate.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-ledger-custody-readme", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-ledger-custody-readme: imports/upper2d_h5_ledgers_20260926/README.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-rim-contract-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-rim-contract-workflow: .github/workflows/h5-rim-contract.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "bf-six-pin-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact bf-six-pin-workflow: .github/workflows/bf-six-pin-scalar.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-workflow: .github/workflows/formal-lean.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-manifest: formal/manifest.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate: formal/gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate-test", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate-test: formal/tests/test_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-core-root", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-core-root: formal/ResearchFormalCoreR1.lean differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-scope", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-scope: formal/SCOPE.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "drive-hole-substitutes-ledger", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact drive-hole-substitutes-ledger: reviews/drive_hole_substitutes_20260926/LEDGER.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "public-reading-map", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact public-reading-map: PUBLIC_READING_MAP.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-pr96-agents", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-pr96-agents: AGENTS.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-required-checks-doc", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-required-checks-doc: docs/FORMAL_REQUIRED_CHECKS.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tool", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tool: tools/required_formal_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tests: tests/test_required_formal_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + } + ], + "mode": "pins", + "repositories": [ + { + "optional": false, + "pin": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "ref": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "repository": "d6g8k5htny-coder/google-drive", + "resolved": true + }, + { + "optional": false, + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "ref": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repository": "d6g8k5htny-coder/governance-", + "resolved": true + }, + { + "optional": false, + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "ref": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repository": "d6g8k5htny-coder/main", + "resolved": true + }, + { + "optional": false, + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "ref": "8151f592918a845bf19eb8eafaf8444540a32734", + "repository": "d6g8k5htny-coder/math-", + "resolved": true + }, + { + "optional": false, + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "ref": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repository": "d6g8k5htny-coder/meta-framework", + "resolved": true + }, + { + "optional": false, + "pin": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "ref": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "repository": "d6g8k5htny-coder/query-", + "resolved": true + }, + { + "optional": true, + "pin": "dce04a4174835107126ab4f36c199a2dc320f964", + "ref": "dce04a4174835107126ab4f36c199a2dc320f964", + "repository": "d6g8k5htny-coder/sandbox", + "resolved": true + }, + { + "optional": false, + "pin": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "ref": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "repository": "d6g8k5htny-coder/trial", + "resolved": true + }, + { + "optional": false, + "pin": null, + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace", + "resolved": true + } + ], + "schema": "cbz.drift.v1", + "seed": { + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace" + }, + "stats": { + "lean_declarations": 3030, + "lean_files": 166, + "lean_shared_names": 479, + "registry_artifacts": 592, + "registry_artifacts_evolved": 31, + "registry_artifacts_verified": 592 + } +} diff --git a/cbz/evidence/drift-crawler-017-20261029/crawl-cold-pins.stdout b/cbz/evidence/drift-crawler-017-20261029/crawl-cold-pins.stdout new file mode 100644 index 000000000..65411515b --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/crawl-cold-pins.stdout @@ -0,0 +1 @@ +crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (pins): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 31}; stats {'lean_declarations': 3030, 'lean_files': 166, 'lean_shared_names': 479, 'registry_artifacts': 592, 'registry_artifacts_evolved': 31, 'registry_artifacts_verified': 592} diff --git a/cbz/evidence/drift-crawler-017-20261029/crawl-pins.json b/cbz/evidence/drift-crawler-017-20261029/crawl-pins.json new file mode 100644 index 000000000..b2cb8a51c --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/crawl-pins.json @@ -0,0 +1,406 @@ +{ + "blocking": 0, + "edges": [ + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/google-drive", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/governance-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/main", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/math-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/meta-framework", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/query-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/sandbox", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/trial", + "via": "gitmodules+pins+listed" + } + ], + "findings": [ + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin e396002aa191 is 1 commits behind the default tip 1b62ca2f64b3", + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repo": "d6g8k5htny-coder/governance-", + "tip": "1b62ca2f64b3012c2fdbbf7f55ced236c3042891" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 81acc060341e is 31 commits behind the default tip e6f265384105", + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repo": "d6g8k5htny-coder/main", + "tip": "e6f2653841053004d213b3647a7e14e799f503b2" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 8151f592918a is 17 commits behind the default tip 9f8dbb4d18b9", + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "repo": "d6g8k5htny-coder/math-", + "tip": "9f8dbb4d18b9f3ebd9ffac6b0caa42df9f343966" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin c70e1984477a is 1 commits behind the default tip 0f5894f81a54", + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repo": "d6g8k5htny-coder/meta-framework", + "tip": "0f5894f81a5462c10ee5ec8f8109f466e712e47e" + }, + { + "artifact": "downstream-hard-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate: frontiers/downstream_gate_20260925/README.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-graph", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-graph: frontiers/downstream_gate_20260925/GRAPH.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-code", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-code: frontiers/downstream_gate_20260925/hard_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-tests: frontiers/downstream_gate_20260925/test_hard_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-output", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-output: frontiers/downstream_gate_20260925/RESULTS.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-replay", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-replay: frontiers/downstream_gate_20260925/run_validation.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-kernel", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-kernel: reviews/contact_kernel_tail_20260925/KERNEL_TAILS_AND_SMALL_GAP.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-source-files", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-source-files: reviews/contact_kernel_tail_20260925/SOURCE_FILES.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-manifest: claims/LANDING_CLAIMS.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-check", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-check: tools/landing_claims_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-tests: tests/test_landing_claims_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "lifetime-parent-verify", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact lifetime-parent-verify: imports/lifetime_parent_20260925/verify.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "review-topology-merged", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact review-topology-merged: REVIEW_TOPOLOGY.md differs at the crawled ref e396002aa191", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "proof-availability-index", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact proof-availability-index: PROOF_INDEX.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "trial-status-guard-snapshot", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact trial-status-guard-snapshot: portable/STATUS_GUARD_SNAPSHOT.json differs at the crawled ref 3738c859d519", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-downstream-gate-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-downstream-gate-workflow: .github/workflows/downstream-gate.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-ledger-custody-readme", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-ledger-custody-readme: imports/upper2d_h5_ledgers_20260926/README.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-rim-contract-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-rim-contract-workflow: .github/workflows/h5-rim-contract.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "bf-six-pin-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact bf-six-pin-workflow: .github/workflows/bf-six-pin-scalar.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-workflow: .github/workflows/formal-lean.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-manifest: formal/manifest.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate: formal/gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate-test", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate-test: formal/tests/test_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-core-root", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-core-root: formal/ResearchFormalCoreR1.lean differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-scope", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-scope: formal/SCOPE.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "drive-hole-substitutes-ledger", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact drive-hole-substitutes-ledger: reviews/drive_hole_substitutes_20260926/LEDGER.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "public-reading-map", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact public-reading-map: PUBLIC_READING_MAP.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-pr96-agents", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-pr96-agents: AGENTS.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-required-checks-doc", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-required-checks-doc: docs/FORMAL_REQUIRED_CHECKS.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tool", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tool: tools/required_formal_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tests: tests/test_required_formal_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + } + ], + "mode": "pins", + "repositories": [ + { + "optional": false, + "pin": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "ref": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "repository": "d6g8k5htny-coder/google-drive", + "resolved": true + }, + { + "optional": false, + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "ref": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repository": "d6g8k5htny-coder/governance-", + "resolved": true + }, + { + "optional": false, + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "ref": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repository": "d6g8k5htny-coder/main", + "resolved": true + }, + { + "optional": false, + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "ref": "8151f592918a845bf19eb8eafaf8444540a32734", + "repository": "d6g8k5htny-coder/math-", + "resolved": true + }, + { + "optional": false, + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "ref": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repository": "d6g8k5htny-coder/meta-framework", + "resolved": true + }, + { + "optional": false, + "pin": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "ref": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "repository": "d6g8k5htny-coder/query-", + "resolved": true + }, + { + "optional": true, + "pin": "dce04a4174835107126ab4f36c199a2dc320f964", + "ref": "dce04a4174835107126ab4f36c199a2dc320f964", + "repository": "d6g8k5htny-coder/sandbox", + "resolved": true + }, + { + "optional": false, + "pin": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "ref": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "repository": "d6g8k5htny-coder/trial", + "resolved": true + }, + { + "optional": false, + "pin": null, + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace", + "resolved": true + } + ], + "schema": "cbz.drift.v1", + "seed": { + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace" + }, + "stats": { + "lean_declarations": 3030, + "lean_files": 166, + "lean_shared_names": 479, + "registry_artifacts": 592, + "registry_artifacts_evolved": 31, + "registry_artifacts_verified": 592 + } +} diff --git a/cbz/evidence/drift-crawler-017-20261029/crawl-pins.stdout b/cbz/evidence/drift-crawler-017-20261029/crawl-pins.stdout new file mode 100644 index 000000000..65411515b --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/crawl-pins.stdout @@ -0,0 +1 @@ +crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (pins): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 31}; stats {'lean_declarations': 3030, 'lean_files': 166, 'lean_shared_names': 479, 'registry_artifacts': 592, 'registry_artifacts_evolved': 31, 'registry_artifacts_verified': 592} diff --git a/cbz/evidence/drift-crawler-017-20261029/crawl-tips.json b/cbz/evidence/drift-crawler-017-20261029/crawl-tips.json new file mode 100644 index 000000000..a2048fabb --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/crawl-tips.json @@ -0,0 +1,414 @@ +{ + "blocking": 0, + "edges": [ + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/google-drive", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/governance-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/main", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/math-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/meta-framework", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/query-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/sandbox", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/trial", + "via": "gitmodules+pins+listed" + } + ], + "findings": [ + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin e396002aa191 is 1 commits behind the default tip 1b62ca2f64b3", + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repo": "d6g8k5htny-coder/governance-", + "tip": "1b62ca2f64b3012c2fdbbf7f55ced236c3042891" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 81acc060341e is 31 commits behind the default tip e6f265384105", + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repo": "d6g8k5htny-coder/main", + "tip": "e6f2653841053004d213b3647a7e14e799f503b2" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 8151f592918a is 17 commits behind the default tip 9f8dbb4d18b9", + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "repo": "d6g8k5htny-coder/math-", + "tip": "9f8dbb4d18b9f3ebd9ffac6b0caa42df9f343966" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin c70e1984477a is 1 commits behind the default tip 0f5894f81a54", + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repo": "d6g8k5htny-coder/meta-framework", + "tip": "0f5894f81a5462c10ee5ec8f8109f466e712e47e" + }, + { + "artifact": "downstream-hard-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate: frontiers/downstream_gate_20260925/README.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-graph", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-graph: frontiers/downstream_gate_20260925/GRAPH.json differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-code", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-code: frontiers/downstream_gate_20260925/hard_gate.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-tests: frontiers/downstream_gate_20260925/test_hard_gate.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-output", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-output: frontiers/downstream_gate_20260925/RESULTS.json differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-replay", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-replay: frontiers/downstream_gate_20260925/run_validation.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-pr15-replica-source", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-pr15-replica-source: replicas/downstream-gate-pr15-v1/SOURCE.json differs at the crawled ref 0f5894f81a54", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-kernel", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-kernel: reviews/contact_kernel_tail_20260925/KERNEL_TAILS_AND_SMALL_GAP.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-source-files", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-source-files: reviews/contact_kernel_tail_20260925/SOURCE_FILES.json differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-manifest: claims/LANDING_CLAIMS.json differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-check", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-check: tools/landing_claims_check.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-tests: tests/test_landing_claims_check.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "lifetime-parent-verify", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact lifetime-parent-verify: imports/lifetime_parent_20260925/verify.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "review-topology-merged", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact review-topology-merged: REVIEW_TOPOLOGY.md differs at the crawled ref 1b62ca2f64b3", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "proof-availability-index", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact proof-availability-index: PROOF_INDEX.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "trial-status-guard-snapshot", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact trial-status-guard-snapshot: portable/STATUS_GUARD_SNAPSHOT.json differs at the crawled ref 3738c859d519", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-downstream-gate-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-downstream-gate-workflow: .github/workflows/downstream-gate.yml differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-ledger-custody-readme", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-ledger-custody-readme: imports/upper2d_h5_ledgers_20260926/README.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-rim-contract-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-rim-contract-workflow: .github/workflows/h5-rim-contract.yml differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "bf-six-pin-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact bf-six-pin-workflow: .github/workflows/bf-six-pin-scalar.yml differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-workflow: .github/workflows/formal-lean.yml differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-manifest: formal/manifest.json differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate: formal/gate.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate-test", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate-test: formal/tests/test_gate.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-core-root", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-core-root: formal/ResearchFormalCoreR1.lean differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-scope", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-scope: formal/SCOPE.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "drive-hole-substitutes-ledger", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact drive-hole-substitutes-ledger: reviews/drive_hole_substitutes_20260926/LEDGER.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "public-reading-map", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact public-reading-map: PUBLIC_READING_MAP.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-pr96-agents", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-pr96-agents: AGENTS.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-required-checks-doc", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-required-checks-doc: docs/FORMAL_REQUIRED_CHECKS.md differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tool", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tool: tools/required_formal_check.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tests: tests/test_required_formal_check.py differs at the crawled ref 9f8dbb4d18b9", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + } + ], + "mode": "tips", + "repositories": [ + { + "optional": false, + "pin": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "ref": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "repository": "d6g8k5htny-coder/google-drive", + "resolved": true + }, + { + "optional": false, + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "ref": "1b62ca2f64b3012c2fdbbf7f55ced236c3042891", + "repository": "d6g8k5htny-coder/governance-", + "resolved": true + }, + { + "optional": false, + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "ref": "e6f2653841053004d213b3647a7e14e799f503b2", + "repository": "d6g8k5htny-coder/main", + "resolved": true + }, + { + "optional": false, + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "ref": "9f8dbb4d18b9f3ebd9ffac6b0caa42df9f343966", + "repository": "d6g8k5htny-coder/math-", + "resolved": true + }, + { + "optional": false, + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "ref": "0f5894f81a5462c10ee5ec8f8109f466e712e47e", + "repository": "d6g8k5htny-coder/meta-framework", + "resolved": true + }, + { + "optional": false, + "pin": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "ref": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "repository": "d6g8k5htny-coder/query-", + "resolved": true + }, + { + "optional": true, + "pin": "dce04a4174835107126ab4f36c199a2dc320f964", + "ref": "dce04a4174835107126ab4f36c199a2dc320f964", + "repository": "d6g8k5htny-coder/sandbox", + "resolved": true + }, + { + "optional": false, + "pin": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "ref": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "repository": "d6g8k5htny-coder/trial", + "resolved": true + }, + { + "optional": false, + "pin": null, + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace", + "resolved": true + } + ], + "schema": "cbz.drift.v1", + "seed": { + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace" + }, + "stats": { + "lean_declarations": 3039, + "lean_files": 172, + "lean_shared_names": 482, + "registry_artifacts": 592, + "registry_artifacts_evolved": 32, + "registry_artifacts_verified": 592 + } +} diff --git a/cbz/evidence/drift-crawler-017-20261029/crawl-tips.stdout b/cbz/evidence/drift-crawler-017-20261029/crawl-tips.stdout new file mode 100644 index 000000000..fb999a8eb --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/crawl-tips.stdout @@ -0,0 +1 @@ +crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (tips): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 32}; stats {'lean_declarations': 3039, 'lean_files': 172, 'lean_shared_names': 482, 'registry_artifacts': 592, 'registry_artifacts_evolved': 32, 'registry_artifacts_verified': 592} diff --git a/cbz/evidence/drift-crawler-017-20261029/exits.txt b/cbz/evidence/drift-crawler-017-20261029/exits.txt new file mode 100644 index 000000000..acbfd33bc --- /dev/null +++ b/cbz/evidence/drift-crawler-017-20261029/exits.txt @@ -0,0 +1,3 @@ +pins exit=0 +tips exit=0 +cold-pins exit=0 diff --git a/cbz/evidence/drift-lean-context-01shcrxv/README.md b/cbz/evidence/drift-lean-context-01shcrxv/README.md new file mode 100644 index 000000000..c058a773b --- /dev/null +++ b/cbz/evidence/drift-lean-context-01shcrxv/README.md @@ -0,0 +1,91 @@ +# Drift crawler: scope-aware Lean interfaces (#712, repair slice B) + +By Anthropic Claude, session 01SHCrxv (`session_01SHCrxvZuVwzVNC7SDC9TAj`). This is the +pickup on main#684 [6532435606](https://github.com/d6g8k5htny-coder/main/issues/684#issuecomment-6532435606). +Credit 0. Scientific effect NONE. + +**What this repairs.** These are the Lean-extractor counterexamples C1, C1b, C2, C3, C3b and C4, +reported on #712 by Claude session 01DKKe ([#712/6511042057](https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6511042057)). +They are slice (B) of #712's repair. The original repair pickup +([#712/6511525318](https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6511525318)) +passed its 01:00Z terminal with no checkpoint, and master §8.1 makes the work available. + +**Left open.** Slice (A) remains available: the graph-closure failures frozen at `9a5d313b` +([#712/6511043716](https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6511043716)). + +**Files changed.** Only `tools/cbz_drift/lean_decls.py`, `tests/test_cbz_drift.py`, +`tools/cbz_drift/README.md` and this directory. `crawl.py`, the workflow and Claude017's +branches are untouched. This change stacks on #723 at `e666f48b`, which follows the author's +proposed order ([#712/6532937471](https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6532937471)): +#716, then #723, then this, then #715. `lean_decls.py` is identical at #712's `15e8f689` and at +`e666f48b`, so the before-and-after comparisons below hold for either base. + +## The rule + +- **Scope context (C1, C1b, C2).** A declaration's interface carries its context: the + `open`, `variable`, `universe`, `export`, `include` and `omit` commands in scope, plus any + `open … in` or `variable … in` prefix of the declaration itself. In scope means at file + level and in the enclosing `namespace` and `section` blocks. + - A context command ends with its scope. + - A prefix covers the next declaration only, and `set_option … in` passes it on. + - A variable the statement does not use still counts, which errs toward reporting drift. + - Notation, macros and `set_option` are not tracked. +- **Combinators (C3, C3b).** Inside a declaration, `open … in` and `set_option … in` are term + or tactic combinators. They end the declaration only when they start a line that is not + indented deeper than the declaration. Every other command ends it wherever it appears, as + before. +- **`mutual` (C4).** `mutual … end` is a scope, so its anonymous `end` no longer closes the + enclosing namespace. + +The extractor still compares source text, not elaborated terms. That domain limit is unchanged. + +## Results + +**The counterexamples** (`counterexamples.txt`). At `15e8f689`, C1 to C3b are missed: the +interfaces of the two copies are equal. C4 raises a false `LEAN-SYNTAX`. At this head all five +drifts are caught, and C4 parses into `A.f` and `A.g`. + +**Tests** (`tests-normal.txt`, `tests-optimized.txt`). 72 tests, OK in normal and `-O` mode. +They run three modules: `test_cbz_drift`, 01a103c8's adversarial file and #716's canonical-input +file. That is #723's 68, plus 4: + +| Test | Covers | +|---|---| +| `LeanDriftTests.test_changed_variable_in_scope_blocks` | C1, end to end through a federation | +| `LeanDeclTests.test_scope_context_is_part_of_the_interface` | C1, C1b and C2; scoping, prefixes, and `set_option … in` chaining | +| `LeanDeclTests.test_combinators_inside_a_declaration_stay_in_its_value` | C3, C3b, the one-line form, and a top-level `open … in` still ending a declaration | +| `LeanDeclTests.test_mutual_is_a_scope` | C4 | + +**Mutation harness.** It is part of the suite, `ScannerMutationTests`. It now has 58 mutants, +#723's 46 and 12 new, each killed by its designated test's assertion failure. +- **One locator reconciled.** The target text of "depth ignored" changed, because the header + check also consults the combinator rule. It still replaces only the depth condition, and it + still has the same designated test. +- **The 12 new mutants:** + - context not in the interface; + - variable not context; + - open not context; + - scoped context ignored; + - context outlives its scope; + - prefix dropped; + - prefix outlives its declaration; + - `set_option` breaks a prefix chain; + - combinators end declarations; + - combinators never end declarations; + - combinator at the same indentation kept; + - `mutual` not a scope. + +**Live federation, extraction** (`live-extraction.txt`). Every `.lean` file of main and Math- +was read at the pins and at the tips: 338 file reads. +- No file's declaration list changed, and no file raises in either version. +- 5,579 of the 6,069 declarations now carry a context. +- No declaration's own interface changed. Only the context was added. + +**Live federation, the crawler** (`live-crawl.txt`). The `crawl.py` of #723 was run from +Universal-Law-Workspace `a4b01682` with all 9 repositories and `--fetch`, at the pins and at the +tips, once at #723's head and once at this head. The findings and statistics are identical: +- 0 BLOCK and 0 `LEAN-DRIFT` both before and after; +- 3,030 declarations at the pins, and 3,039 at the tips. + +So every declaration shared across locations has the same scope context in each copy. The +stricter interface surfaces no drift on the current federation. diff --git a/cbz/evidence/drift-lean-context-01shcrxv/counterexamples.txt b/cbz/evidence/drift-lean-context-01shcrxv/counterexamples.txt new file mode 100644 index 000000000..903fab9ae --- /dev/null +++ b/cbz/evidence/drift-lean-context-01shcrxv/counterexamples.txt @@ -0,0 +1,40 @@ +Counterexamples from #712/6511042057, run through lean_decls.declarations() at #712 head 15e8f689 (before) and at this head (after). +Drift is caught when copy A's and copy B's interfaces differ. + +C1 before: MISSED (equal) + A: : x = x + B: : x = x +C1 after : DRIFT CAUGHT + A: variable ( x : Nat ) ⊢ : x = x + B: variable ( x : Int ) ⊢ : x = x + +C1b before: MISSED (equal) + A: ( m : Measure O ) : m = m + B: ( m : Measure O ) : m = m +C1b after : DRIFT CAUGHT + A: variable { O : Type * } [ MeasurableSpace O ] ⊢ ( m : Measure O ) : m = m + B: variable { O : Type * } [ MeasurableSpace O ] [ Fintype O ] ⊢ ( m : Measure O ) : m = m + +C2 before: MISSED (equal) + A: : π = π + B: : π = π +C2 after : DRIFT CAUGHT + A: open Real ⊢ : π = π + B: open NNReal ⊢ : π = π + +C3 before: MISSED (equal) + A: : Nat := by + B: : Nat := by +C3 after : DRIFT CAUGHT + A: : Nat := by set_option maxRecDepth 100 in exact 1 + B: : Nat := by set_option maxRecDepth 100 in exact 2 + +C3b before: MISSED (equal) + A: : Nat := by + B: : Nat := by +C3b after : DRIFT CAUGHT + A: : Nat := by open Nat in exact 1 + B: : Nat := by open Nat in exact 2 + +C4 before: LeanSyntaxError: end (anonymous) on line 5 closes namespace A +C4 after : [('A.f', 'def'), ('A.g', 'def')] diff --git a/cbz/evidence/drift-lean-context-01shcrxv/live-crawl.txt b/cbz/evidence/drift-lean-context-01shcrxv/live-crawl.txt new file mode 100644 index 000000000..fc819cbc4 --- /dev/null +++ b/cbz/evidence/drift-lean-context-01shcrxv/live-crawl.txt @@ -0,0 +1,10 @@ +#712's crawler, tools/cbz_drift/crawl.py, run on the live federation from Universal-Law-Workspace a4b01682, with all 9 repositories held locally and --fetch. +'before' is the tool directory at #723 head e666f48b (#712 -> #716 -> #723); 'after' is this head, which adds only slice B. Same inputs, same command: + crawl.py --seed d6g8k5htny-coder/Universal-Law-Workspace --search CLONES --search CLONES2 --fetch --at {pins,tips} --json REPORT + +before --at pins: crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (pins): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 31}; stats {'lake_external_edges': 72, 'lean_declarations': 3030, 'lean_files': 166, 'lean_shared_names': 479, 'registry_artifacts': 592, 'registry_artifacts_evolved': 31, 'registry_artifacts_verified': 592} +before --at tips: crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (tips): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 32}; stats {'lake_external_edges': 72, 'lean_declarations': 3039, 'lean_files': 172, 'lean_shared_names': 482, 'registry_artifacts': 592, 'registry_artifacts_evolved': 32, 'registry_artifacts_verified': 592} +after --at pins: crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (pins): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 31}; stats {'lake_external_edges': 72, 'lean_declarations': 3030, 'lean_files': 166, 'lean_shared_names': 479, 'registry_artifacts': 592, 'registry_artifacts_evolved': 31, 'registry_artifacts_verified': 592} +after --at tips: crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (tips): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 32}; stats {'lake_external_edges': 72, 'lean_declarations': 3039, 'lean_files': 172, 'lean_shared_names': 482, 'registry_artifacts': 592, 'registry_artifacts_evolved': 32, 'registry_artifacts_verified': 592} +--at pins: findings identical (level, code) before and after: True; stats identical: True; LEAN-DRIFT before 0, after 0 +--at tips: findings identical (level, code) before and after: True; stats identical: True; LEAN-DRIFT before 0, after 0 diff --git a/cbz/evidence/drift-lean-context-01shcrxv/live-extraction.txt b/cbz/evidence/drift-lean-context-01shcrxv/live-extraction.txt new file mode 100644 index 000000000..ffb172625 --- /dev/null +++ b/cbz/evidence/drift-lean-context-01shcrxv/live-extraction.txt @@ -0,0 +1,8 @@ +Every .lean file of main (81acc060 pins, 11e28815 tip) and Math- (8151f592 pins, 19a55750 tip), run through lean_decls.declarations() +at #712 head 15e8f689 (before) and at this head (after). + +files read: 338 +files whose declaration list differs: 0 +declarations: 6069 +declarations with a context, after: 5579 +declarations whose own interface (after the context) differs from before: 0 diff --git a/cbz/evidence/drift-lean-context-01shcrxv/tests-normal.txt b/cbz/evidence/drift-lean-context-01shcrxv/tests-normal.txt new file mode 100644 index 000000000..e01903de1 --- /dev/null +++ b/cbz/evidence/drift-lean-context-01shcrxv/tests-normal.txt @@ -0,0 +1,77 @@ +test_clean_federation_has_no_block_and_is_not_vacuous (test_cbz_drift.CleanFederationTests.test_clean_federation_has_no_block_and_is_not_vacuous) ... ok +test_cli_exit_status (test_cbz_drift.CleanFederationTests.test_cli_exit_status) ... ok +test_combinators_inside_a_declaration_stay_in_its_value (test_cbz_drift.LeanDeclTests.test_combinators_inside_a_declaration_stay_in_its_value) ... ok +test_comments_and_strings (test_cbz_drift.LeanDeclTests.test_comments_and_strings) ... ok +test_header_stops_at_top_level_assign_and_line_leading_bar (test_cbz_drift.LeanDeclTests.test_header_stops_at_top_level_assign_and_line_leading_bar) ... ok +test_malformed_raise (test_cbz_drift.LeanDeclTests.test_malformed_raise) ... ok +test_modifiers_attributes_and_anonymous_instance (test_cbz_drift.LeanDeclTests.test_modifiers_attributes_and_anonymous_instance) ... ok +test_mutual_is_a_scope (test_cbz_drift.LeanDeclTests.test_mutual_is_a_scope) ... ok +test_namespaces_sections_and_root (test_cbz_drift.LeanDeclTests.test_namespaces_sections_and_root) ... ok +test_scope_context_is_part_of_the_interface (test_cbz_drift.LeanDeclTests.test_scope_context_is_part_of_the_interface) ... ok +test_theorem_interface_excludes_proof_definition_includes_value (test_cbz_drift.LeanDeclTests.test_theorem_interface_excludes_proof_definition_includes_value) ... ok +test_unbalanced_scopes_raise (test_cbz_drift.LeanDeclTests.test_unbalanced_scopes_raise) ... ok +test_changed_definition_value_blocks (test_cbz_drift.LeanDriftTests.test_changed_definition_value_blocks) ... ok +test_changed_kind_blocks (test_cbz_drift.LeanDriftTests.test_changed_kind_blocks) ... ok +test_changed_structure_field_blocks (test_cbz_drift.LeanDriftTests.test_changed_structure_field_blocks) ... ok +test_changed_theorem_statement_blocks (test_cbz_drift.LeanDriftTests.test_changed_theorem_statement_blocks) ... ok +test_changed_variable_in_scope_blocks (test_cbz_drift.LeanDriftTests.test_changed_variable_in_scope_blocks) ... ok +test_differently_namespaced_names_are_not_compared (test_cbz_drift.LeanDriftTests.test_differently_namespaced_names_are_not_compared) ... ok +test_lean_syntax_error_blocks (test_cbz_drift.LeanDriftTests.test_lean_syntax_error_blocks) ... ok +test_override_tests_a_candidate_head (test_cbz_drift.LeanDriftTests.test_override_tests_a_candidate_head) ... ok +test_private_names_are_not_compared (test_cbz_drift.LeanDriftTests.test_private_names_are_not_compared) ... ok +test_proof_comment_and_layout_changes_do_not_block (test_cbz_drift.LeanDriftTests.test_proof_comment_and_layout_changes_do_not_block) ... ok +test_tips_mode_reads_default_tips (test_cbz_drift.LeanDriftTests.test_tips_mode_reads_default_tips) ... ok +test_gitlink_disagreeing_with_pins_blocks (test_cbz_drift.PinTests.test_gitlink_disagreeing_with_pins_blocks) ... ok +test_gitlink_without_gitmodules_entry_blocks (test_cbz_drift.PinTests.test_gitlink_without_gitmodules_entry_blocks) ... ok +test_malformed_pins_json_blocks (test_cbz_drift.PinTests.test_malformed_pins_json_blocks) ... ok +test_missing_pin_blocks (test_cbz_drift.PinTests.test_missing_pin_blocks) ... ok +test_pin_off_the_default_line_blocks (test_cbz_drift.PinTests.test_pin_off_the_default_line_blocks) ... ok +test_pinned_but_unlisted_blocks (test_cbz_drift.PinTests.test_pinned_but_unlisted_blocks) ... ok +test_shallow_clone_cannot_decide_ancestry (test_cbz_drift.PinTests.test_shallow_clone_cannot_decide_ancestry) ... ok +test_stale_pin_is_info_only (test_cbz_drift.PinTests.test_stale_pin_is_info_only) ... ok +test_submodule_without_pin_blocks (test_cbz_drift.PinTests.test_submodule_without_pin_blocks) ... ok +test_unresolved_repository_blocks_unless_opt_in (test_cbz_drift.PinTests.test_unresolved_repository_blocks_unless_opt_in) ... ok +test_absent_path_blocks (test_cbz_drift.RegistryTests.test_absent_path_blocks) ... ok +test_evolved_artifact_is_info_only (test_cbz_drift.RegistryTests.test_evolved_artifact_is_info_only) ... ok +test_missing_commit_blocks (test_cbz_drift.RegistryTests.test_missing_commit_blocks) ... ok +test_observed_input_blob_difference_is_info (test_cbz_drift.RegistryTests.test_observed_input_blob_difference_is_info) ... ok +test_wrong_digest_blocks (test_cbz_drift.RegistryTests.test_wrong_digest_blocks) ... ok +test_wrong_size_blocks (test_cbz_drift.RegistryTests.test_wrong_size_blocks) ... ok +test_every_mutant_is_killed_by_its_designated_assertion (test_cbz_drift.ScannerMutationTests.test_every_mutant_is_killed_by_its_designated_assertion) ... ok +test_harness_control_every_designated_test_passes_unmutated (test_cbz_drift.ScannerMutationTests.test_harness_control_every_designated_test_passes_unmutated) ... ok +test_added_repository_is_crawled_without_code_change (test_cbz_drift.TopologyTests.test_added_repository_is_crawled_without_code_change) ... ok +test_child_records_extend_the_graph (test_cbz_drift.TopologyTests.test_child_records_extend_the_graph) ... ok +test_external_lake_dependency_is_not_crawled (test_cbz_drift.TopologyTests.test_external_lake_dependency_is_not_crawled) ... ok +test_failed_refresh_blocks (test_cbz_drift.TopologyTests.test_failed_refresh_blocks) ... ok +test_fetch_refreshes_the_default_tip (test_cbz_drift.TopologyTests.test_fetch_refreshes_the_default_tip) ... ok +test_identity_normalization (test_cbz_drift.TopologyTests.test_identity_normalization) ... ok +test_lake_dependency_on_a_crawled_repository_is_followed (test_cbz_drift.TopologyTests.test_lake_dependency_on_a_crawled_repository_is_followed) ... ok +test_lake_dependency_reached_only_by_lake_is_scanned (test_cbz_drift.TopologyTests.test_lake_dependency_reached_only_by_lake_is_scanned) ... ok +test_lake_git_package_without_url_blocks (test_cbz_drift.TopologyTests.test_lake_git_package_without_url_blocks) ... ok +test_lake_package_without_usable_revision_blocks (test_cbz_drift.TopologyTests.test_lake_package_without_usable_revision_blocks) ... ok +test_missing_lake_revision_blocks (test_cbz_drift.TopologyTests.test_missing_lake_revision_blocks) ... ok +test_registry_artifact_repositories_join_the_crawl (test_cbz_drift.TopologyTests.test_registry_artifact_repositories_join_the_crawl) ... ok +test_registry_only_repository_is_expanded (test_cbz_drift.TopologyTests.test_registry_only_repository_is_expanded) ... ok +test_removed_repository_is_not_crawled (test_cbz_drift.TopologyTests.test_removed_repository_is_not_crawled) ... ok +test_unheld_lake_dependency_is_cloned (test_cbz_drift.TopologyTests.test_unheld_lake_dependency_is_cloned) ... ok +test_unheld_repository_is_cloned_from_its_recorded_url (test_cbz_drift.TopologyTests.test_unheld_repository_is_cloned_from_its_recorded_url) ... ok +test_fetch_tips_contract_observes_advanced_local_remote (test_cbz_drift_adversarial_01a103c8.CurrentTipContractTests.test_fetch_tips_contract_observes_advanced_local_remote) ... ok +test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage) ... ok +test_child_workspace_pins_extend_the_graph (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_child_workspace_pins_extend_the_graph) ... ok +test_missing_lake_revision_blocks_pin_synchronization (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_missing_lake_revision_blocks_pin_synchronization) ... ok +test_newly_opened_local_lake_dependency_is_actually_scanned (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_newly_opened_local_lake_dependency_is_actually_scanned) ... ok +test_unheld_reachable_lake_dependency_is_discovered_and_cloned (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_unheld_reachable_lake_dependency_is_discovered_and_cloned) ... ok +test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage (test_cbz_drift_canonical_input.CanonicalInputTests.test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage) ... ok +test_explicit_missing_historical_input_is_not_rebound_to_present_tip (test_cbz_drift_canonical_input.CanonicalInputTests.test_explicit_missing_historical_input_is_not_rebound_to_present_tip) ... ok +test_missing_declared_input_without_observed_blob_identifies_selected_ref (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_declared_input_without_observed_blob_identifies_selected_ref) ... ok +test_missing_declared_registry_cli_returns_one_with_identity (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_declared_registry_cli_returns_one_with_identity) ... ok +test_missing_input_at_override_uses_override_identity (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_input_at_override_uses_override_identity) ... ok +test_missing_input_at_tip_uses_tip_identity (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_input_at_tip_uses_tip_identity) ... ok +test_never_declared_optional_discovery_files_remain_optional (test_cbz_drift_canonical_input.CanonicalInputTests.test_never_declared_optional_discovery_files_remain_optional) ... ok +test_present_declared_registry_cli_preserves_artifact_coverage (test_cbz_drift_canonical_input.CanonicalInputTests.test_present_declared_registry_cli_preserves_artifact_coverage) ... ok +test_present_historical_input_is_checked_after_current_path_disappears (test_cbz_drift_canonical_input.CanonicalInputTests.test_present_historical_input_is_checked_after_current_path_disappears) ... ok + +---------------------------------------------------------------------- +Ran 72 tests in 71.407s + +OK diff --git a/cbz/evidence/drift-lean-context-01shcrxv/tests-optimized.txt b/cbz/evidence/drift-lean-context-01shcrxv/tests-optimized.txt new file mode 100644 index 000000000..07e923dd2 --- /dev/null +++ b/cbz/evidence/drift-lean-context-01shcrxv/tests-optimized.txt @@ -0,0 +1,77 @@ +test_clean_federation_has_no_block_and_is_not_vacuous (test_cbz_drift.CleanFederationTests.test_clean_federation_has_no_block_and_is_not_vacuous) ... ok +test_cli_exit_status (test_cbz_drift.CleanFederationTests.test_cli_exit_status) ... ok +test_combinators_inside_a_declaration_stay_in_its_value (test_cbz_drift.LeanDeclTests.test_combinators_inside_a_declaration_stay_in_its_value) ... ok +test_comments_and_strings (test_cbz_drift.LeanDeclTests.test_comments_and_strings) ... ok +test_header_stops_at_top_level_assign_and_line_leading_bar (test_cbz_drift.LeanDeclTests.test_header_stops_at_top_level_assign_and_line_leading_bar) ... ok +test_malformed_raise (test_cbz_drift.LeanDeclTests.test_malformed_raise) ... ok +test_modifiers_attributes_and_anonymous_instance (test_cbz_drift.LeanDeclTests.test_modifiers_attributes_and_anonymous_instance) ... ok +test_mutual_is_a_scope (test_cbz_drift.LeanDeclTests.test_mutual_is_a_scope) ... ok +test_namespaces_sections_and_root (test_cbz_drift.LeanDeclTests.test_namespaces_sections_and_root) ... ok +test_scope_context_is_part_of_the_interface (test_cbz_drift.LeanDeclTests.test_scope_context_is_part_of_the_interface) ... ok +test_theorem_interface_excludes_proof_definition_includes_value (test_cbz_drift.LeanDeclTests.test_theorem_interface_excludes_proof_definition_includes_value) ... ok +test_unbalanced_scopes_raise (test_cbz_drift.LeanDeclTests.test_unbalanced_scopes_raise) ... ok +test_changed_definition_value_blocks (test_cbz_drift.LeanDriftTests.test_changed_definition_value_blocks) ... ok +test_changed_kind_blocks (test_cbz_drift.LeanDriftTests.test_changed_kind_blocks) ... ok +test_changed_structure_field_blocks (test_cbz_drift.LeanDriftTests.test_changed_structure_field_blocks) ... ok +test_changed_theorem_statement_blocks (test_cbz_drift.LeanDriftTests.test_changed_theorem_statement_blocks) ... ok +test_changed_variable_in_scope_blocks (test_cbz_drift.LeanDriftTests.test_changed_variable_in_scope_blocks) ... ok +test_differently_namespaced_names_are_not_compared (test_cbz_drift.LeanDriftTests.test_differently_namespaced_names_are_not_compared) ... ok +test_lean_syntax_error_blocks (test_cbz_drift.LeanDriftTests.test_lean_syntax_error_blocks) ... ok +test_override_tests_a_candidate_head (test_cbz_drift.LeanDriftTests.test_override_tests_a_candidate_head) ... ok +test_private_names_are_not_compared (test_cbz_drift.LeanDriftTests.test_private_names_are_not_compared) ... ok +test_proof_comment_and_layout_changes_do_not_block (test_cbz_drift.LeanDriftTests.test_proof_comment_and_layout_changes_do_not_block) ... ok +test_tips_mode_reads_default_tips (test_cbz_drift.LeanDriftTests.test_tips_mode_reads_default_tips) ... ok +test_gitlink_disagreeing_with_pins_blocks (test_cbz_drift.PinTests.test_gitlink_disagreeing_with_pins_blocks) ... ok +test_gitlink_without_gitmodules_entry_blocks (test_cbz_drift.PinTests.test_gitlink_without_gitmodules_entry_blocks) ... ok +test_malformed_pins_json_blocks (test_cbz_drift.PinTests.test_malformed_pins_json_blocks) ... ok +test_missing_pin_blocks (test_cbz_drift.PinTests.test_missing_pin_blocks) ... ok +test_pin_off_the_default_line_blocks (test_cbz_drift.PinTests.test_pin_off_the_default_line_blocks) ... ok +test_pinned_but_unlisted_blocks (test_cbz_drift.PinTests.test_pinned_but_unlisted_blocks) ... ok +test_shallow_clone_cannot_decide_ancestry (test_cbz_drift.PinTests.test_shallow_clone_cannot_decide_ancestry) ... ok +test_stale_pin_is_info_only (test_cbz_drift.PinTests.test_stale_pin_is_info_only) ... ok +test_submodule_without_pin_blocks (test_cbz_drift.PinTests.test_submodule_without_pin_blocks) ... ok +test_unresolved_repository_blocks_unless_opt_in (test_cbz_drift.PinTests.test_unresolved_repository_blocks_unless_opt_in) ... ok +test_absent_path_blocks (test_cbz_drift.RegistryTests.test_absent_path_blocks) ... ok +test_evolved_artifact_is_info_only (test_cbz_drift.RegistryTests.test_evolved_artifact_is_info_only) ... ok +test_missing_commit_blocks (test_cbz_drift.RegistryTests.test_missing_commit_blocks) ... ok +test_observed_input_blob_difference_is_info (test_cbz_drift.RegistryTests.test_observed_input_blob_difference_is_info) ... ok +test_wrong_digest_blocks (test_cbz_drift.RegistryTests.test_wrong_digest_blocks) ... ok +test_wrong_size_blocks (test_cbz_drift.RegistryTests.test_wrong_size_blocks) ... ok +test_every_mutant_is_killed_by_its_designated_assertion (test_cbz_drift.ScannerMutationTests.test_every_mutant_is_killed_by_its_designated_assertion) ... ok +test_harness_control_every_designated_test_passes_unmutated (test_cbz_drift.ScannerMutationTests.test_harness_control_every_designated_test_passes_unmutated) ... ok +test_added_repository_is_crawled_without_code_change (test_cbz_drift.TopologyTests.test_added_repository_is_crawled_without_code_change) ... ok +test_child_records_extend_the_graph (test_cbz_drift.TopologyTests.test_child_records_extend_the_graph) ... ok +test_external_lake_dependency_is_not_crawled (test_cbz_drift.TopologyTests.test_external_lake_dependency_is_not_crawled) ... ok +test_failed_refresh_blocks (test_cbz_drift.TopologyTests.test_failed_refresh_blocks) ... ok +test_fetch_refreshes_the_default_tip (test_cbz_drift.TopologyTests.test_fetch_refreshes_the_default_tip) ... ok +test_identity_normalization (test_cbz_drift.TopologyTests.test_identity_normalization) ... ok +test_lake_dependency_on_a_crawled_repository_is_followed (test_cbz_drift.TopologyTests.test_lake_dependency_on_a_crawled_repository_is_followed) ... ok +test_lake_dependency_reached_only_by_lake_is_scanned (test_cbz_drift.TopologyTests.test_lake_dependency_reached_only_by_lake_is_scanned) ... ok +test_lake_git_package_without_url_blocks (test_cbz_drift.TopologyTests.test_lake_git_package_without_url_blocks) ... ok +test_lake_package_without_usable_revision_blocks (test_cbz_drift.TopologyTests.test_lake_package_without_usable_revision_blocks) ... ok +test_missing_lake_revision_blocks (test_cbz_drift.TopologyTests.test_missing_lake_revision_blocks) ... ok +test_registry_artifact_repositories_join_the_crawl (test_cbz_drift.TopologyTests.test_registry_artifact_repositories_join_the_crawl) ... ok +test_registry_only_repository_is_expanded (test_cbz_drift.TopologyTests.test_registry_only_repository_is_expanded) ... ok +test_removed_repository_is_not_crawled (test_cbz_drift.TopologyTests.test_removed_repository_is_not_crawled) ... ok +test_unheld_lake_dependency_is_cloned (test_cbz_drift.TopologyTests.test_unheld_lake_dependency_is_cloned) ... ok +test_unheld_repository_is_cloned_from_its_recorded_url (test_cbz_drift.TopologyTests.test_unheld_repository_is_cloned_from_its_recorded_url) ... ok +test_fetch_tips_contract_observes_advanced_local_remote (test_cbz_drift_adversarial_01a103c8.CurrentTipContractTests.test_fetch_tips_contract_observes_advanced_local_remote) ... ok +test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage) ... ok +test_child_workspace_pins_extend_the_graph (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_child_workspace_pins_extend_the_graph) ... ok +test_missing_lake_revision_blocks_pin_synchronization (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_missing_lake_revision_blocks_pin_synchronization) ... ok +test_newly_opened_local_lake_dependency_is_actually_scanned (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_newly_opened_local_lake_dependency_is_actually_scanned) ... ok +test_unheld_reachable_lake_dependency_is_discovered_and_cloned (test_cbz_drift_adversarial_01a103c8.IntentGraphClosureTests.test_unheld_reachable_lake_dependency_is_discovered_and_cloned) ... ok +test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage (test_cbz_drift_canonical_input.CanonicalInputTests.test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage) ... ok +test_explicit_missing_historical_input_is_not_rebound_to_present_tip (test_cbz_drift_canonical_input.CanonicalInputTests.test_explicit_missing_historical_input_is_not_rebound_to_present_tip) ... ok +test_missing_declared_input_without_observed_blob_identifies_selected_ref (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_declared_input_without_observed_blob_identifies_selected_ref) ... ok +test_missing_declared_registry_cli_returns_one_with_identity (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_declared_registry_cli_returns_one_with_identity) ... ok +test_missing_input_at_override_uses_override_identity (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_input_at_override_uses_override_identity) ... ok +test_missing_input_at_tip_uses_tip_identity (test_cbz_drift_canonical_input.CanonicalInputTests.test_missing_input_at_tip_uses_tip_identity) ... ok +test_never_declared_optional_discovery_files_remain_optional (test_cbz_drift_canonical_input.CanonicalInputTests.test_never_declared_optional_discovery_files_remain_optional) ... ok +test_present_declared_registry_cli_preserves_artifact_coverage (test_cbz_drift_canonical_input.CanonicalInputTests.test_present_declared_registry_cli_preserves_artifact_coverage) ... ok +test_present_historical_input_is_checked_after_current_path_disappears (test_cbz_drift_canonical_input.CanonicalInputTests.test_present_historical_input_is_checked_after_current_path_disappears) ... ok + +---------------------------------------------------------------------- +Ran 72 tests in 80.440s + +OK diff --git a/cbz/evidence/drift-r1r4-017-20261030/README.md b/cbz/evidence/drift-r1r4-017-20261030/README.md new file mode 100644 index 000000000..4a62cb466 --- /dev/null +++ b/cbz/evidence/drift-r1r4-017-20261030/README.md @@ -0,0 +1,64 @@ +# #712 repair: R1 graph closure and R4 tip refresh (with R2) + +Claude017, the author of #712 (`session_017Mi3hx…`). Credit 0. Scientific effect NONE. +Stacked on #716 (the R3 repair) at `fe676eb1`. It is a child of #712's head `15e8f689`. +The findings it repairs are 01a103c8's REQUEST_CHANGES (#712/6511043716), with the red +cases frozen at `9a5d313b`. + +## What changed + +- **R1, graph closure.** `crawl.py` now runs a breadth-first fixed point. Every reached + repository's own `.gitmodules`, gitlinks, `pins.json`, `workspace/repositories.json`, + canonical inputs and lake manifests are read, and whatever they name is reached in turn. + That covers repositories reached only through a lake manifest, an unheld lake + dependency (cloned from its recorded URL under `--clone-into`), a child's own pins, and + a repository reached only through a registry artifact. Every reached repository is + scanned once, after the fixed point. Lake dependencies outside the owners named by the + records (for example mathlib) are counted as `lake_external_edges` and not crawled. +- **R2, absent lake revision.** The lake handling moved into the fixed point, so it now + resolves `rev`. An absent revision is BLOCK `PIN-MISSING`, and a present, different one + stays INFO `LAKE-DEP`. This overlaps the R2 pickup at #712/6532713419. See that thread + for the reconciliation. +- **R4, current tips.** With `--fetch`, each repository is refreshed from origin + (`git fetch origin` and `remote set-head --auto`) before any default tip is read. A + failed refresh is BLOCK `FETCH-FAILED`. +- **Also.** Two repositories that pin a third differently give INFO `PIN-DIVERGENT`; the + first pin in breadth-first order is the one read. Mutant children now run in the + parent's interpreter mode (01a103c8's note). + +## Verification (CPython 3.11.15, local) + +- `test_cbz_drift`, `test_cbz_drift_adversarial_01a103c8` (byte-identical to `9a5d313b`) + and `test_cbz_drift_canonical_input` (#716): **66 tests OK** under `-B`, and again under + `-B -O`. + - At `fe676eb1`, the adversarial file gave 5 failures. R3 was already fixed there. +- **43 mutants**, each killed by its designated assertion, with harness controls. Eight + are new: R1, R2 and R4, plus the boundary. Two locators were reconciled: "lake deps not + followed" becomes "lake records dropped", because the code it pointed at has moved. +- **One fixture change**, disclosed: `test_lake_dependency_on_a_crawled_repository_is_followed` + used an absent revision and expected INFO. That expectation was the R2 defect. It now + uses a present historical commit, and the absent case is + `test_missing_lake_revision_blocks`. +- **Real federation** (`crawl-*.json`, with `--fetch`): 9 repositories, **0 BLOCK** at the + pins and at the tips. The fixed point reaches no new repository: all 72 lake edges are + external. At the tips the crawl now reads the refreshed tips, `main` `11e28815` and + Math- `19a55750`. + +## Not covered + +R2's own author lane may still deliver it. The Lean-context findings C1–C4 (slice B, +01SHCrxv) are not addressed here. Nor are #715's trigger, ruleset binding, typed or +elaborated coverage, or any G7/CBZ-0 claim. + +## Successor: DCL review of the R2 part (#723/6533295921) + +DCL's two findings were real, and both are fixed in the successor commit. +- **P1.** A git lake package with a missing, empty or non-string `rev` was skipped + silently, and a non-string `rev` crashed. Both are now BLOCK `PIN-MISSING`, and the + repository is still reached. A git package with no usable URL is BLOCK `MALFORMED`. +- **P2.** The test now asserts the bound identity: repository, manifest path, target and + pin. + +The successor has 68 tests, OK in both modes. It has 46 mutants, killed by designated +assertions, three of them new. Two tests were made assertion-safe so that a crash cannot +stand in for a kill. diff --git a/cbz/evidence/drift-r1r4-017-20261030/crawl-pins.json b/cbz/evidence/drift-r1r4-017-20261030/crawl-pins.json new file mode 100644 index 000000000..537653c61 --- /dev/null +++ b/cbz/evidence/drift-r1r4-017-20261030/crawl-pins.json @@ -0,0 +1,407 @@ +{ + "blocking": 0, + "edges": [ + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/google-drive", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/governance-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/main", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/math-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/meta-framework", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/query-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/sandbox", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/trial", + "via": "gitmodules+pins+listed" + } + ], + "findings": [ + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin e396002aa191 is 1 commits behind the default tip 1b62ca2f64b3", + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repo": "d6g8k5htny-coder/governance-", + "tip": "1b62ca2f64b3012c2fdbbf7f55ced236c3042891" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 81acc060341e is 123 commits behind the default tip 11e28815163e", + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repo": "d6g8k5htny-coder/main", + "tip": "11e28815163e15223e8827fe6ff47a1faaf36ebd" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 8151f592918a is 19 commits behind the default tip 19a55750451b", + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "repo": "d6g8k5htny-coder/math-", + "tip": "19a55750451b8016b50d1d20be6a18c021807ecb" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin c70e1984477a is 1 commits behind the default tip 0f5894f81a54", + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repo": "d6g8k5htny-coder/meta-framework", + "tip": "0f5894f81a5462c10ee5ec8f8109f466e712e47e" + }, + { + "artifact": "downstream-hard-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate: frontiers/downstream_gate_20260925/README.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-graph", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-graph: frontiers/downstream_gate_20260925/GRAPH.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-code", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-code: frontiers/downstream_gate_20260925/hard_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-tests: frontiers/downstream_gate_20260925/test_hard_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-output", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-output: frontiers/downstream_gate_20260925/RESULTS.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-replay", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-replay: frontiers/downstream_gate_20260925/run_validation.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-kernel", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-kernel: reviews/contact_kernel_tail_20260925/KERNEL_TAILS_AND_SMALL_GAP.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-source-files", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-source-files: reviews/contact_kernel_tail_20260925/SOURCE_FILES.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-manifest: claims/LANDING_CLAIMS.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-check", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-check: tools/landing_claims_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-tests: tests/test_landing_claims_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "lifetime-parent-verify", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact lifetime-parent-verify: imports/lifetime_parent_20260925/verify.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "review-topology-merged", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact review-topology-merged: REVIEW_TOPOLOGY.md differs at the crawled ref e396002aa191", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "proof-availability-index", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact proof-availability-index: PROOF_INDEX.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "trial-status-guard-snapshot", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact trial-status-guard-snapshot: portable/STATUS_GUARD_SNAPSHOT.json differs at the crawled ref 3738c859d519", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-downstream-gate-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-downstream-gate-workflow: .github/workflows/downstream-gate.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-ledger-custody-readme", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-ledger-custody-readme: imports/upper2d_h5_ledgers_20260926/README.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-rim-contract-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-rim-contract-workflow: .github/workflows/h5-rim-contract.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "bf-six-pin-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact bf-six-pin-workflow: .github/workflows/bf-six-pin-scalar.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-workflow: .github/workflows/formal-lean.yml differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-manifest: formal/manifest.json differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate: formal/gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate-test", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate-test: formal/tests/test_gate.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-core-root", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-core-root: formal/ResearchFormalCoreR1.lean differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-scope", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-scope: formal/SCOPE.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "drive-hole-substitutes-ledger", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact drive-hole-substitutes-ledger: reviews/drive_hole_substitutes_20260926/LEDGER.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "public-reading-map", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact public-reading-map: PUBLIC_READING_MAP.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-pr96-agents", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-pr96-agents: AGENTS.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-required-checks-doc", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-required-checks-doc: docs/FORMAL_REQUIRED_CHECKS.md differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tool", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tool: tools/required_formal_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tests: tests/test_required_formal_check.py differs at the crawled ref 8151f592918a", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + } + ], + "mode": "pins", + "repositories": [ + { + "optional": false, + "pin": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "ref": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "repository": "d6g8k5htny-coder/google-drive", + "resolved": true + }, + { + "optional": false, + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "ref": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repository": "d6g8k5htny-coder/governance-", + "resolved": true + }, + { + "optional": false, + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "ref": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repository": "d6g8k5htny-coder/main", + "resolved": true + }, + { + "optional": false, + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "ref": "8151f592918a845bf19eb8eafaf8444540a32734", + "repository": "d6g8k5htny-coder/math-", + "resolved": true + }, + { + "optional": false, + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "ref": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repository": "d6g8k5htny-coder/meta-framework", + "resolved": true + }, + { + "optional": false, + "pin": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "ref": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "repository": "d6g8k5htny-coder/query-", + "resolved": true + }, + { + "optional": true, + "pin": "dce04a4174835107126ab4f36c199a2dc320f964", + "ref": "dce04a4174835107126ab4f36c199a2dc320f964", + "repository": "d6g8k5htny-coder/sandbox", + "resolved": true + }, + { + "optional": false, + "pin": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "ref": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "repository": "d6g8k5htny-coder/trial", + "resolved": true + }, + { + "optional": false, + "pin": null, + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace", + "resolved": true + } + ], + "schema": "cbz.drift.v1", + "seed": { + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace" + }, + "stats": { + "lake_external_edges": 72, + "lean_declarations": 3030, + "lean_files": 166, + "lean_shared_names": 479, + "registry_artifacts": 592, + "registry_artifacts_evolved": 31, + "registry_artifacts_verified": 592 + } +} diff --git a/cbz/evidence/drift-r1r4-017-20261030/crawl-pins.stdout b/cbz/evidence/drift-r1r4-017-20261030/crawl-pins.stdout new file mode 100644 index 000000000..898e1629a --- /dev/null +++ b/cbz/evidence/drift-r1r4-017-20261030/crawl-pins.stdout @@ -0,0 +1 @@ +crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (pins): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 31}; stats {'lake_external_edges': 72, 'lean_declarations': 3030, 'lean_files': 166, 'lean_shared_names': 479, 'registry_artifacts': 592, 'registry_artifacts_evolved': 31, 'registry_artifacts_verified': 592} diff --git a/cbz/evidence/drift-r1r4-017-20261030/crawl-tips.json b/cbz/evidence/drift-r1r4-017-20261030/crawl-tips.json new file mode 100644 index 000000000..bcc4c39fb --- /dev/null +++ b/cbz/evidence/drift-r1r4-017-20261030/crawl-tips.json @@ -0,0 +1,415 @@ +{ + "blocking": 0, + "edges": [ + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/google-drive", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/governance-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/main", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/math-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/meta-framework", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/query-", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/sandbox", + "via": "gitmodules+pins+listed" + }, + { + "from": "d6g8k5htny-coder/universal-law-workspace", + "to": "d6g8k5htny-coder/trial", + "via": "gitmodules+pins+listed" + } + ], + "findings": [ + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin e396002aa191 is 1 commits behind the default tip 1b62ca2f64b3", + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "repo": "d6g8k5htny-coder/governance-", + "tip": "1b62ca2f64b3012c2fdbbf7f55ced236c3042891" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 81acc060341e is 123 commits behind the default tip 11e28815163e", + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "repo": "d6g8k5htny-coder/main", + "tip": "11e28815163e15223e8827fe6ff47a1faaf36ebd" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin 8151f592918a is 19 commits behind the default tip 19a55750451b", + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "repo": "d6g8k5htny-coder/math-", + "tip": "19a55750451b8016b50d1d20be6a18c021807ecb" + }, + { + "code": "PIN-STALE", + "level": "INFO", + "message": "pin c70e1984477a is 1 commits behind the default tip 0f5894f81a54", + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "repo": "d6g8k5htny-coder/meta-framework", + "tip": "0f5894f81a5462c10ee5ec8f8109f466e712e47e" + }, + { + "artifact": "downstream-hard-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate: frontiers/downstream_gate_20260925/README.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-graph", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-graph: frontiers/downstream_gate_20260925/GRAPH.json differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-code", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-code: frontiers/downstream_gate_20260925/hard_gate.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-tests: frontiers/downstream_gate_20260925/test_hard_gate.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-output", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-output: frontiers/downstream_gate_20260925/RESULTS.json differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-replay", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-replay: frontiers/downstream_gate_20260925/run_validation.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "downstream-hard-gate-pr15-replica-source", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact downstream-hard-gate-pr15-replica-source: replicas/downstream-gate-pr15-v1/SOURCE.json differs at the crawled ref 0f5894f81a54", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-kernel", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-kernel: reviews/contact_kernel_tail_20260925/KERNEL_TAILS_AND_SMALL_GAP.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "contact-small-gap-source-files", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact contact-small-gap-source-files: reviews/contact_kernel_tail_20260925/SOURCE_FILES.json differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-manifest: claims/LANDING_CLAIMS.json differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-check", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-check: tools/landing_claims_check.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "landing-claims-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact landing-claims-tests: tests/test_landing_claims_check.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "lifetime-parent-verify", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact lifetime-parent-verify: imports/lifetime_parent_20260925/verify.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "review-topology-merged", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact review-topology-merged: REVIEW_TOPOLOGY.md differs at the crawled ref 1b62ca2f64b3", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "proof-availability-index", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact proof-availability-index: PROOF_INDEX.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "trial-status-guard-snapshot", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact trial-status-guard-snapshot: portable/STATUS_GUARD_SNAPSHOT.json differs at the crawled ref 3738c859d519", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-downstream-gate-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-downstream-gate-workflow: .github/workflows/downstream-gate.yml differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-ledger-custody-readme", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-ledger-custody-readme: imports/upper2d_h5_ledgers_20260926/README.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "h5-rim-contract-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact h5-rim-contract-workflow: .github/workflows/h5-rim-contract.yml differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "bf-six-pin-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact bf-six-pin-workflow: .github/workflows/bf-six-pin-scalar.yml differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-workflow", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-workflow: .github/workflows/formal-lean.yml differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-manifest", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-manifest: formal/manifest.json differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate: formal/gate.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-gate-test", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-gate-test: formal/tests/test_gate.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-core-root", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-core-root: formal/ResearchFormalCoreR1.lean differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-lean-scope", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-lean-scope: formal/SCOPE.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "drive-hole-substitutes-ledger", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact drive-hole-substitutes-ledger: reviews/drive_hole_substitutes_20260926/LEDGER.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "public-reading-map", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact public-reading-map: PUBLIC_READING_MAP.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "math-pr96-agents", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact math-pr96-agents: AGENTS.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "formal-required-checks-doc", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact formal-required-checks-doc: docs/FORMAL_REQUIRED_CHECKS.md differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tool", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tool: tools/required_formal_check.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + }, + { + "artifact": "required-formal-check-tests", + "code": "REGISTRY-EVOLVED", + "level": "INFO", + "message": "artifact required-formal-check-tests: tests/test_required_formal_check.py differs at the crawled ref 19a55750451b", + "path": "registry.json", + "repo": "d6g8k5htny-coder/meta-framework" + } + ], + "mode": "tips", + "repositories": [ + { + "optional": false, + "pin": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "ref": "ad08584b3ea9d533af10113e85169f471fa8ec93", + "repository": "d6g8k5htny-coder/google-drive", + "resolved": true + }, + { + "optional": false, + "pin": "e396002aa19158f9fcca27eaf33a5da38b1ed313", + "ref": "1b62ca2f64b3012c2fdbbf7f55ced236c3042891", + "repository": "d6g8k5htny-coder/governance-", + "resolved": true + }, + { + "optional": false, + "pin": "81acc060341e8a31cc4cd4f9523ef71fb6c06175", + "ref": "11e28815163e15223e8827fe6ff47a1faaf36ebd", + "repository": "d6g8k5htny-coder/main", + "resolved": true + }, + { + "optional": false, + "pin": "8151f592918a845bf19eb8eafaf8444540a32734", + "ref": "19a55750451b8016b50d1d20be6a18c021807ecb", + "repository": "d6g8k5htny-coder/math-", + "resolved": true + }, + { + "optional": false, + "pin": "c70e1984477ae1752e93a060fac8bf0486c0ce73", + "ref": "0f5894f81a5462c10ee5ec8f8109f466e712e47e", + "repository": "d6g8k5htny-coder/meta-framework", + "resolved": true + }, + { + "optional": false, + "pin": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "ref": "fb4c457b5861dc49696fd0a8e11c7c405056c05f", + "repository": "d6g8k5htny-coder/query-", + "resolved": true + }, + { + "optional": true, + "pin": "dce04a4174835107126ab4f36c199a2dc320f964", + "ref": "dce04a4174835107126ab4f36c199a2dc320f964", + "repository": "d6g8k5htny-coder/sandbox", + "resolved": true + }, + { + "optional": false, + "pin": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "ref": "3738c859d519d2dbf1e388fe48fe0ae60c9487a3", + "repository": "d6g8k5htny-coder/trial", + "resolved": true + }, + { + "optional": false, + "pin": null, + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace", + "resolved": true + } + ], + "schema": "cbz.drift.v1", + "seed": { + "ref": "a4b016820329afc1787d9c191572b05cd88236ac", + "repository": "d6g8k5htny-coder/universal-law-workspace" + }, + "stats": { + "lake_external_edges": 72, + "lean_declarations": 3039, + "lean_files": 172, + "lean_shared_names": 482, + "registry_artifacts": 592, + "registry_artifacts_evolved": 32, + "registry_artifacts_verified": 592 + } +} diff --git a/cbz/evidence/drift-r1r4-017-20261030/crawl-tips.stdout b/cbz/evidence/drift-r1r4-017-20261030/crawl-tips.stdout new file mode 100644 index 000000000..488e9b6e4 --- /dev/null +++ b/cbz/evidence/drift-r1r4-017-20261030/crawl-tips.stdout @@ -0,0 +1 @@ +crawled 9 repositories from d6g8k5htny-coder/universal-law-workspace@a4b016820329 (tips): 0 BLOCK, INFO {'PIN-STALE': 4, 'REGISTRY-EVOLVED': 32}; stats {'lake_external_edges': 72, 'lean_declarations': 3039, 'lean_files': 172, 'lean_shared_names': 482, 'registry_artifacts': 592, 'registry_artifacts_evolved': 32, 'registry_artifacts_verified': 592} diff --git a/cbz/evidence/drift-r1r4-017-20261030/exits.txt b/cbz/evidence/drift-r1r4-017-20261030/exits.txt new file mode 100644 index 000000000..47562a49c --- /dev/null +++ b/cbz/evidence/drift-r1r4-017-20261030/exits.txt @@ -0,0 +1,2 @@ +pins exit=0 +tips exit=0 diff --git a/cbz/evidence/g12-statement-fuzz-01n/README.md b/cbz/evidence/g12-statement-fuzz-01n/README.md new file mode 100644 index 000000000..86c6c2239 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/README.md @@ -0,0 +1,326 @@ +# G12 — empirical statement check: tool, self-test and first runs + +Unit `CBZ0-G12-STATEMENT-FUZZ-01N-20261029`, pickup +[main#684/6510740889](https://github.com/d6g8k5htny-coder/main/issues/684#issuecomment-6510740889), +under the owner's directive addendum of 2026-10-29 22:58Z ("INTENT-LOCKED REINFORCEMENTS", published +at [684/6510536371](https://github.com/d6g8k5htny-coder/main/issues/684#issuecomment-6510536371)), +deliverable 1: *"Automatically subject all formal Lean proof bounds and geometric claims to large-scale, +randomized, pathological numerical edge-case testing. No mathematical proof closure may be marked +CLOSED without passing this empirical fuzzing validation layer."* + +Performer: Anthropic Claude, Claude Code session `session_01NMeKEismAyeqgdB4sy2NJU` (Claude01N). +B-003: a new tool, its tests and this evidence directory only; the `GOVERNANCE.md` / `TOOLING.md` +rows below are *proposed text* for Root. Credit 0. Scientific effect NONE. + +## What the tool is + +`tools/cbz/statement_fuzz.py` reads a formal package's `manifest.json`, parses every registered +theorem's **statement** and the package's own `def`s in a small interpreter for the core-Lean +arithmetic subset the skeletons use, and evaluates each statement **independently of Lean** in exact +arithmetic (Python integers and `fractions.Fraction`; a float anywhere is an assertion failure — +Layer A3). It implements Lean's semantics where they differ from naive arithmetic: `Nat` subtraction +truncates at 0, division by zero is 0 and `x % 0 = x` (totalized), `Nat` division floors, numerals +default to `Nat` unless an ascription or a definition's result type makes the arithmetic `Int` (the +maximal-type rule of Lean's `binop%` elaborator), and `Int` `/` and `%` are **Euclidean** +(`Int.ediv`/`Int.emod`, `0 ≤ r < |b|`) as in Lean 4 core — not Python's floor division and not +T-rounding. The six golden pairs of the Codex control +[684/6511137449](https://github.com/d6g8k5htny-coder/main/issues/684#issuecomment-6511137449) +(`5 / -2 = -2, r 1`; `-5 / -2 = 3, r 1`; `-5 / 2 = -3, r 1`; `5 / 2 = 2, r 1`; `5 / 0 = 0, r 5`; +`-5 / 0 = 0, r -5`) are tests, together with the Python-floor and T-division misreadings as FAIL +controls. + +Coverage of the subset: literals, `+ - * / % ^`, `∧ ∨ ¬ → ↔`, `= ≠ < > ≤ ≥ ∈ ∉`, ascriptions +`(e : Nat|Int)`, pairs and projections `p.1`/`p.2`, `Bool` (`true`, `false`, `!`, `&&`, `||`, +`if … then … else`), lists (`[…]`, `List.range`, `.foldl`, `.filter`, `.map`, `.sum`, `.length`), +lambdas, local `def`s with typed parameters, pattern-matching `def`s with `0`/`n + 1` patterns and +leading parameters (`def choose (n : Nat) : Nat → Nat | 0 => … | k + 1 => …`), the builtins +`Nat.choose`, `Nat.factorial`, `Nat.succ`, `Nat.pred`, `min`/`max`, `Int.natAbs`, `Int.toNat`, and +universal quantifiers over a finite domain written `∀ x, x ∈ [list] → …`, `∀ x ∈ [list], …`, or — for an +**explicit `Nat`/`ℕ` binder only** — `∀ x : Nat, x ≤ n → …` / `∀ x : ℕ, x < n → …`, including quantifiers +inside conjunctions and over lists of pairs. (An `Int`, `ℤ` or untyped binder with only an upper bound +is unbounded below and stays UNSUPPORTED: 01DKKe's P1 finding +[726/6547986788](https://github.com/d6g8k5htny-coder/main/pull/726#issuecomment-6547986788), fixed by +its follow-on with a regression test that fails on the previous code.) + +Per target it reports: + +- **PASS** — the statement, read independently of Lean, evaluates true; every finite quantifier domain + was enumerated exhaustively (the instance count is recorded). +- **FAIL** — it evaluates false; the failing instances are named. This is a misstatement or a + transcription defect in the Lean text, **never** evidence about the kernel. +- **CORROBORATED** (since the ℝ backend of 1 November, below) — the statement has binders before the + colon; no sampled instance satisfying its hypotheses refuted it. Admitted evidence of the statement, + never a proof, never PASS; the instance count, seed and rejected-draw count are recorded. +- **UNSUPPORTED** — the statement uses something outside the subset (Mathlib structures, measures and + functions, transcendental functions, an unbounded quantifier inside the statement, a binder that is + neither a sampled numeric type nor a decidable hypothesis). Fail-closed: such a target + is listed, cannot count as fuzz-validated, and makes the exit code non-zero. + +It also records, as information only, **boundary probes**: for each quantified finite domain it +evaluates the body just outside the domain (`min − 1`, `max + 1`, `0`, `2·max + 1`) and reports whether +the claim still holds there. A probe that fails shows the hypothesis is doing work (tightness); an +empty domain is flagged **vacuous** (A6). Probes never change the verdict. + +**Self-verification (A8).** `tests/test_cbz_statement_fuzz.py` (35 tests at #726, 66 with the ℝ backend; normal and `-O`, `-W error` +clean) covers the tokenizer, Lean semantics, definitions, folds, pairs, quantifiers, the vacuity and +tightness probes, fail-closed behaviour on Mathlib syntax, bare-name manifests, the mutation contract +and the real `formal/` package. `--selftest` runs the **mutation contract** on every module, in the +three classes the Codex design finding [684/6510829073](https://github.com/d6g8k5htny-coder/main/issues/684#issuecomment-6510829073) +asked for, each expectation justified before use: + +1. **Guaranteed-false mutants must FAIL.** Each PASS statement is mutated into forms that are false + whenever the original is true: every comparison replaced by its negation, one conjunct at a time; + the right-hand literal of an equality shifted by one. Never `<`→`≤`. +2. **Truth-preserving weakenings must PASS.** `<`→`≤` and `>`→`≥` are true whenever the original is; + a rejected weakening is an evaluator defect (`522 < 529` and `522 ≤ 529` are both true). +3. **The manifest's declared negative controls must FAIL.** Each `replace`→`with` edit that changes a + theorem statement (e.g. `23 ^ 2`→`22 ^ 2`, whose falsity the package records with Lean's own + `decide` diagnostic) is applied to the module text and evaluated; edits elsewhere (proof text, an + injected `sorry` or axiom) are classified non-statement and not counted. + +The unmutated set is the harness control; an UNSUPPORTED or errored mutant is a survivor or a +rejection, never a kill; and a stubbed evaluator that answers PASS to everything fails the control +(`test_a_broken_evaluator_is_caught_by_the_control`, `test_unsupported_mutant_is_a_survivor_not_a_kill`). + +## Runs (exact commands and heads) + +```sh +python3 -B -S -m unittest tests.test_cbz_statement_fuzz # 35 tests OK; same with -O and -W error +python3 -B -S tools/cbz/statement_fuzz.py --package formal --selftest --json main_formal_4712fc13.json +git -C archive 19a55750 formal | tar -x -C ; python3 -B -S tools/cbz/statement_fuzz.py --package /formal --json math_formal_19a55750.json +git archive b7ec86c2 formal | tar -x -C ; python3 -B -S tools/cbz/statement_fuzz.py --package /formal --selftest --json main_pr358_b7ec86c2.json +``` + +| Package | Cut | Targets | PASS | FAIL | UNSUPPORTED | Mutants killed | Exit | +|---|---|---:|---:|---:|---:|---:|---:| +| main `formal/` (SIDE24 arithmetic skeleton) | `main` `4712fc13` (31 Oct; `formal/` byte-identical to `e6f26538`, the 29 Oct run) | 31 | **31** | 0 | 0 | 98 / 98, 12 weakenings kept, 7 declared controls FAIL | 0 | +| main #358 `formal/` (SIDE24 + P15 skeletons) | PR head `b7ec86c2` | 59 | **59** | 0 | 0 | 184 / 184, 24 kept, 14 controls FAIL | 0 | +| Math- `formal/` (`ResearchFormalCoreR1`, Mathlib real analysis) | `main` `19a55750` (31 Oct; `9f8dbb4d` on 29 Oct gave the same) | 63 | 0 | 0 | **63** | — | 1 | + +No registered statement in any of the three packages uses `Int` division, so the Euclidean contract +(31 October) changed no verdict; it changed what the tool would do if one did. Likewise every quantified +published target quantifies by list membership, so the bound-domain follow-on changed no verdict; the +three runs above were regenerated after it and are identical per target. + +Tightness information from the probes on `main`: `pairing_sum_le_six` (`∀ q ∈ [0..6], pairingSum q ≤ 76`) +fails at `q = 7` and `q = 13`; `exponent_bounds` (`∀ d ∈ [2, 3], …`) holds at `d = 0, 1` and fails at +`d = 4, 7`. No vacuous domain. The 28 P15 targets of #358 all pass, including the finite-instance +quantifiers over pairs and the `Bool`-pair enumeration of the demand-one counterexample. + +**Math- status, plainly.** All 63 registered targets are real-analysis statements with binders before +the colon (60) or `ℝ` ascriptions (3). The interpreter does not cover `ℝ`, Mathlib notation or +hypotheses on real variables, so under the addendum's rule none of them is fuzz-validated yet. This is +the honest G12 state for the Math- core and a **recorded tool gap** (§11): an extension needs an +interval-arithmetic evaluator for `Real.exp`/`Real.log`/`Real.sqrt`/finite sums with randomized and +boundary sampling of hypothesised real variables — exact rational endpoints, never floats — plus its +own mutation self-test. Claude017 has offered exactly such a backend (`interval.py`: outward-rounded +exact rational intervals with Mathlib's totalized conventions, +[684/6532742483](https://github.com/d6g8k5htny-coder/main/issues/684#issuecomment-6532742483)); the +offer is accepted and the backend is wired in as a follow-up on this branch once it is pushed with its +tests. Nothing in this directory certifies those statements. + +## ℝ backend and sampled binders (1 November 2026; receipts `*_r2*`) + +The gap recorded above is closed for the algebraic part of the Math- core. The tool now: + +- **Parses binders before the colon.** `(x y : ℝ)`, `{n : ℕ}` and the other numeric types (ℕ ℤ ℚ ℝ) + declare *sampled variables*; `(h : p)` whose type parses as a proposition over names declared so far + (variables, the module's `def`s, the interpreter's builtins) is a *hypothesis*, with Mathlib interval + membership desugared (`x ∈ Set.Icc a b` ↦ `a ≤ x ∧ x ≤ b`, likewise `Ico Ioc Ioo Ici Iic Ioi Iio`). + Anything else — `[IsProbabilityMeasure μ]`, `(μ : Measure Ω)`, `(f : Ω → ℝ)`, `(A : Set Ω)`, a + predicate the interpreter does not define such as `Nat.Prime p` — makes the theorem UNSUPPORTED + **naming the binder**. A quantifier with an infinite domain *inside* a statement stays UNSUPPORTED as + before (the landed contract of #726 is unchanged there). +- **Samples pathologically, exactly, deterministically.** Variables are drawn in declaration order from + a fixed pool (0, ±1, ±½, ±2, ±10⁶, ±10⁻⁶, squares and non-squares, repeating decimals such as 1/3 and + 22/7, 2³¹, 10¹²…), from the **boundary values the hypotheses name** (`0 ≤ r`, `r ≤ 1`, `m2 ^ 2 < m4`, + `|a - b| ≤ δ` contribute 0, 1, m2², b ± δ and their ±1, ±10⁻⁶ neighbours) and from seeded random + rationals (numerators to 10⁹, denominators to 10⁶); every hypothesis is checked as soon as its + variables are assigned, so six-hypothesis statements are sampled without rejection explosions. The + first points are structured (every variable 0, then 1, −1, ½, …), so a refutation witness is small + (`x = 0` for `x / x = 1`, `cW = -1` for `√cW · √cW = cW`). Python's `random` chooses *which* exact + rationals to try; no float exists anywhere (the A3 assertion guard is unchanged). +- **Evaluates ℝ exactly.** Rationals are `Fraction`s; `Real.sqrt` of a rational is an element of the + multi-quadratic field ℚ(√d₁, …, √dₖ), kept in canonical form over squarefree radicands (`√8 = 2√2`, + `√(1/2) = √2/2`, `√12·√3 = 6`), so **equality is decided exactly** (the √d for distinct squarefree d + are ℚ-linearly independent: an element is zero iff every coefficient is), division rationalizes the + denominator by conjugation over a coprime base of the radicands, and the **sign of a nonzero element + is decided by refining integer-square-root enclosures** (64 → 4096 bits). `√2 + √3 < √10` is PASS and + `√2 + √3 > √10` is FAIL (the difference is −0.016); `(√2 + √3 + √5 + √30)⁻¹ · (√2 + √3 + √5 + √30) = 1` + is PASS. Mathlib's totalized conventions hold: `x / 0 = 0`, `0⁻¹ = 0`, `Real.sqrt x = 0` for `x ≤ 0` + (`Real.sqrt_eq_zero'`); `a ^ n` types its exponent on its own as Lean's `rightact%` does, so + `x ^ (1/2)` is `x ^ 0 = 1` exactly as in Lean, `x ^ (-2 : ℤ)` is `zpow`, and `x ^ (1/2 : ℝ)` (rpow) + is UNSUPPORTED; an ascription elaborates its body at the ascribed type (`(n - 1 : ℝ)` is `↑n - 1`, + `((n - 1 : ℕ) : ℝ)` casts a truncated Nat, `((7 : ℕ) / 2 : ℝ)` is `7/2` because `binop%` pushes the + cast to the leaves). Nested radicals (`√(√2)`), `Real.exp`/`log`/`pi`/trig and real exponents are + UNSUPPORTED with a message naming them. `|e|`, `√e`, `e⁻¹`, scientific literals (`0.5`, only in a + rational or real context — alone, Lean would default them to `Float`, and the tool refuses) are parsed. +- **Caps instead of approximating.** An exact result over 2·10⁶ bits (`2 ^ (2 ^ 63)`), a factorial or + binomial loop over 5 000, a `List.range` over 200 000 raise `Infeasible`: a sampled instance that is + infeasible is skipped and *counted* (`sampling.infeasible`); a closed statement that is infeasible is + UNSUPPORTED. +- **Keeps the mutation contract on sampled statements.** Mutants carry the theorem's binders: a class-1 + mutant of a true statement is false at every instance, so sampling must refute it; a class-2 + weakening is true at every instance, so sampling must not. The harness control accepts PASS or + CORROBORATED for the unmutated set. +- **Exit code.** The registered contract is unchanged by default — exit 0 only when every target is + PASS. `--admit-corroborated` admits CORROBORATED as well (recorded in the report under + `sampling.admit_corroborated`); `--seed` and `--samples` (default 1 and 64) are recorded too. + +Self-verification grew to **66 tests** (`tests/test_cbz_statement_fuzz.py`, normal and `-O`, `-W error` +clean): the 35 landed cases unchanged except one expectation (`lemma c (x : ℝ) : x ^ 2 ≥ 0` is now +CORROBORATED, not UNSUPPORTED; the package it sits in still exits 1 on its Mathlib target), plus the real +binders (`RealBinderTests`, 14: identities corroborated with counts, refutations with exact witnesses, +hypothesis filtering, totalized division, unsatisfiable hypotheses as UNSUPPORTED "no sample", exact and +totalized `Real.sqrt`, non-square radicands decided, `|·|`/`max`/`≠`, local ℝ `def`s with parameters, +non-numeric binders UNSUPPORTED, hypothesis boundaries sampled, seed determinism, the mutation contract), +exact algebra (`ExactRealAlgebraTests`, 6), sampled-binder semantics (`SampledBinderSemanticsTests`, 10: +ℕ/ℤ binders with truncation and Euclidean division, infeasible instances counted not approximated, +interval membership, boundaries between variables, inner finite quantifiers under a sampled binder, +undefined predicates naming the binder, type tokens such as `ℝ≥0` inside a binder type reported as types, a +comparison of bare scientific literals refused as Float, `|·|` as an application argument, exact witnesses at +which the hypotheses hold) and the exit-code flag (`AdmitCorroboratedPackageTests`, 1). Two of the author's own +first expectations were wrong and the tool was right — `((7 : ℕ) / 2 : ℝ) = 3` (Lean gives 7/2) and +`∀ k ≤ 3, k ≤ n + 2` at `n = 0` — which is the behaviour one wants from an independent reader. + +```sh +python3 -B -S -m unittest tests.test_cbz_statement_fuzz # 66 tests OK; same with -O -W error +python3 -B -S tools/cbz/statement_fuzz.py --package formal --selftest --json main_formal_ec6962ff_r2.json +git -C archive 19a55750 formal | tar -x -C +python3 -B -S tools/cbz/statement_fuzz.py --package /formal --selftest --json math_formal_19a55750_r2.json +python3 -B -S tools/cbz/statement_fuzz.py --package /formal --admit-corroborated --seed 2 --samples 256 --json math_formal_19a55750_r2_seed2_s256.json +``` + +| Package | Cut | Targets | PASS | CORROBORATED | FAIL | UNSUPPORTED | Mutants killed | Exit | +|---|---|---:|---:|---:|---:|---:|---|---:| +| main `formal/` (SIDE24 + P15 skeletons, after #740) | `main` `ec6962ff` (`formal/` tree `e32c6bcb`) | 59 | **59** | 0 | 0 | 0 | 184 / 184, 24 weakenings kept, 15 declared statement controls FAIL | 0 | +| Math- `formal/` (`ResearchFormalCoreR1`) | `main` `19a55750` | 63 | **3** | **29** | 0 | **31** | 45 / 45, 6 weakenings kept (the three all-supported modules `harness_ok`; the five with UNSUPPORTED targets fail the control by design) | 1 | +| Math- `formal/`, seed 2, 256 samples, `--admit-corroborated` | `19a55750` | 63 | 3 | 29 | 0 | 31 | — | 1 (the 31 UNSUPPORTED) | + +The ℝ backend changes **no verdict** on the core-Lean packages (59/59 PASS before and after, identical +per target). On the Math- core it moves 32 of 63 targets from UNSUPPORTED to a decided verdict — 3 PASS +(the closed counterexample controls `p02_lm008_sqrt_counterexample`, `p02_lm008_upper_normalizer_counterexample`, +`d2_degenerate_control`, the last of which rests on `x / 0 = 0` through `d2Schur 1 1 (1/4) = 2`) and 29 +CORROBORATED (the `ec0xx` polynomial identities, the `p02_lm008`/`p02_lm009` real inequalities including +the six-hypothesis `p02_lm008_cross_multiplied` and `_quotient_bound` with `Real.sqrt`, `weightPerturbation_quotient_bound` +with two absolute-value hypotheses, and the 13 sampled `D2Schur` statements). **Zero FAIL on 29 +kernel-proved statements is itself a soundness check of the backend**: a false refutation would have +been a reader defect. Seeds 1, 2, 3 and 64/128/256 samples give the same distribution. The 31 that stay +UNSUPPORTED all carry a measure-theoretic binder — `(μ : Measure Ω)` (27), `(R : Ω → ℝ)` (2), +`(μ : ℝ → Measure Ω)` (2) — and are named as such in the stdout receipt; no sampler reads a measure, and +the tool says so rather than approximating. + +## Finite discrete models for measure-theoretic statements (1 November 2026; receipts `*_r3*`) + +The 31 statements the ℝ backend left UNSUPPORTED are all over a carrier `variable {Ω : Type*} [MeasurableSpace Ω]` +with binders `(μ : Measure Ω)`, `(W R V : Ω → ℝ)`, `(A : Set Ω)`, instance hypotheses `[IsProbabilityMeasure μ]` / +`[IsFiniteMeasure μ]`, integrals `∫ x, f x ∂μ` and `∫ x in A, …`, event masses `(μ A).toReal`, a.e. relations +`0 ≤ᵐ[μ] W` / `W =ᵐ[μ] V`, set-builders `{x | p x}`, `⊆`, `≪`, and two local definitions +(`weightedLaw μ W := (ENNReal.ofReal (∫ x, W x ∂μ))⁻¹ • μ.withDensity (fun x => ENNReal.ofReal (W x))`, +`badJetEvent R r ε := {x | ε < r * R x ^ 5}`). The tool now samples them on **finite discrete models**: +Ω = Fin n with n ∈ {1, 2, 3, 4} and the discrete σ-algebra, μ a vector of non-negative rational weights +(normalised to total mass 1 when `IsProbabilityMeasure μ` is hypothesised, allowed to be zero otherwise), +functions as tables of exact rationals, sets as subsets, with neighbour sampling (W equal to or one entry +away from an already drawn V) so that perturbation hypotheses such as `∫ |W x - V x| ∂μ ≤ δ` are hit. + +Why this is sound: every such model *is* an instance of the Lean statement. The Bochner integral of a +table against a finite measure is the finite sum Σ wᵢ f(i) (every function is integrable); `∫ x in A, …` +is the sum over A; `μ A` is the partial sum; `0 ≤ᵐ[μ] W` holds iff W ≥ 0 at every point of nonzero weight; +`MeasurableSet`, `Measurable`, `Integrable`, `MemLp` hold for everything the model carries (discrete +σ-algebra, finite measure) — except on a derived measure with a point of infinite mass (`(ENNReal.ofReal 0)⁻¹ • μ`), +where `IsFiniteMeasure` is decided false and integrability is not assumed (a8's N2); `IsProbabilityMeasure ν` is total mass 1; `ν ≪ μ` is "every μ-null point is +ν-null"; measures are equal iff their weight vectors are; `ENNReal` follows Mathlib (`0⁻¹ = ∞`, `∞⁻¹ = 0`, +`∞ · 0 = 0`, truncated subtraction, `ENNReal.toReal ∞ = 0`, `ENNReal.ofReal` clips at 0); `c • μ` and +`μ.withDensity f` are pointwise products; a quantifier `∀ A : Set Ω, …` enumerates all 2ⁿ subsets. A +refutation on a finite model is therefore a refutation of the Lean text's reading — and the test +`weightedLaw_apply` without `0 ≤ᵐ[μ] W` shows one: with a signed W, `ofReal` clips on one side only and +`∞ · 0 = 0` makes the two sides differ. Points of infinite mass are not generated (every statement in scope +hypothesises finiteness or integrability that would exclude them), and a conclusion that is only a +structural predicate (`MeasurableSet (badJetEvent R r ε)`) is reported UNSUPPORTED as trivial on discrete +models rather than CORROBORATED. Real-indexed families `(μ : ℝ → Measure Ω)` with `∀ r, 0 < r → r ≤ r0 → …` +hypotheses stay UNSUPPORTED (an infinite quantifier inside a hypothesis). Definitions and the carrier are +shared across a package's modules (`weightedLaw` is defined in `WeightedLaw.lean` and used in +`WeightPerturbation.lean`). The class-1 literal-shift mutant is now typing-aware: `weightedLaw μ W = 0` +compares measures, and `= 1` there is not a Lean term, so it is not generated. + +Tests: 66 → **78** (`FiniteModelTests`, 11: Markov with and without its subset hypothesis, integral +Cauchy–Schwarz with exact square roots and its strict misstatement, set integrals and event masses, the +`weightedLaw` identity and its signed-W refutation, probability/zero/one/≪/a.e.-congruence, set-builder +events and the moment tail with and without the moment bound, `∀ A : Set Ω` enumeration, structural and +family UNSUPPORTED, exact seeded model witnesses, the mutation contract). The 58 adversarial probes still +match; main `formal/` is unchanged. + +```sh +python3 -B -S -m unittest tests.test_cbz_statement_fuzz # 78 tests OK; same with -O -W error +python3 -B -S tools/cbz/statement_fuzz.py --package formal --selftest --json main_formal_ec6962ff_r3.json +python3 -B -S tools/cbz/statement_fuzz.py --package /formal --selftest --json math_formal_19a55750_r3.json +python3 -B -S tools/cbz/statement_fuzz.py --package /formal --admit-corroborated --seed 2 --samples 128 --json math_formal_19a55750_r3_seed2_s128.json +``` + +| Package | Cut | Targets | PASS | CORROBORATED | FAIL | UNSUPPORTED | Mutants killed | Exit | +|---|---|---:|---:|---:|---:|---:|---|---:| +| main `formal/` (SIDE24 + P15) | `ec6962ff` | 59 | **59** | 0 | 0 | 0 | 184 / 184, 24 weakenings kept, 15 declared statement controls FAIL | 0 | +| Math- `formal/` | `19a55750` | 63 | **3** | **56** | 0 | **4** | 72 / 72, 6 weakenings kept; the two modules with UNSUPPORTED targets fail the control by design | 1 | +| Math- `formal/`, seed 2, 128 samples, `--admit-corroborated` | `19a55750` | 63 | 3 | 56 | 0 | 4 | — | 1 (the 4) | + +Seeds 1, 2 and 3 give the same distribution, 72/72 kills and zero survivors; every CORROBORATED statement +reached the full 64 accepted instances, and no draw was infeasible (`sampling_totals` in the report and the +CLI summary — a8's #742 nit). Radicands are split by exact factorisation (trial division, deterministic +Miller–Rabin below 3.3·10²⁴, Brent's rho); a root whose radicand lies beyond that range is kept exact but +*non-canonical*: orderings are still decided by enclosures, while an exact zero between such roots cannot be +recognised and is reported Infeasible/UNSUPPORTED rather than guessed (`ExactRealAlgebraTests`). The 4 UNSUPPORTED are named in the stdout receipt: +`p02_lm009_badJet_measurable` (structural conclusion) and the three `moment40_family_r3*` statements +(real-indexed family). **Zero FAIL on 56 kernel-proved statements** remains the soundness check of the +reader; the class-1 kills (every negated conclusion refuted on the models) show the evaluation has content. + +**Proposed registration amendment (for Root; the landed GOVERNANCE.md section of #741 governs until +amended):** the coverage row for Math- `formal/` at `19a55750` becomes `63 | 3 PASS | 56 CORROBORATED | +4 UNSUPPORTED`; the sentence "The tool does not cover Mathlib real analysis, binders before the colon or +unbounded quantifiers … the Math- core's 63 statements remain explicitly unsupported" becomes "The tool +samples numeric binders before the colon (ℕ ℤ ℚ ℝ) under decidable hypotheses, evaluates `Real.sqrt` +exactly in ℚ(√d₁, …, √dₖ), and samples measure-theoretic statements on finite discrete models (Ω = Fin n, +rational weights, tables, subsets); a sampled statement is CORROBORATED or FAIL, never PASS. Structural +conclusions, real-indexed families, nested radicals, transcendental functions and unbounded quantifiers +inside a statement remain explicitly unsupported; no registered statement uses `Real.exp`/`log`, so no +interval backend is pending."; the test count becomes 78; and the gate +mapping gains: "For a statement with sampled binders, CORROBORATED at the same source cut as the kernel +receipt is the applicable empirical validation (recorded with seed, sample count and the report's +SHA-256); it is admitted evidence, not an exact check, and is marked as such." The B-007 statute is +unchanged: a `PROOF_INDEX` row needs PASS or, for sampled statements, CORROBORATED — never UNSUPPORTED. + +## Proposed gate row and registry entries (for Root; B-003) + +**§10 gate matrix, new row:** + +| Gate | Command/Check | Pass condition | Blocking | +|---|---|---|---| +| G12 Empirical statement check | `python3 -B -S tools/cbz/statement_fuzz.py --package --selftest` for every formal package in scope | every registered target PASS; no UNSUPPORTED; every module's mutation contract `harness_ok` (class 1 all killed, class 2 all kept) and every declared statement control FAIL; exit 0 | ✅ for a target to be CLOSED; a package with UNSUPPORTED targets cannot have them CLOSED | + +**`TOOLING.md` entry:** `tools/cbz/statement_fuzz.py` — purpose: independent exact-arithmetic +evaluation of core-Lean arithmetic statements, finite-quantifier enumeration, vacuity/tightness probes; +usage: as above (`--json` writes the full report); self-verification: `tests/test_cbz_statement_fuzz.py` +(35 tests, both modes) and the built-in `--selftest` mutation contract (control, guaranteed-false +mutants, truth-preserving weakenings, declared manifest controls); serves CBZ-0 criterion 3 (CLOSED requires G12 PASS) and the addendum's deliverable 1; +maintenance owner: none — self-contained, stdlib only; domain limit: core-Lean arithmetic subset, +UNSUPPORTED elsewhere (B-006). + +**`GOVERNANCE.md`, Layer B statute (proposed B-007):** a `PROOF_INDEX` row may be CLOSED only when +the target's G12 status is PASS at the same source cut as its kernel receipt; a PASS is recorded +with the report file's SHA-256 and the `manifest_sha256` it binds. + +## Limits + +- Statement-level only. A PASS means the Lean text says what it was read to say and that reading is + true in exact arithmetic. It adds nothing to, and takes nothing from, the kernel's verdict. +- The interpreter's reading of Lean elaboration (numeral typing, `binop%` maximal type, `Int` + division) is an approximation that is exact on the constructs the skeletons use and fail-closed + elsewhere; a construct it misreads would surface as FAIL on a kernel-checked theorem, which is the + signal to look at the interpreter, not the theorem. +- Sampling outside finite domains is information, not a verdict; it is reported so a reader can see + that hypotheses are not vacuous and where the stated bounds stop holding. +- CORROBORATED is bounded by the sampler: 64 exact instances (by default) from a pathological pool, + hypothesis boundaries and seeded random rationals. A statement false only on a thin set the sampler + does not hit would be corroborated; that is why it is never PASS and why the seed and counts are + recorded. It still refutes misstatements that are false at 0, ±1, a boundary, or generically. +- Hypotheses are decided by the same interpreter; a hypothesis it cannot read makes the theorem + UNSUPPORTED rather than letting the conclusion be sampled unconstrained. diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_formal_4712fc13.json b/cbz/evidence/g12-statement-fuzz-01n/main_formal_4712fc13.json new file mode 100644 index 000000000..f4df10074 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_formal_4712fc13.json @@ -0,0 +1,531 @@ +{ + "package_root": "formal", + "manifest_sha256": "34767f4d89e0d1b5135a7425fc617a471238ea2a64da7e3ad78080490d31c914", + "module_sha256": { + "UniversalLaw/Side24/Ledger.lean": "ae4a14f3db8cf26668e55e2d2f80e0dcecb0703826b40396d91fb6e0d266d3f7", + "UniversalLaw/Side24/ConeMoments.lean": "2bcd4a83683188856bce010c3dcdec6904e45a6d73b50b9f3891e632ff58985c", + "UniversalLaw/Side24/Endpoints.lean": "095102245297707316cfd7e244d5509f9b102fe5aa638b7acdbbcf9d3c9d52bd" + }, + "targets": 31, + "status_counts": { + "PASS": 31 + }, + "per_target": { + "UniversalLaw.Side24.pairing_sum_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pairing_sum_le_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 7 quantified instances", + "instances": 7, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": 7, + "holds": false + }, + { + "var": "q", + "value": 13, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.pairing_terms_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.sixth_moment_double_factorial": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.lattice_shell_constant": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.geometric_ratio_constants": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.period_exponent": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.image_constant_value": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.covariance_relative_bound": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_eigenvalues": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_shifted_minors": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponent_bounds": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 2 quantified instances", + "instances": 2, + "vacuous": false, + "probes": [ + { + "var": "d", + "value": 0, + "holds": true + }, + { + "var": "d", + "value": 1, + "holds": true + }, + { + "var": "d", + "value": 4, + "holds": false + }, + { + "var": "d", + "value": 7, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.exponent_values": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.ratio_constant_ordering": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.density_comparison_below_reported": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.conditional_third_derivative_variance": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.transverse_covariance_entries_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m1_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.trace_and_traceless_variances": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.fourth_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponential_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m2_algebra": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cube_root_simplification": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pin_determinant_and_joint_dimension": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.hessian_block_eigenvalues": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d2_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_below_d2": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.endpoints_in_unit_tenth": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "UniversalLaw.Side24.pairing_sum_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_sum_le_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_terms_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.sixth_moment_double_factorial", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.lattice_shell_constant", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.geometric_ratio_constants", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.period_exponent", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.image_constant_value", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.covariance_relative_bound", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_eigenvalues", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_shifted_minors", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_bounds", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_values", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.ratio_constant_ordering", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.density_comparison_below_reported", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.conditional_third_derivative_variance", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.transverse_covariance_entries_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m1_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.trace_and_traceless_variances", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.fourth_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.exponential_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m2_algebra", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cube_root_simplification", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.pin_determinant_and_joint_dimension", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.hessian_block_eigenvalues", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.d2_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_below_d2", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.endpoints_in_unit_tenth", + "module": "UniversalLaw/Side24/Endpoints.lean" + } + ], + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "survivors": [], + "weakenings": 6, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 5, + "weakenings_rejected": [], + "harness_ok": true + } + }, + "declared_controls": { + "false_exponent_bound_d3": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exponent_bounds", + "status": "FAIL", + "detail": "fails at d = 3" + }, + "false_covariance_bound": { + "class": "statement", + "theorem": "UniversalLaw.Side24.covariance_relative_bound", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_exp_partial_sum": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_image_constant": { + "class": "statement", + "theorem": "UniversalLaw.Side24.image_constant_value", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_eigenvalue_third": { + "class": "statement", + "theorem": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_trace_variance": { + "class": "statement", + "theorem": "UniversalLaw.Side24.trace_and_traceless_variances", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_endpoint_adjacency": { + "class": "statement", + "theorem": "UniversalLaw.Side24.d2_endpoints_adjacent", + "status": "FAIL", + "detail": "closed statement evaluated false" + } + }, + "exit_code": 0, + "note": "G12 empirical statement check: PASS means the statement, read independently of Lean, evaluates true in exact arithmetic; it is not kernel evidence. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_formal_4712fc13.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/main_formal_4712fc13.stdout.txt new file mode 100644 index 000000000..a8066dce8 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_formal_4712fc13.stdout.txt @@ -0,0 +1,54 @@ +{ + "package_root": "formal", + "targets": 31, + "status_counts": { + "PASS": 31 + }, + "unregistered_theorems": [], + "exit_code": 0, + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "weakenings": 6, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 5, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + } + }, + "declared_controls": { + "statement_controls_fail": [ + "false_exponent_bound_d3", + "false_covariance_bound", + "false_exp_partial_sum", + "wrong_image_constant", + "false_eigenvalue_third", + "false_trace_variance", + "false_endpoint_adjacency" + ], + "statement_controls_not_failing": [], + "non_statement_controls": [] + } +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r2.json b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r2.json new file mode 100644 index 000000000..f9fd2c51a --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r2.json @@ -0,0 +1,997 @@ +{ + "package_root": "formal", + "manifest_sha256": "022cf67419a08402ace3b689b1603c61283a633128fb7fcb12f212c0468d4b73", + "module_sha256": { + "UniversalLaw/Side24/Ledger.lean": "ae4a14f3db8cf26668e55e2d2f80e0dcecb0703826b40396d91fb6e0d266d3f7", + "UniversalLaw/Side24/ConeMoments.lean": "2bcd4a83683188856bce010c3dcdec6904e45a6d73b50b9f3891e632ff58985c", + "UniversalLaw/Side24/Endpoints.lean": "095102245297707316cfd7e244d5509f9b102fe5aa638b7acdbbcf9d3c9d52bd", + "UniversalLaw/P15/PriceBoundary.lean": "d11f32fbbf6ffe726dff0ac889bfaf04d61c9f5818d3c447abf7132fbe96bd6e", + "UniversalLaw/P15/RealizedCovers.lean": "1b60dd00925789ae86f081463fd97117561223568532b5f5a886fdc8247051b3", + "UniversalLaw/P15/FullPrice.lean": "9fb2aad19ac132f52c6e6b89c1040890922e1f905e88fac29992b62cbc890569" + }, + "targets": 59, + "status_counts": { + "PASS": 59 + }, + "per_target": { + "UniversalLaw.Side24.pairing_sum_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pairing_sum_le_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 7 quantified instances", + "instances": 7, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": 7, + "holds": false + }, + { + "var": "q", + "value": 13, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.pairing_terms_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.sixth_moment_double_factorial": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.lattice_shell_constant": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.geometric_ratio_constants": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.period_exponent": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.image_constant_value": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.covariance_relative_bound": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_eigenvalues": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_shifted_minors": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponent_bounds": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 2 quantified instances", + "instances": 2, + "vacuous": false, + "probes": [ + { + "var": "d", + "value": 0, + "holds": true + }, + { + "var": "d", + "value": 1, + "holds": true + }, + { + "var": "d", + "value": 4, + "holds": false + }, + { + "var": "d", + "value": 7, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.exponent_values": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.ratio_constant_ordering": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.density_comparison_below_reported": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.conditional_third_derivative_variance": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.transverse_covariance_entries_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m1_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.trace_and_traceless_variances": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.fourth_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponential_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m2_algebra": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cube_root_simplification": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pin_determinant_and_joint_dimension": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.hessian_block_eigenvalues": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d2_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_below_d2": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.endpoints_in_unit_tenth": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.smallest_member_block_size": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.demand_one_good_sets": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.demand_one_obstruction": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.good_measure_three_quarters": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.generator_prices_ninths": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimum_generator_price_exceeds_third": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.benchmark_block_and_ground_sizes": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.four_block_supports_fifteen": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimal_forbidder_counts": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.palette_816_from_two_label_classes": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.palette_815_fails_by_counting": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.whole_ground_chromatic_818": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.elementary_palette_formula_instances": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.macro_triangle_three_colors": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.ceil_block_over_capacity_instances": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "holds on all 5 quantified instances", + "instances": 5, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.block_occupancy_one_percent": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.low_failure_union_bound_arithmetic": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.cover_price_numerator_and_denominator_positive": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.rho_star_endpoints_adjacent": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimal_block_size_instances": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "holds on all 5 quantified instances", + "instances": 5, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.e_rational_bounds_ordering": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.h_star_rational_certificate_constants": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.t3_ratio_at_minimal_block": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.t3_bound_finite_instances": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "holds on all 13 quantified instances", + "instances": 13, + "vacuous": false, + "probes": [ + { + "var": "a", + "value": 0, + "holds": false + }, + { + "var": "a", + "value": 7, + "holds": true + }, + { + "var": "a", + "value": 13, + "holds": true + } + ], + "float_free": true + }, + "UniversalLaw.P15.explicit_rational_price_above_p": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "UniversalLaw.Side24.pairing_sum_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_sum_le_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_terms_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.sixth_moment_double_factorial", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.lattice_shell_constant", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.geometric_ratio_constants", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.period_exponent", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.image_constant_value", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.covariance_relative_bound", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_eigenvalues", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_shifted_minors", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_bounds", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_values", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.ratio_constant_ordering", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.density_comparison_below_reported", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.conditional_third_derivative_variance", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.transverse_covariance_entries_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m1_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.trace_and_traceless_variances", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.fourth_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.exponential_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m2_algebra", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cube_root_simplification", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.pin_determinant_and_joint_dimension", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.hessian_block_eigenvalues", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.d2_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_below_d2", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.endpoints_in_unit_tenth", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.P15.smallest_member_block_size", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.demand_one_good_sets", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.demand_one_obstruction", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.good_measure_three_quarters", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.generator_prices_ninths", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.minimum_generator_price_exceeds_third", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.benchmark_block_and_ground_sizes", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.four_block_supports_fifteen", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.minimal_forbidder_counts", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.palette_816_from_two_label_classes", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.palette_815_fails_by_counting", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.whole_ground_chromatic_818", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.elementary_palette_formula_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.macro_triangle_three_colors", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.ceil_block_over_capacity_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.block_occupancy_one_percent", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.low_failure_union_bound_arithmetic", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.cover_price_numerator_and_denominator_positive", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.rho_star_endpoints_adjacent", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.minimal_block_size_instances", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.e_rational_bounds_ordering", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.h_star_rational_certificate_constants", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.t3_ratio_at_minimal_block", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.t3_bound_finite_instances", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.explicit_rational_price_above_p", + "module": "UniversalLaw/P15/FullPrice.lean" + } + ], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "survivors": [], + "weakenings": 6, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 5, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/PriceBoundary.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 12, + "killed": 12, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/RealizedCovers.lean": { + "theorems": 12, + "control_passed": true, + "mutants": 38, + "killed": 38, + "survivors": [], + "weakenings": 4, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/FullPrice.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 36, + "killed": 36, + "survivors": [], + "weakenings": 7, + "weakenings_rejected": [], + "harness_ok": true + } + }, + "declared_controls": { + "false_exponent_bound_d3": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exponent_bounds", + "status": "FAIL", + "detail": "fails at d = 3" + }, + "false_covariance_bound": { + "class": "statement", + "theorem": "UniversalLaw.Side24.covariance_relative_bound", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_exp_partial_sum": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_image_constant": { + "class": "statement", + "theorem": "UniversalLaw.Side24.image_constant_value", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_eigenvalue_third": { + "class": "statement", + "theorem": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_trace_variance": { + "class": "statement", + "theorem": "UniversalLaw.Side24.trace_and_traceless_variances", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_endpoint_adjacency": { + "class": "statement", + "theorem": "UniversalLaw.Side24.d2_endpoints_adjacent", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_price_boundary_third": { + "class": "statement", + "theorem": "UniversalLaw.P15.minimum_generator_price_exceeds_third", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_generator_prices": { + "class": "statement", + "theorem": "UniversalLaw.P15.generator_prices_ninths", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_palette_815_count": { + "class": "statement", + "theorem": "UniversalLaw.P15.palette_815_fails_by_counting", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_transversal_count": { + "class": "statement", + "theorem": "UniversalLaw.P15.minimal_forbidder_counts", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_whole_ground_chromatic": { + "class": "statement", + "theorem": "UniversalLaw.P15.whole_ground_chromatic_818", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_rho_endpoint_adjacency": { + "class": "statement", + "theorem": "UniversalLaw.P15.rho_star_endpoints_adjacent", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_rho_upper_six_sevenths": { + "class": "statement", + "theorem": "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_taylor_certificate": { + "class": "statement", + "theorem": "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate", + "status": "FAIL", + "detail": "closed statement evaluated false" + } + }, + "exit_code": 0, + "note": "G12 empirical statement check: PASS means the closed statement, read independently of Lean, evaluates true in exact arithmetic; CORROBORATED means no sampled instance of a statement with binders refuted it (admitted evidence, never a proof); neither is kernel evidence. FAIL names an exact witness. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r2.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r2.stdout.txt new file mode 100644 index 000000000..70e6dd491 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r2.stdout.txt @@ -0,0 +1,97 @@ +{ + "package_root": "formal", + "targets": 59, + "status_counts": { + "PASS": 59 + }, + "unregistered_theorems": [], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "exit_code": 0, + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "weakenings": 6, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 5, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/PriceBoundary.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 12, + "killed": 12, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/RealizedCovers.lean": { + "theorems": 12, + "control_passed": true, + "mutants": 38, + "killed": 38, + "weakenings": 4, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/FullPrice.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 36, + "killed": 36, + "weakenings": 7, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + } + }, + "declared_controls": { + "statement_controls_fail": [ + "false_exponent_bound_d3", + "false_covariance_bound", + "false_exp_partial_sum", + "wrong_image_constant", + "false_eigenvalue_third", + "false_trace_variance", + "false_endpoint_adjacency", + "false_price_boundary_third", + "wrong_generator_prices", + "false_palette_815_count", + "wrong_transversal_count", + "wrong_whole_ground_chromatic", + "false_rho_endpoint_adjacency", + "false_rho_upper_six_sevenths", + "wrong_taylor_certificate" + ], + "statement_controls_not_failing": [], + "non_statement_controls": [] + } +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r3.json b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r3.json new file mode 100644 index 000000000..68bed262a --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r3.json @@ -0,0 +1,1004 @@ +{ + "package_root": "formal", + "manifest_sha256": "022cf67419a08402ace3b689b1603c61283a633128fb7fcb12f212c0468d4b73", + "module_sha256": { + "UniversalLaw/Side24/Ledger.lean": "ae4a14f3db8cf26668e55e2d2f80e0dcecb0703826b40396d91fb6e0d266d3f7", + "UniversalLaw/Side24/ConeMoments.lean": "2bcd4a83683188856bce010c3dcdec6904e45a6d73b50b9f3891e632ff58985c", + "UniversalLaw/Side24/Endpoints.lean": "095102245297707316cfd7e244d5509f9b102fe5aa638b7acdbbcf9d3c9d52bd", + "UniversalLaw/P15/PriceBoundary.lean": "d11f32fbbf6ffe726dff0ac889bfaf04d61c9f5818d3c447abf7132fbe96bd6e", + "UniversalLaw/P15/RealizedCovers.lean": "1b60dd00925789ae86f081463fd97117561223568532b5f5a886fdc8247051b3", + "UniversalLaw/P15/FullPrice.lean": "9fb2aad19ac132f52c6e6b89c1040890922e1f905e88fac29992b62cbc890569" + }, + "targets": 59, + "status_counts": { + "PASS": 59 + }, + "per_target": { + "UniversalLaw.Side24.pairing_sum_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pairing_sum_le_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 7 quantified instances", + "instances": 7, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": 7, + "holds": false + }, + { + "var": "q", + "value": 13, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.pairing_terms_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.sixth_moment_double_factorial": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.lattice_shell_constant": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.geometric_ratio_constants": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.period_exponent": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.image_constant_value": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.covariance_relative_bound": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_eigenvalues": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_shifted_minors": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponent_bounds": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 2 quantified instances", + "instances": 2, + "vacuous": false, + "probes": [ + { + "var": "d", + "value": 0, + "holds": true + }, + { + "var": "d", + "value": 1, + "holds": true + }, + { + "var": "d", + "value": 4, + "holds": false + }, + { + "var": "d", + "value": 7, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.exponent_values": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.ratio_constant_ordering": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.density_comparison_below_reported": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.conditional_third_derivative_variance": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.transverse_covariance_entries_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m1_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.trace_and_traceless_variances": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.fourth_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponential_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m2_algebra": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cube_root_simplification": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pin_determinant_and_joint_dimension": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.hessian_block_eigenvalues": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d2_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_below_d2": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.endpoints_in_unit_tenth": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.smallest_member_block_size": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.demand_one_good_sets": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.demand_one_obstruction": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.good_measure_three_quarters": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.generator_prices_ninths": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimum_generator_price_exceeds_third": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.benchmark_block_and_ground_sizes": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.four_block_supports_fifteen": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimal_forbidder_counts": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.palette_816_from_two_label_classes": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.palette_815_fails_by_counting": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.whole_ground_chromatic_818": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.elementary_palette_formula_instances": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.macro_triangle_three_colors": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.ceil_block_over_capacity_instances": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "holds on all 5 quantified instances", + "instances": 5, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.block_occupancy_one_percent": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.low_failure_union_bound_arithmetic": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.cover_price_numerator_and_denominator_positive": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.rho_star_endpoints_adjacent": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimal_block_size_instances": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "holds on all 5 quantified instances", + "instances": 5, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.e_rational_bounds_ordering": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.h_star_rational_certificate_constants": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.t3_ratio_at_minimal_block": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.t3_bound_finite_instances": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "holds on all 13 quantified instances", + "instances": 13, + "vacuous": false, + "probes": [ + { + "var": "a", + "value": 0, + "holds": false + }, + { + "var": "a", + "value": 7, + "holds": true + }, + { + "var": "a", + "value": 13, + "holds": true + } + ], + "float_free": true + }, + "UniversalLaw.P15.explicit_rational_price_above_p": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "UniversalLaw.Side24.pairing_sum_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_sum_le_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_terms_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.sixth_moment_double_factorial", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.lattice_shell_constant", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.geometric_ratio_constants", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.period_exponent", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.image_constant_value", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.covariance_relative_bound", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_eigenvalues", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_shifted_minors", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_bounds", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_values", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.ratio_constant_ordering", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.density_comparison_below_reported", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.conditional_third_derivative_variance", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.transverse_covariance_entries_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m1_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.trace_and_traceless_variances", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.fourth_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.exponential_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m2_algebra", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cube_root_simplification", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.pin_determinant_and_joint_dimension", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.hessian_block_eigenvalues", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.d2_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_below_d2", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.endpoints_in_unit_tenth", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.P15.smallest_member_block_size", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.demand_one_good_sets", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.demand_one_obstruction", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.good_measure_three_quarters", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.generator_prices_ninths", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.minimum_generator_price_exceeds_third", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.benchmark_block_and_ground_sizes", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.four_block_supports_fifteen", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.minimal_forbidder_counts", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.palette_816_from_two_label_classes", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.palette_815_fails_by_counting", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.whole_ground_chromatic_818", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.elementary_palette_formula_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.macro_triangle_three_colors", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.ceil_block_over_capacity_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.block_occupancy_one_percent", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.low_failure_union_bound_arithmetic", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.cover_price_numerator_and_denominator_positive", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.rho_star_endpoints_adjacent", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.minimal_block_size_instances", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.e_rational_bounds_ordering", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.h_star_rational_certificate_constants", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.t3_ratio_at_minimal_block", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.t3_bound_finite_instances", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.explicit_rational_price_above_p", + "module": "UniversalLaw/P15/FullPrice.lean" + } + ], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "sampling_totals": { + "sampled_targets": 0, + "accepted_total": 0, + "rejected_total": 0, + "infeasible_total": 0, + "targets_with_infeasible_draws": [] + }, + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "survivors": [], + "weakenings": 6, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 5, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/PriceBoundary.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 12, + "killed": 12, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/RealizedCovers.lean": { + "theorems": 12, + "control_passed": true, + "mutants": 38, + "killed": 38, + "survivors": [], + "weakenings": 4, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/FullPrice.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 36, + "killed": 36, + "survivors": [], + "weakenings": 7, + "weakenings_rejected": [], + "harness_ok": true + } + }, + "declared_controls": { + "false_exponent_bound_d3": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exponent_bounds", + "status": "FAIL", + "detail": "fails at d = 3" + }, + "false_covariance_bound": { + "class": "statement", + "theorem": "UniversalLaw.Side24.covariance_relative_bound", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_exp_partial_sum": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_image_constant": { + "class": "statement", + "theorem": "UniversalLaw.Side24.image_constant_value", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_eigenvalue_third": { + "class": "statement", + "theorem": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_trace_variance": { + "class": "statement", + "theorem": "UniversalLaw.Side24.trace_and_traceless_variances", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_endpoint_adjacency": { + "class": "statement", + "theorem": "UniversalLaw.Side24.d2_endpoints_adjacent", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_price_boundary_third": { + "class": "statement", + "theorem": "UniversalLaw.P15.minimum_generator_price_exceeds_third", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_generator_prices": { + "class": "statement", + "theorem": "UniversalLaw.P15.generator_prices_ninths", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_palette_815_count": { + "class": "statement", + "theorem": "UniversalLaw.P15.palette_815_fails_by_counting", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_transversal_count": { + "class": "statement", + "theorem": "UniversalLaw.P15.minimal_forbidder_counts", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_whole_ground_chromatic": { + "class": "statement", + "theorem": "UniversalLaw.P15.whole_ground_chromatic_818", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_rho_endpoint_adjacency": { + "class": "statement", + "theorem": "UniversalLaw.P15.rho_star_endpoints_adjacent", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_rho_upper_six_sevenths": { + "class": "statement", + "theorem": "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_taylor_certificate": { + "class": "statement", + "theorem": "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate", + "status": "FAIL", + "detail": "closed statement evaluated false" + } + }, + "exit_code": 0, + "note": "G12 empirical statement check: PASS means the closed statement, read independently of Lean, evaluates true in exact arithmetic; CORROBORATED means no sampled instance of a statement with binders refuted it (admitted evidence, never a proof); neither is kernel evidence. FAIL names an exact witness. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r3.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r3.stdout.txt new file mode 100644 index 000000000..9cf09d700 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_formal_ec6962ff_r3.stdout.txt @@ -0,0 +1,104 @@ +{ + "package_root": "formal", + "targets": 59, + "status_counts": { + "PASS": 59 + }, + "unregistered_theorems": [], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "sampling_totals": { + "sampled_targets": 0, + "accepted_total": 0, + "rejected_total": 0, + "infeasible_total": 0, + "targets_with_infeasible_draws": [] + }, + "exit_code": 0, + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "weakenings": 6, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 5, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/PriceBoundary.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 12, + "killed": 12, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/RealizedCovers.lean": { + "theorems": 12, + "control_passed": true, + "mutants": 38, + "killed": 38, + "weakenings": 4, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/FullPrice.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 36, + "killed": 36, + "weakenings": 7, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + } + }, + "declared_controls": { + "statement_controls_fail": [ + "false_exponent_bound_d3", + "false_covariance_bound", + "false_exp_partial_sum", + "wrong_image_constant", + "false_eigenvalue_third", + "false_trace_variance", + "false_endpoint_adjacency", + "false_price_boundary_third", + "wrong_generator_prices", + "false_palette_815_count", + "wrong_transversal_count", + "wrong_whole_ground_chromatic", + "false_rho_endpoint_adjacency", + "false_rho_upper_six_sevenths", + "wrong_taylor_certificate" + ], + "statement_controls_not_failing": [], + "non_statement_controls": [] + } +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_pr358_b7ec86c2.json b/cbz/evidence/g12-statement-fuzz-01n/main_pr358_b7ec86c2.json new file mode 100644 index 000000000..2f8bd57f2 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_pr358_b7ec86c2.json @@ -0,0 +1,990 @@ +{ + "package_root": "/formal", + "manifest_sha256": "d039ef64a841ac382a9ee7fbea9576f8691322a5dc87cf01eab127084a4394e1", + "module_sha256": { + "UniversalLaw/Side24/Ledger.lean": "ae4a14f3db8cf26668e55e2d2f80e0dcecb0703826b40396d91fb6e0d266d3f7", + "UniversalLaw/Side24/ConeMoments.lean": "2bcd4a83683188856bce010c3dcdec6904e45a6d73b50b9f3891e632ff58985c", + "UniversalLaw/Side24/Endpoints.lean": "095102245297707316cfd7e244d5509f9b102fe5aa638b7acdbbcf9d3c9d52bd", + "UniversalLaw/P15/PriceBoundary.lean": "d11f32fbbf6ffe726dff0ac889bfaf04d61c9f5818d3c447abf7132fbe96bd6e", + "UniversalLaw/P15/RealizedCovers.lean": "1b60dd00925789ae86f081463fd97117561223568532b5f5a886fdc8247051b3", + "UniversalLaw/P15/FullPrice.lean": "9fb2aad19ac132f52c6e6b89c1040890922e1f905e88fac29992b62cbc890569" + }, + "targets": 59, + "status_counts": { + "PASS": 59 + }, + "per_target": { + "UniversalLaw.Side24.pairing_sum_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pairing_sum_le_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 7 quantified instances", + "instances": 7, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": 7, + "holds": false + }, + { + "var": "q", + "value": 13, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.pairing_terms_six": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.sixth_moment_double_factorial": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.lattice_shell_constant": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.geometric_ratio_constants": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.period_exponent": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.image_constant_value": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.covariance_relative_bound": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_eigenvalues": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.odd_block_shifted_minors": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponent_bounds": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "holds on all 2 quantified instances", + "instances": 2, + "vacuous": false, + "probes": [ + { + "var": "d", + "value": 0, + "holds": true + }, + { + "var": "d", + "value": 1, + "holds": true + }, + { + "var": "d", + "value": 4, + "holds": false + }, + { + "var": "d", + "value": 7, + "holds": false + } + ], + "float_free": true + }, + "UniversalLaw.Side24.exponent_values": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.ratio_constant_ordering": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.density_comparison_below_reported": { + "module": "UniversalLaw/Side24/Ledger.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.conditional_third_derivative_variance": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.transverse_covariance_entries_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m1_thirds": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.trace_and_traceless_variances": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.fourth_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.exponential_moment_of_trace": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cone_moment_m2_algebra": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.cube_root_simplification": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.pin_determinant_and_joint_dimension": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.hessian_block_eigenvalues": { + "module": "UniversalLaw/Side24/ConeMoments.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d2_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_endpoints_adjacent": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.d3_below_d2": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.Side24.endpoints_in_unit_tenth": { + "module": "UniversalLaw/Side24/Endpoints.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.smallest_member_block_size": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.demand_one_good_sets": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.demand_one_obstruction": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.good_measure_three_quarters": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.generator_prices_ninths": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimum_generator_price_exceeds_third": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.benchmark_block_and_ground_sizes": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.four_block_supports_fifteen": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimal_forbidder_counts": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.palette_816_from_two_label_classes": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.palette_815_fails_by_counting": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.whole_ground_chromatic_818": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.elementary_palette_formula_instances": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.macro_triangle_three_colors": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.ceil_block_over_capacity_instances": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "holds on all 5 quantified instances", + "instances": 5, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.block_occupancy_one_percent": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.low_failure_union_bound_arithmetic": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.cover_price_numerator_and_denominator_positive": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.rho_star_endpoints_adjacent": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.minimal_block_size_instances": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "holds on all 5 quantified instances", + "instances": 5, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.e_rational_bounds_ordering": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.h_star_rational_certificate_constants": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.t3_ratio_at_minimal_block": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "UniversalLaw.P15.t3_bound_finite_instances": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "holds on all 13 quantified instances", + "instances": 13, + "vacuous": false, + "probes": [ + { + "var": "a", + "value": 0, + "holds": false + }, + { + "var": "a", + "value": 7, + "holds": true + }, + { + "var": "a", + "value": 13, + "holds": true + } + ], + "float_free": true + }, + "UniversalLaw.P15.explicit_rational_price_above_p": { + "module": "UniversalLaw/P15/FullPrice.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "UniversalLaw.Side24.pairing_sum_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_sum_le_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.pairing_terms_six", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.sixth_moment_double_factorial", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.lattice_shell_constant", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.geometric_ratio_constants", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.period_exponent", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.image_constant_value", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.covariance_relative_bound", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_eigenvalues", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.odd_block_shifted_minors", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_bounds", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.exponent_values", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.ratio_constant_ordering", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.density_comparison_below_reported", + "module": "UniversalLaw/Side24/Ledger.lean" + }, + { + "name": "UniversalLaw.Side24.conditional_third_derivative_variance", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.transverse_covariance_entries_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m1_thirds", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.trace_and_traceless_variances", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.fourth_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.exponential_moment_of_trace", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cone_moment_m2_algebra", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.cube_root_simplification", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.pin_determinant_and_joint_dimension", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.hessian_block_eigenvalues", + "module": "UniversalLaw/Side24/ConeMoments.lean" + }, + { + "name": "UniversalLaw.Side24.d2_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_endpoints_adjacent", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.d3_below_d2", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.Side24.endpoints_in_unit_tenth", + "module": "UniversalLaw/Side24/Endpoints.lean" + }, + { + "name": "UniversalLaw.P15.smallest_member_block_size", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.demand_one_good_sets", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.demand_one_obstruction", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.good_measure_three_quarters", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.generator_prices_ninths", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.minimum_generator_price_exceeds_third", + "module": "UniversalLaw/P15/PriceBoundary.lean" + }, + { + "name": "UniversalLaw.P15.benchmark_block_and_ground_sizes", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.four_block_supports_fifteen", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.minimal_forbidder_counts", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.palette_816_from_two_label_classes", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.palette_815_fails_by_counting", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.whole_ground_chromatic_818", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.elementary_palette_formula_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.macro_triangle_three_colors", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.ceil_block_over_capacity_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.block_occupancy_one_percent", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.low_failure_union_bound_arithmetic", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.cover_price_numerator_and_denominator_positive", + "module": "UniversalLaw/P15/RealizedCovers.lean" + }, + { + "name": "UniversalLaw.P15.rho_star_endpoints_adjacent", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.minimal_block_size_instances", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.e_rational_bounds_ordering", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.h_star_rational_certificate_constants", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.t3_ratio_at_minimal_block", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.t3_bound_finite_instances", + "module": "UniversalLaw/P15/FullPrice.lean" + }, + { + "name": "UniversalLaw.P15.explicit_rational_price_above_p", + "module": "UniversalLaw/P15/FullPrice.lean" + } + ], + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "survivors": [], + "weakenings": 6, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 5, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/PriceBoundary.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 12, + "killed": 12, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/RealizedCovers.lean": { + "theorems": 12, + "control_passed": true, + "mutants": 38, + "killed": 38, + "survivors": [], + "weakenings": 4, + "weakenings_rejected": [], + "harness_ok": true + }, + "UniversalLaw/P15/FullPrice.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 36, + "killed": 36, + "survivors": [], + "weakenings": 7, + "weakenings_rejected": [], + "harness_ok": true + } + }, + "declared_controls": { + "false_exponent_bound_d3": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exponent_bounds", + "status": "FAIL", + "detail": "fails at d = 3" + }, + "false_covariance_bound": { + "class": "statement", + "theorem": "UniversalLaw.Side24.covariance_relative_bound", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_exp_partial_sum": { + "class": "statement", + "theorem": "UniversalLaw.Side24.exp_taylor_partial_sum_gt_ten", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_image_constant": { + "class": "inapplicable", + "detail": "replacement text occurs 2 times" + }, + "false_eigenvalue_third": { + "class": "statement", + "theorem": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_trace_variance": { + "class": "statement", + "theorem": "UniversalLaw.Side24.trace_and_traceless_variances", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_endpoint_adjacency": { + "class": "statement", + "theorem": "UniversalLaw.Side24.d2_endpoints_adjacent", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_price_boundary_third": { + "class": "statement", + "theorem": "UniversalLaw.P15.minimum_generator_price_exceeds_third", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_generator_prices": { + "class": "statement", + "theorem": "UniversalLaw.P15.generator_prices_ninths", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_palette_815_count": { + "class": "statement", + "theorem": "UniversalLaw.P15.palette_815_fails_by_counting", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_transversal_count": { + "class": "statement", + "theorem": "UniversalLaw.P15.minimal_forbidder_counts", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_union_bound_three_tenthousandths": { + "class": "statement", + "theorem": "UniversalLaw.P15.low_failure_union_bound_arithmetic", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_rho_endpoint_adjacency": { + "class": "statement", + "theorem": "UniversalLaw.P15.rho_star_endpoints_adjacent", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "false_rho_upper_six_sevenths": { + "class": "statement", + "theorem": "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths", + "status": "FAIL", + "detail": "closed statement evaluated false" + }, + "wrong_taylor_certificate": { + "class": "statement", + "theorem": "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate", + "status": "FAIL", + "detail": "closed statement evaluated false" + } + }, + "exit_code": 0, + "note": "G12 empirical statement check: PASS means the statement, read independently of Lean, evaluates true in exact arithmetic; it is not kernel evidence. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/main_pr358_b7ec86c2.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/main_pr358_b7ec86c2.stdout.txt new file mode 100644 index 000000000..0cd8e971a --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/main_pr358_b7ec86c2.stdout.txt @@ -0,0 +1,91 @@ +{ + "package_root": "/formal", + "targets": 59, + "status_counts": { + "PASS": 59 + }, + "unregistered_theorems": [], + "exit_code": 0, + "selftest": { + "UniversalLaw/Side24/Ledger.lean": { + "theorems": 17, + "control_passed": true, + "mutants": 54, + "killed": 54, + "weakenings": 6, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/ConeMoments.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 37, + "killed": 37, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/Side24/Endpoints.lean": { + "theorems": 4, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 5, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/PriceBoundary.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 12, + "killed": 12, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/RealizedCovers.lean": { + "theorems": 12, + "control_passed": true, + "mutants": 38, + "killed": 38, + "weakenings": 4, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "UniversalLaw/P15/FullPrice.lean": { + "theorems": 10, + "control_passed": true, + "mutants": 36, + "killed": 36, + "weakenings": 7, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + } + }, + "declared_controls": { + "statement_controls_fail": [ + "false_exponent_bound_d3", + "false_covariance_bound", + "false_exp_partial_sum", + "false_eigenvalue_third", + "false_trace_variance", + "false_endpoint_adjacency", + "false_price_boundary_third", + "wrong_generator_prices", + "false_palette_815_count", + "wrong_transversal_count", + "false_union_bound_three_tenthousandths", + "false_rho_endpoint_adjacency", + "false_rho_upper_six_sevenths", + "wrong_taylor_certificate" + ], + "statement_controls_not_failing": [], + "non_statement_controls": [] + } +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750.json b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750.json new file mode 100644 index 000000000..c0a881100 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750.json @@ -0,0 +1,846 @@ +{ + "package_root": "/formal", + "manifest_sha256": "ba7d11e43574e39da3c759e0501399a6dcd1b7da32b157a4a6b01f5c133b3062", + "module_sha256": { + "ResearchFormalCoreR1/AlgebraV2.lean": "4480708263c40a2f7f03f12ef7e15f0eb4f8193c2dccbb253921a7ec251863c3", + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": "338452a0c2ba24d016059354d543cc995b8cb29c9d4a41d98bb93499f5f8cb8f", + "ResearchFormalCoreR1/MeasureBridge.lean": "28ac130db490c3c3e2fbfabf3ac5be43c854ab1468bf573bf5a8c0dd2c50955f", + "ResearchFormalCoreR1/WeightedLaw.lean": "f31dfd2cd048cc0c0446c54c46d89c9cdd5d7bb9d76e9d8d16b7c034f351d736", + "ResearchFormalCoreR1/MomentTail.lean": "87fe3ee90afc52d8c2652881f1ae195d1b0b15a2ffc18c84d6166d1a4d0de2aa", + "ResearchFormalCoreR1/MomentGenerality.lean": "fdec55f1602938cd8fdb5b71535962e76a9671bf230dea53868b14147fb3b509", + "ResearchFormalCoreR1/WeightPerturbation.lean": "50ce15709a133da12a0b4333cc653d26c5fd8a412976c975a7c2f3b25ed5c00f", + "ResearchFormalCoreR1/D2Schur.lean": "d3fb3ed7b4043227f1d5a06e208de9d94eb413c067e9d0f8802388407c9e15b9" + }, + "targets": 63, + "status_counts": { + "UNSUPPORTED": 63 + }, + "per_target": { + "ResearchFormalCoreR1.ec005_fold_gap": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.ec008_factor_expansion": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.ec010_generic": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.ec010_transverse": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.ec011_scalar_cancellation": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.ec014_contact_power": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_r2_cancel": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_cross_multiplied": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_quotient_bound": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_bad_event_threshold": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_power40_identity": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_r4_le_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_integral_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_event_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_event_numerator": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_measure_transfer": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "ascription to \u211d", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "ascription to \u211d", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_apply": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_event_real": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_congr_ae": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_zero": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_one": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_probability_transfer": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_markov_event": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_measurable": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_subset": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_integral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_setIntegral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_normalizer_lower": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_quotient_bound": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_schur_numerator": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_det_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_det_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_det_interpolation": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_schur_ratio": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_numerator_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_det_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_schur_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_det_le_endpoint_max": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_schur_endpoint_lower": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_tau_cumulant_eq": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_tau_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_tau_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_tau_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_gaussian_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "theorem with binders before the colon (unbounded domain)", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_degenerate_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "UNSUPPORTED", + "detail": "result type \u211d", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "ResearchFormalCoreR1.ec005_fold_gap", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec008_factor_expansion", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_generic", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_transverse", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec011_scalar_cancellation", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec014_contact_power", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_r2_cancel", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_cross_multiplied", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_quotient_bound", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_bad_event_threshold", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_power40_identity", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_r4_le_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_integral_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_numerator", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_measure_transfer", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_apply", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_real", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_congr_ae", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_zero", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_one", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_probability_transfer", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_markov_event", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_measurable", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_subset", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_integral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_setIntegral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_normalizer_lower", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_quotient_bound", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_numerator", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_interpolation", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_ratio", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_numerator_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_le_endpoint_max", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_endpoint_lower", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_cumulant_eq", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_gaussian_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_degenerate_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + } + ], + "selftest": {}, + "declared_controls": {}, + "exit_code": 1, + "note": "G12 empirical statement check: PASS means the statement, read independently of Lean, evaluates true in exact arithmetic; it is not kernel evidence. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750.stdout.txt new file mode 100644 index 000000000..9bb77383d --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750.stdout.txt @@ -0,0 +1,72 @@ +{ + "package_root": "/formal", + "targets": 63, + "status_counts": { + "UNSUPPORTED": 63 + }, + "unregistered_theorems": [], + "exit_code": 1 +} +UNSUPPORTED: ResearchFormalCoreR1.ec005_fold_gap: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.ec008_factor_expansion: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.ec010_generic: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.ec010_transverse: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.ec011_scalar_cancellation: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.ec014_contact_power: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_r2_cancel: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_cross_multiplied: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_quotient_bound: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_bad_event_threshold: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_power40_identity: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_r4_le_r3: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_integral_cs: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_event_cs: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_event_numerator: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_measure_transfer: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_sqrt_counterexample: ascription to ℝ +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample: ascription to ℝ +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_apply: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_real: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_absolutelyContinuous: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_congr_ae: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_zero: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_one: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_probability_transfer: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_markov_event: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_measurable: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_subset: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail_finite: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_integral: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_setIntegral: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_normalizer_lower: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_event_integral_bounds: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_quotient_bound: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_perturbation: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_perturbation_r2: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_schur_numerator: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_det_axis: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_det_diagonal: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_det_interpolation: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_schur_ratio: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_numerator_pos: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_det_pos: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_schur_pos: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_det_le_endpoint_max: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_schur_endpoint_lower: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_tau_cumulant_eq: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_tau_axis: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_tau_diagonal: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_tau_pos: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_gaussian_control: theorem with binders before the colon (unbounded domain) +UNSUPPORTED: ResearchFormalCoreR1.d2_degenerate_control: result type ℝ diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2.json b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2.json new file mode 100644 index 000000000..f2d6c5619 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2.json @@ -0,0 +1,1710 @@ +{ + "package_root": "/formal", + "manifest_sha256": "ba7d11e43574e39da3c759e0501399a6dcd1b7da32b157a4a6b01f5c133b3062", + "module_sha256": { + "ResearchFormalCoreR1/AlgebraV2.lean": "4480708263c40a2f7f03f12ef7e15f0eb4f8193c2dccbb253921a7ec251863c3", + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": "338452a0c2ba24d016059354d543cc995b8cb29c9d4a41d98bb93499f5f8cb8f", + "ResearchFormalCoreR1/MeasureBridge.lean": "28ac130db490c3c3e2fbfabf3ac5be43c854ab1468bf573bf5a8c0dd2c50955f", + "ResearchFormalCoreR1/WeightedLaw.lean": "f31dfd2cd048cc0c0446c54c46d89c9cdd5d7bb9d76e9d8d16b7c034f351d736", + "ResearchFormalCoreR1/MomentTail.lean": "87fe3ee90afc52d8c2652881f1ae195d1b0b15a2ffc18c84d6166d1a4d0de2aa", + "ResearchFormalCoreR1/MomentGenerality.lean": "fdec55f1602938cd8fdb5b71535962e76a9671bf230dea53868b14147fb3b509", + "ResearchFormalCoreR1/WeightPerturbation.lean": "50ce15709a133da12a0b4333cc653d26c5fd8a412976c975a7c2f3b25ed5c00f", + "ResearchFormalCoreR1/D2Schur.lean": "d3fb3ed7b4043227f1d5a06e208de9d94eb413c067e9d0f8802388407c9e15b9" + }, + "targets": 63, + "status_counts": { + "CORROBORATED": 29, + "UNSUPPORTED": 31, + "PASS": 3 + }, + "per_target": { + "ResearchFormalCoreR1.ec005_fold_gap": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 107, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec008_factor_expansion": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_generic": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_transverse": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec011_scalar_cancellation": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec014_contact_power": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 105, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_r2_cancel": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "cZ", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_cross_multiplied": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (103 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 103, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_quotient_bound": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (48 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 48, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_bad_event_threshold": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (6 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 6, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_power40_identity": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 107, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_r4_le_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 522, + "accepted": 64, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (32 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "p", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "p", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 32, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_integral_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_event_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_event_numerator": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_measure_transfer": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_apply": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_event_real": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_congr_ae": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_zero": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_one": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_probability_transfer": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_markov_event": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_measurable": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( R : \u03a9 \u2192 \u211d ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_subset": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( R : \u03a9 \u2192 \u211d ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_integral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_setIntegral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_normalizer_lower": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_quotient_bound": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "a", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "1000001/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 4, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_schur_numerator": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_interpolation": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_ratio": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_numerator_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 69, + "accepted": 64, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_le_endpoint_max": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "5/4", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-3/4", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "250001/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_endpoint_lower": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_cumulant_eq": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (45 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 45, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_gaussian_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 107, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_degenerate_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "ResearchFormalCoreR1.ec005_fold_gap", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec008_factor_expansion", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_generic", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_transverse", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec011_scalar_cancellation", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec014_contact_power", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_r2_cancel", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_cross_multiplied", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_quotient_bound", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_bad_event_threshold", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_power40_identity", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_r4_le_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_integral_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_numerator", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_measure_transfer", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_apply", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_real", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_congr_ae", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_zero", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_one", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_probability_transfer", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_markov_event", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_measurable", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_subset", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_integral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_setIntegral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_normalizer_lower", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_quotient_bound", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_numerator", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_interpolation", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_ratio", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_numerator_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_le_endpoint_max", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_endpoint_lower", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_cumulant_eq", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_gaussian_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_degenerate_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + } + ], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "selftest": { + "ResearchFormalCoreR1/AlgebraV2.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": true + }, + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "ResearchFormalCoreR1/MeasureBridge.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 3, + "killed": 3, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": false + }, + "ResearchFormalCoreR1/WeightedLaw.lean": { + "theorems": 9, + "control_passed": false, + "mutants": 0, + "killed": 0, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": false + }, + "ResearchFormalCoreR1/MomentTail.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 0, + "killed": 0, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": false + }, + "ResearchFormalCoreR1/MomentGenerality.lean": { + "theorems": 4, + "control_passed": false, + "mutants": 0, + "killed": 0, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": false + }, + "ResearchFormalCoreR1/WeightPerturbation.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 1, + "killed": 1, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": false + }, + "ResearchFormalCoreR1/D2Schur.lean": { + "theorems": 16, + "control_passed": true, + "mutants": 27, + "killed": 27, + "survivors": [], + "weakenings": 4, + "weakenings_rejected": [], + "harness_ok": true + } + }, + "declared_controls": {}, + "exit_code": 1, + "note": "G12 empirical statement check: PASS means the closed statement, read independently of Lean, evaluates true in exact arithmetic; CORROBORATED means no sampled instance of a statement with binders refuted it (admitted evidence, never a proof); neither is kernel evidence. FAIL names an exact witness. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2.stdout.txt new file mode 100644 index 000000000..e8eb5c81c --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2.stdout.txt @@ -0,0 +1,163 @@ +{ + "package_root": "/formal", + "targets": 63, + "status_counts": { + "CORROBORATED": 29, + "UNSUPPORTED": 31, + "PASS": 3 + }, + "unregistered_theorems": [], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "exit_code": 1, + "selftest": { + "ResearchFormalCoreR1/AlgebraV2.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 0, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/MeasureBridge.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 3, + "killed": 3, + "weakenings": 1, + "harness_ok": false, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/WeightedLaw.lean": { + "theorems": 9, + "control_passed": false, + "mutants": 0, + "killed": 0, + "weakenings": 0, + "harness_ok": false, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/MomentTail.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 0, + "killed": 0, + "weakenings": 0, + "harness_ok": false, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/MomentGenerality.lean": { + "theorems": 4, + "control_passed": false, + "mutants": 0, + "killed": 0, + "weakenings": 0, + "harness_ok": false, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/WeightPerturbation.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 1, + "killed": 1, + "weakenings": 0, + "harness_ok": false, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/D2Schur.lean": { + "theorems": 16, + "control_passed": true, + "mutants": 27, + "killed": 27, + "weakenings": 4, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + } + }, + "declared_controls": { + "statement_controls_fail": [], + "statement_controls_not_failing": [], + "non_statement_controls": [] + } +} +CORROBORATED: ResearchFormalCoreR1.ec005_fold_gap: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec008_factor_expansion: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_generic: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_transverse: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec011_scalar_cancellation: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec014_contact_power: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_r2_cancel: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_cross_multiplied: holds on 64 sampled instances satisfying the hypotheses (103 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_quotient_bound: holds on 64 sampled instances satisfying the hypotheses (48 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_bad_event_threshold: holds on 64 sampled instances satisfying the hypotheses (6 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_power40_identity: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_r4_le_r3: holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3: holds on 64 sampled instances satisfying the hypotheses (32 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_integral_cs: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_event_cs: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_event_numerator: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_measure_transfer: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_apply: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_real: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_absolutelyContinuous: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_congr_ae: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_zero: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_one: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_probability_transfer: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_markov_event: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_measurable: binder ( R : Ω → ℝ ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_subset: binder ( R : Ω → ℝ ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail_finite: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_integral: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_setIntegral: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_normalizer_lower: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_event_integral_bounds: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_quotient_bound: holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_perturbation: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_perturbation_r2: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.d2_schur_numerator: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_axis: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_diagonal: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_interpolation: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_ratio: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_numerator_pos: holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_pos: holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_pos: holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_le_endpoint_max: holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_endpoint_lower: holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_cumulant_eq: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_axis: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_diagonal: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_pos: holds on 64 sampled instances satisfying the hypotheses (45 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_gaussian_control: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2_seed2_s256.json b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2_seed2_s256.json new file mode 100644 index 000000000..dff6415cd --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2_seed2_s256.json @@ -0,0 +1,1629 @@ +{ + "package_root": "/formal", + "manifest_sha256": "ba7d11e43574e39da3c759e0501399a6dcd1b7da32b157a4a6b01f5c133b3062", + "module_sha256": { + "ResearchFormalCoreR1/AlgebraV2.lean": "4480708263c40a2f7f03f12ef7e15f0eb4f8193c2dccbb253921a7ec251863c3", + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": "338452a0c2ba24d016059354d543cc995b8cb29c9d4a41d98bb93499f5f8cb8f", + "ResearchFormalCoreR1/MeasureBridge.lean": "28ac130db490c3c3e2fbfabf3ac5be43c854ab1468bf573bf5a8c0dd2c50955f", + "ResearchFormalCoreR1/WeightedLaw.lean": "f31dfd2cd048cc0c0446c54c46d89c9cdd5d7bb9d76e9d8d16b7c034f351d736", + "ResearchFormalCoreR1/MomentTail.lean": "87fe3ee90afc52d8c2652881f1ae195d1b0b15a2ffc18c84d6166d1a4d0de2aa", + "ResearchFormalCoreR1/MomentGenerality.lean": "fdec55f1602938cd8fdb5b71535962e76a9671bf230dea53868b14147fb3b509", + "ResearchFormalCoreR1/WeightPerturbation.lean": "50ce15709a133da12a0b4333cc653d26c5fd8a412976c975a7c2f3b25ed5c00f", + "ResearchFormalCoreR1/D2Schur.lean": "d3fb3ed7b4043227f1d5a06e208de9d94eb413c067e9d0f8802388407c9e15b9" + }, + "targets": 63, + "status_counts": { + "CORROBORATED": 29, + "UNSUPPORTED": 31, + "PASS": 3 + }, + "per_target": { + "ResearchFormalCoreR1.ec005_fold_gap": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 982, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec008_factor_expansion": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 263, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_generic": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_transverse": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec011_scalar_cancellation": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec014_contact_power": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 913, + "accepted": 256, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_r2_cancel": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "cZ", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 257, + "accepted": 256, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_cross_multiplied": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (463 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 463, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_quotient_bound": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (187 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 187, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_bad_event_threshold": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 259, + "accepted": 256, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_power40_identity": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 982, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_r4_le_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 2431, + "accepted": 256, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (171 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "p", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "p", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 261, + "accepted": 256, + "rejected": 171, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_integral_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_event_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_event_numerator": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_measure_transfer": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_apply": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_event_real": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_congr_ae": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_zero": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_one": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_probability_transfer": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_markov_event": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_measurable": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( R : \u03a9 \u2192 \u211d ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_subset": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( R : \u03a9 \u2192 \u211d ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_integral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_setIntegral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_normalizer_lower": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_quotient_bound": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "a", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "1000001/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.d2_schur_numerator": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 263, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 263, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_interpolation": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_ratio": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_numerator_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 354, + "accepted": 256, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (9 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 271, + "accepted": 256, + "rejected": 9, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (9 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 271, + "accepted": 256, + "rejected": 9, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_le_endpoint_max": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "5/4", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-3/4", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "250001/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_endpoint_lower": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (9 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 271, + "accepted": 256, + "rejected": 9, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_cumulant_eq": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 256, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (130 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 258, + "accepted": 256, + "rejected": 130, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_gaussian_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 256, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 982, + "accepted": 256, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_degenerate_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "ResearchFormalCoreR1.ec005_fold_gap", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec008_factor_expansion", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_generic", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_transverse", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec011_scalar_cancellation", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec014_contact_power", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_r2_cancel", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_cross_multiplied", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_quotient_bound", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_bad_event_threshold", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_power40_identity", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_r4_le_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_integral_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_numerator", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_measure_transfer", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_apply", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_real", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_congr_ae", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_zero", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_one", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_probability_transfer", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_markov_event", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_measurable", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_subset", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_integral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_setIntegral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_normalizer_lower", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_quotient_bound", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_numerator", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_interpolation", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_ratio", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_numerator_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_le_endpoint_max", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_endpoint_lower", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_cumulant_eq", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_gaussian_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_degenerate_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + } + ], + "sampling": { + "seed": 2, + "samples": 256, + "admit_corroborated": true + }, + "selftest": {}, + "declared_controls": {}, + "exit_code": 1, + "note": "G12 empirical statement check: PASS means the closed statement, read independently of Lean, evaluates true in exact arithmetic; CORROBORATED means no sampled instance of a statement with binders refuted it (admitted evidence, never a proof); neither is kernel evidence. FAIL names an exact witness. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2_seed2_s256.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2_seed2_s256.stdout.txt new file mode 100644 index 000000000..00d578332 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r2_seed2_s256.stdout.txt @@ -0,0 +1,76 @@ +{ + "package_root": "/formal", + "targets": 63, + "status_counts": { + "CORROBORATED": 29, + "UNSUPPORTED": 31, + "PASS": 3 + }, + "unregistered_theorems": [], + "sampling": { + "seed": 2, + "samples": 256, + "admit_corroborated": true + }, + "exit_code": 1 +} +CORROBORATED: ResearchFormalCoreR1.ec005_fold_gap: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec008_factor_expansion: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_generic: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_transverse: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec011_scalar_cancellation: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec014_contact_power: holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_r2_cancel: holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_cross_multiplied: holds on 256 sampled instances satisfying the hypotheses (463 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_quotient_bound: holds on 256 sampled instances satisfying the hypotheses (187 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_bad_event_threshold: holds on 256 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_power40_identity: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_r4_le_r3: holds on 256 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3: holds on 256 sampled instances satisfying the hypotheses (171 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_integral_cs: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_event_cs: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_event_numerator: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_measure_transfer: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_apply: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_real: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_absolutelyContinuous: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_congr_ae: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_zero: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_one: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm008_probability_transfer: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_markov_event: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_measurable: binder ( R : Ω → ℝ ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_subset: binder ( R : Ω → ℝ ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail_finite: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_integral: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_setIntegral: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_normalizer_lower: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightPerturbation_event_integral_bounds: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_quotient_bound: holds on 256 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_perturbation: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.weightedLaw_event_perturbation_r2: binder ( μ : Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.d2_schur_numerator: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_axis: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_diagonal: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_interpolation: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_ratio: holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_numerator_pos: holds on 256 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_pos: holds on 256 sampled instances satisfying the hypotheses (9 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_pos: holds on 256 sampled instances satisfying the hypotheses (9 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_le_endpoint_max: holds on 256 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_endpoint_lower: holds on 256 sampled instances satisfying the hypotheses (9 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_cumulant_eq: holds on 256 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_axis: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_diagonal: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_pos: holds on 256 sampled instances satisfying the hypotheses (130 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_gaussian_control: holds on 256 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3.json b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3.json new file mode 100644 index 000000000..4a8c97acd --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3.json @@ -0,0 +1,1906 @@ +{ + "package_root": "/formal", + "manifest_sha256": "ba7d11e43574e39da3c759e0501399a6dcd1b7da32b157a4a6b01f5c133b3062", + "module_sha256": { + "ResearchFormalCoreR1/AlgebraV2.lean": "4480708263c40a2f7f03f12ef7e15f0eb4f8193c2dccbb253921a7ec251863c3", + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": "338452a0c2ba24d016059354d543cc995b8cb29c9d4a41d98bb93499f5f8cb8f", + "ResearchFormalCoreR1/MeasureBridge.lean": "28ac130db490c3c3e2fbfabf3ac5be43c854ab1468bf573bf5a8c0dd2c50955f", + "ResearchFormalCoreR1/WeightedLaw.lean": "f31dfd2cd048cc0c0446c54c46d89c9cdd5d7bb9d76e9d8d16b7c034f351d736", + "ResearchFormalCoreR1/MomentTail.lean": "87fe3ee90afc52d8c2652881f1ae195d1b0b15a2ffc18c84d6166d1a4d0de2aa", + "ResearchFormalCoreR1/MomentGenerality.lean": "fdec55f1602938cd8fdb5b71535962e76a9671bf230dea53868b14147fb3b509", + "ResearchFormalCoreR1/WeightPerturbation.lean": "50ce15709a133da12a0b4333cc653d26c5fd8a412976c975a7c2f3b25ed5c00f", + "ResearchFormalCoreR1/D2Schur.lean": "d3fb3ed7b4043227f1d5a06e208de9d94eb413c067e9d0f8802388407c9e15b9" + }, + "targets": 63, + "status_counts": { + "CORROBORATED": 56, + "PASS": 3, + "UNSUPPORTED": 4 + }, + "per_target": { + "ResearchFormalCoreR1.ec005_fold_gap": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 107, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec008_factor_expansion": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_generic": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_transverse": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec011_scalar_cancellation": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec014_contact_power": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 105, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_r2_cancel": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "cZ", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_cross_multiplied": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (103 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 103, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_quotient_bound": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (48 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 48, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_bad_event_threshold": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (6 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 6, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_power40_identity": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 107, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_r4_le_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 522, + "accepted": 64, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (32 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "p", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "p", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 32, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_integral_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_event_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 69, + "accepted": 64, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_event_numerator": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (21 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 21, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_measure_transfer": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (73 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 73, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (67 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 67, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_apply": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 4, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_real": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_congr_ae": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (20 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 20, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_zero": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 73, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_one": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 95, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_probability_transfer": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (73 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 73, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (67 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 67, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_markov_event": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (13 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 13, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_badJet_measurable": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "conclusion is a structural predicate ['MeasurableSet']: trivial on finite discrete models (every set is measurable, every function measurable and integrable), so sampling has no content here", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_subset": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 4, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (68 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 68, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (51 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 51, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_integral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_setIntegral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_normalizer_lower": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_quotient_bound": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "a", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "1000001/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 4, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (117 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 117, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (220 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 220, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_numerator": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_interpolation": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_ratio": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_numerator_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 69, + "accepted": 64, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_le_endpoint_max": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "5/4", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-3/4", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "250001/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_endpoint_lower": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 65, + "accepted": 64, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_cumulant_eq": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (45 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 64, + "accepted": 64, + "rejected": 45, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_gaussian_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it", + "instances": 64, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 1, + "draws": 107, + "accepted": 64, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_degenerate_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "ResearchFormalCoreR1.ec005_fold_gap", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec008_factor_expansion", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_generic", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_transverse", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec011_scalar_cancellation", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec014_contact_power", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_r2_cancel", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_cross_multiplied", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_quotient_bound", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_bad_event_threshold", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_power40_identity", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_r4_le_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_integral_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_numerator", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_measure_transfer", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_apply", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_real", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_congr_ae", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_zero", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_one", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_probability_transfer", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_markov_event", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_measurable", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_subset", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_integral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_setIntegral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_normalizer_lower", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_quotient_bound", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_numerator", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_interpolation", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_ratio", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_numerator_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_le_endpoint_max", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_endpoint_lower", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_cumulant_eq", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_gaussian_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_degenerate_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + } + ], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "sampling_totals": { + "sampled_targets": 56, + "accepted_total": 3584, + "rejected_total": 1118, + "infeasible_total": 0, + "targets_with_infeasible_draws": [] + }, + "selftest": { + "ResearchFormalCoreR1/AlgebraV2.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": true + }, + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "ResearchFormalCoreR1/MeasureBridge.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 8, + "killed": 8, + "survivors": [], + "weakenings": 1, + "weakenings_rejected": [], + "harness_ok": true + }, + "ResearchFormalCoreR1/WeightedLaw.lean": { + "theorems": 9, + "control_passed": true, + "mutants": 7, + "killed": 7, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": true + }, + "ResearchFormalCoreR1/MomentTail.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 4, + "killed": 4, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": false + }, + "ResearchFormalCoreR1/MomentGenerality.lean": { + "theorems": 4, + "control_passed": false, + "mutants": 2, + "killed": 2, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": false + }, + "ResearchFormalCoreR1/WeightPerturbation.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 10, + "killed": 10, + "survivors": [], + "weakenings": 0, + "weakenings_rejected": [], + "harness_ok": true + }, + "ResearchFormalCoreR1/D2Schur.lean": { + "theorems": 16, + "control_passed": true, + "mutants": 27, + "killed": 27, + "survivors": [], + "weakenings": 4, + "weakenings_rejected": [], + "harness_ok": true + } + }, + "declared_controls": {}, + "exit_code": 1, + "note": "G12 empirical statement check: PASS means the closed statement, read independently of Lean, evaluates true in exact arithmetic; CORROBORATED means no sampled instance of a statement with binders refuted it (admitted evidence, never a proof); neither is kernel evidence. FAIL names an exact witness. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3.stdout.txt new file mode 100644 index 000000000..f4bdcaf03 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3.stdout.txt @@ -0,0 +1,170 @@ +{ + "package_root": "/formal", + "targets": 63, + "status_counts": { + "CORROBORATED": 56, + "PASS": 3, + "UNSUPPORTED": 4 + }, + "unregistered_theorems": [], + "sampling": { + "seed": 1, + "samples": 64, + "admit_corroborated": false + }, + "sampling_totals": { + "sampled_targets": 56, + "accepted_total": 3584, + "rejected_total": 1118, + "infeasible_total": 0, + "targets_with_infeasible_draws": [] + }, + "exit_code": 1, + "selftest": { + "ResearchFormalCoreR1/AlgebraV2.lean": { + "theorems": 6, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 0, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/MeasureBridge.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 8, + "killed": 8, + "weakenings": 1, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/WeightedLaw.lean": { + "theorems": 9, + "control_passed": true, + "mutants": 7, + "killed": 7, + "weakenings": 0, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/MomentTail.lean": { + "theorems": 7, + "control_passed": false, + "mutants": 4, + "killed": 4, + "weakenings": 0, + "harness_ok": false, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/MomentGenerality.lean": { + "theorems": 4, + "control_passed": false, + "mutants": 2, + "killed": 2, + "weakenings": 0, + "harness_ok": false, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/WeightPerturbation.lean": { + "theorems": 7, + "control_passed": true, + "mutants": 10, + "killed": 10, + "weakenings": 0, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + }, + "ResearchFormalCoreR1/D2Schur.lean": { + "theorems": 16, + "control_passed": true, + "mutants": 27, + "killed": 27, + "weakenings": 4, + "harness_ok": true, + "survivors": 0, + "weakenings_rejected": 0 + } + }, + "declared_controls": { + "statement_controls_fail": [], + "statement_controls_not_failing": [], + "non_statement_controls": [] + } +} +CORROBORATED: ResearchFormalCoreR1.ec005_fold_gap: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec008_factor_expansion: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_generic: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_transverse: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec011_scalar_cancellation: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec014_contact_power: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_r2_cancel: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_cross_multiplied: holds on 64 sampled instances satisfying the hypotheses (103 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_quotient_bound: holds on 64 sampled instances satisfying the hypotheses (48 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_bad_event_threshold: holds on 64 sampled instances satisfying the hypotheses (6 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_power40_identity: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_r4_le_r3: holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3: holds on 64 sampled instances satisfying the hypotheses (32 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_integral_cs: holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_event_cs: holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_event_numerator: holds on 64 sampled instances satisfying the hypotheses (21 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_measure_transfer: holds on 64 sampled instances satisfying the hypotheses (73 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3: holds on 64 sampled instances satisfying the hypotheses (67 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_apply: holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure: holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_event_real: holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_absolutelyContinuous: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_congr_ae: holds on 64 sampled instances satisfying the hypotheses (20 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_zero: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_one: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_probability_transfer: holds on 64 sampled instances satisfying the hypotheses (73 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3: holds on 64 sampled instances satisfying the hypotheses (67 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_markov_event: holds on 64 sampled instances satisfying the hypotheses (13 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_measurable: conclusion is a structural predicate ['MeasurableSet']: trivial on finite discrete models (every set is measurable, every function measurable and integrable), so sampling has no content here +CORROBORATED: ResearchFormalCoreR1.p02_lm009_badJet_subset: holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_tail: holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4: holds on 64 sampled instances satisfying the hypotheses (68 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3: holds on 64 sampled instances satisfying the hypotheses (51 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_tail_finite: holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite: holds on 64 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_integral: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_setIntegral: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_normalizer_lower: holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_event_integral_bounds: holds on 64 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_quotient_bound: holds on 64 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_event_perturbation: holds on 64 sampled instances satisfying the hypotheses (117 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_event_perturbation_r2: holds on 64 sampled instances satisfying the hypotheses (220 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_numerator: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_axis: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_diagonal: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_interpolation: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_ratio: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_numerator_pos: holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_pos: holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_pos: holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_le_endpoint_max: holds on 64 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_endpoint_lower: holds on 64 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_cumulant_eq: holds on 64 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_axis: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_diagonal: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_pos: holds on 64 sampled instances satisfying the hypotheses (45 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_gaussian_control: holds on 64 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 1): sampling is admitted evidence of the statement, not a proof of it diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3_seed2_s128.json b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3_seed2_s128.json new file mode 100644 index 000000000..b69c6bd44 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3_seed2_s128.json @@ -0,0 +1,1825 @@ +{ + "package_root": "/formal", + "manifest_sha256": "ba7d11e43574e39da3c759e0501399a6dcd1b7da32b157a4a6b01f5c133b3062", + "module_sha256": { + "ResearchFormalCoreR1/AlgebraV2.lean": "4480708263c40a2f7f03f12ef7e15f0eb4f8193c2dccbb253921a7ec251863c3", + "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean": "338452a0c2ba24d016059354d543cc995b8cb29c9d4a41d98bb93499f5f8cb8f", + "ResearchFormalCoreR1/MeasureBridge.lean": "28ac130db490c3c3e2fbfabf3ac5be43c854ab1468bf573bf5a8c0dd2c50955f", + "ResearchFormalCoreR1/WeightedLaw.lean": "f31dfd2cd048cc0c0446c54c46d89c9cdd5d7bb9d76e9d8d16b7c034f351d736", + "ResearchFormalCoreR1/MomentTail.lean": "87fe3ee90afc52d8c2652881f1ae195d1b0b15a2ffc18c84d6166d1a4d0de2aa", + "ResearchFormalCoreR1/MomentGenerality.lean": "fdec55f1602938cd8fdb5b71535962e76a9671bf230dea53868b14147fb3b509", + "ResearchFormalCoreR1/WeightPerturbation.lean": "50ce15709a133da12a0b4333cc653d26c5fd8a412976c975a7c2f3b25ed5c00f", + "ResearchFormalCoreR1/D2Schur.lean": "d3fb3ed7b4043227f1d5a06e208de9d94eb413c067e9d0f8802388407c9e15b9" + }, + "targets": 63, + "status_counts": { + "CORROBORATED": 56, + "PASS": 3, + "UNSUPPORTED": 4 + }, + "per_target": { + "ResearchFormalCoreR1.ec005_fold_gap": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 400, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec008_factor_expansion": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 130, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_generic": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec010_transverse": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec011_scalar_cancellation": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.ec014_contact_power": { + "module": "ResearchFormalCoreR1/AlgebraV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 401, + "accepted": 128, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_r2_cancel": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "cZ", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_cross_multiplied": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (216 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 216, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_quotient_bound": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (87 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "n", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "n", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 87, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_bad_event_threshold": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "\u03b5", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_power40_identity": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 400, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_r4_le_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 1203, + "accepted": 128, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3": { + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (77 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "p", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "p", + "value": "1000001/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "C", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "r", + "value": "-1", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 129, + "accepted": 128, + "rejected": 77, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_integral_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_event_cs": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 141, + "accepted": 128, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_event_numerator": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (38 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 38, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_measure_transfer": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (116 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 116, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (142 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 142, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample": { + "module": "ResearchFormalCoreR1/MeasureBridge.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightedLaw_apply": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 131, + "accepted": 128, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_real": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (6 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 130, + "accepted": 128, + "rejected": 6, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 131, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_congr_ae": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (25 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 130, + "accepted": 128, + "rejected": 25, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_zero": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 148, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_one": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 198, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm008_probability_transfer": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (116 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 116, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3": { + "module": "ResearchFormalCoreR1/WeightedLaw.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (142 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 142, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_markov_event": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (18 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 18, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_badJet_measurable": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "conclusion is a structural predicate ['MeasurableSet']: trivial on finite discrete models (every set is measurable, every function measurable and integrable), so sampling has no content here", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_badJet_subset": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 129, + "accepted": 128, + "rejected": 4, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (122 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 122, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (148 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 148, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3": { + "module": "ResearchFormalCoreR1/MomentTail.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval": { + "module": "ResearchFormalCoreR1/MomentGenerality.lean", + "status": "UNSUPPORTED", + "detail": "binder ( \u03bc : \u211d \u2192 Measure \u03a9 ) is neither a sampled numeric type (\u2115 \u2124 \u211a \u211d) nor a decidable hypothesis", + "instances": 0, + "vacuous": false, + "probes": [], + "float_free": true + }, + "ResearchFormalCoreR1.weightPerturbation_integral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_setIntegral": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_normalizer_lower": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 2, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightPerturbation_quotient_bound": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "a", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "a", + "value": "1000001/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "z", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 5, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (289 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 289, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2": { + "module": "ResearchFormalCoreR1/WeightPerturbation.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (525 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 525, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_numerator": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 130, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 130, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_interpolation": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_ratio": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_numerator_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "999999/1000000", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 156, + "accepted": 128, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 132, + "accepted": 128, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 132, + "accepted": 128, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_det_le_endpoint_max": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "q", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "5/4", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "-3/4", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "q", + "value": "250001/1000000", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 7, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_schur_endpoint_lower": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 132, + "accepted": 128, + "rejected": 8, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_cumulant_eq": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": true, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 1, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_axis": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_diagonal": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_tau_pos": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (72 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [ + { + "var": "m2", + "value": "0", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "1/1000000", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m2", + "value": "-1/1000000", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "1", + "holds": false, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "2", + "holds": true, + "outside_hypotheses": true + }, + { + "var": "m4", + "value": "0", + "holds": false, + "outside_hypotheses": true + } + ], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 128, + "accepted": 128, + "rejected": 72, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_gaussian_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "CORROBORATED", + "detail": "holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it", + "instances": 128, + "vacuous": false, + "probes": [], + "float_free": true, + "sampling": { + "seed": 2, + "draws": 400, + "accepted": 128, + "rejected": 0, + "infeasible": 0 + } + }, + "ResearchFormalCoreR1.d2_degenerate_control": { + "module": "ResearchFormalCoreR1/D2Schur.lean", + "status": "PASS", + "detail": "closed statement evaluated true", + "instances": 1, + "vacuous": false, + "probes": [], + "float_free": true + } + }, + "unregistered_theorems": [], + "manifest_targets": [ + { + "name": "ResearchFormalCoreR1.ec005_fold_gap", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec008_factor_expansion", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_generic", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec010_transverse", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec011_scalar_cancellation", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.ec014_contact_power", + "module": "ResearchFormalCoreR1/AlgebraV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_r2_cancel", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_cross_multiplied", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_quotient_bound", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_bad_event_threshold", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_power40_identity", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_r4_le_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3", + "module": "ResearchFormalCoreR1/ProbabilityCompanionsV2.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_integral_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_cs", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_event_numerator", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_measure_transfer", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_sqrt_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_upper_normalizer_counterexample", + "module": "ResearchFormalCoreR1/MeasureBridge.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_apply", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_real", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_absolutelyContinuous", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_congr_ae", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_zero", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_one", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm008_probability_transfer", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3", + "module": "ResearchFormalCoreR1/WeightedLaw.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_markov_event", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_measurable", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_badJet_subset", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3", + "module": "ResearchFormalCoreR1/MomentTail.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval", + "module": "ResearchFormalCoreR1/MomentGenerality.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_integral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_setIntegral", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_normalizer_lower", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_event_integral_bounds", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightPerturbation_quotient_bound", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.weightedLaw_event_perturbation_r2", + "module": "ResearchFormalCoreR1/WeightPerturbation.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_numerator", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_interpolation", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_ratio", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_numerator_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_det_le_endpoint_max", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_schur_endpoint_lower", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_cumulant_eq", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_axis", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_diagonal", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_tau_pos", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_gaussian_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + }, + { + "name": "ResearchFormalCoreR1.d2_degenerate_control", + "module": "ResearchFormalCoreR1/D2Schur.lean" + } + ], + "sampling": { + "seed": 2, + "samples": 128, + "admit_corroborated": true + }, + "sampling_totals": { + "sampled_targets": 56, + "accepted_total": 7168, + "rejected_total": 2241, + "infeasible_total": 0, + "targets_with_infeasible_draws": [] + }, + "selftest": {}, + "declared_controls": {}, + "exit_code": 1, + "note": "G12 empirical statement check: PASS means the closed statement, read independently of Lean, evaluates true in exact arithmetic; CORROBORATED means no sampled instance of a statement with binders refuted it (admitted evidence, never a proof); neither is kernel evidence. FAIL names an exact witness. UNSUPPORTED is fail-closed." +} diff --git a/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3_seed2_s128.stdout.txt b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3_seed2_s128.stdout.txt new file mode 100644 index 000000000..162ed7345 --- /dev/null +++ b/cbz/evidence/g12-statement-fuzz-01n/math_formal_19a55750_r3_seed2_s128.stdout.txt @@ -0,0 +1,83 @@ +{ + "package_root": "/formal", + "targets": 63, + "status_counts": { + "CORROBORATED": 56, + "PASS": 3, + "UNSUPPORTED": 4 + }, + "unregistered_theorems": [], + "sampling": { + "seed": 2, + "samples": 128, + "admit_corroborated": true + }, + "sampling_totals": { + "sampled_targets": 56, + "accepted_total": 7168, + "rejected_total": 2241, + "infeasible_total": 0, + "targets_with_infeasible_draws": [] + }, + "exit_code": 1 +} +CORROBORATED: ResearchFormalCoreR1.ec005_fold_gap: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec008_factor_expansion: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_generic: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec010_transverse: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec011_scalar_cancellation: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.ec014_contact_power: holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_r2_cancel: holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_cross_multiplied: holds on 128 sampled instances satisfying the hypotheses (216 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_quotient_bound: holds on 128 sampled instances satisfying the hypotheses (87 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_bad_event_threshold: holds on 128 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_power40_identity: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_r4_le_r3: holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_palm_r4_to_r3: holds on 128 sampled instances satisfying the hypotheses (77 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_integral_cs: holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_event_cs: holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_event_numerator: holds on 128 sampled instances satisfying the hypotheses (38 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_measure_transfer: holds on 128 sampled instances satisfying the hypotheses (116 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_measure_transfer_r8_to_r3: holds on 128 sampled instances satisfying the hypotheses (142 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_apply: holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_isProbabilityMeasure: holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_event_real: holds on 128 sampled instances satisfying the hypotheses (6 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_absolutelyContinuous: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_congr_ae: holds on 128 sampled instances satisfying the hypotheses (25 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_zero: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_one: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm008_probability_transfer: holds on 128 sampled instances satisfying the hypotheses (116 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_probability_transfer_r8_to_r3: holds on 128 sampled instances satisfying the hypotheses (142 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_markov_event: holds on 128 sampled instances satisfying the hypotheses (18 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_badJet_measurable: conclusion is a structural predicate ['MeasurableSet']: trivial on finite discrete models (every set is measurable, every function measurable and integrable), so sampling has no content here +CORROBORATED: ResearchFormalCoreR1.p02_lm009_badJet_subset: holds on 128 sampled instances satisfying the hypotheses (4 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_tail: holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r4: holds on 128 sampled instances satisfying the hypotheses (122 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_weighted_r3: holds on 128 sampled instances satisfying the hypotheses (148 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_tail_finite: holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.p02_lm009_moment40_tail_of_finite: holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +UNSUPPORTED: ResearchFormalCoreR1.p02_lm009_moment40_family_r3_of_interval: binder ( μ : ℝ → Measure Ω ) is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_integral: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_setIntegral: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_normalizer_lower: holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_event_integral_bounds: holds on 128 sampled instances satisfying the hypotheses (2 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightPerturbation_quotient_bound: holds on 128 sampled instances satisfying the hypotheses (5 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_event_perturbation: holds on 128 sampled instances satisfying the hypotheses (289 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.weightedLaw_event_perturbation_r2: holds on 128 sampled instances satisfying the hypotheses (525 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_numerator: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_axis: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_diagonal: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_interpolation: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_ratio: holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_numerator_pos: holds on 128 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_pos: holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_pos: holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_det_le_endpoint_max: holds on 128 sampled instances satisfying the hypotheses (7 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_schur_endpoint_lower: holds on 128 sampled instances satisfying the hypotheses (8 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_cumulant_eq: holds on 128 sampled instances satisfying the hypotheses (1 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_axis: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_diagonal: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_tau_pos: holds on 128 sampled instances satisfying the hypotheses (72 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it +CORROBORATED: ResearchFormalCoreR1.d2_gaussian_control: holds on 128 sampled instances satisfying the hypotheses (0 draws rejected by the hypotheses, 0 infeasible, seed 2): sampling is admitted evidence of the statement, not a proof of it diff --git a/cbz/evidence/pr-trigger-01a11c48-20261029/README.md b/cbz/evidence/pr-trigger-01a11c48-20261029/README.md new file mode 100644 index 000000000..930a3a9e7 --- /dev/null +++ b/cbz/evidence/pr-trigger-01a11c48-20261029/README.md @@ -0,0 +1,62 @@ +# PR trigger repair for the federation crawler + +A PR changing only a registry, pin or a future topology input could miss the +crawler before discovery: the original workflow admitted only its enumerated +Lean/Lake/tool paths. This contribution removes the PR path filter and adds a +restricted subscription guard to the existing self-test command. Every ordinary +PR activity now reaches the workflow regardless of changed paths or base branch. +Push/main, schedule, manual invocation, permissions, action pins, both jobs and +the crawl command retain their original bytes, apart from adding the guard to +the self-test module list. + +This is a patch on Claude017's crawler commit +`15e8f689d00ca03e28e9bc5d97b6aba3f19ec900`, not another crawler or a direct write +to its branch. The [task-local pickup](https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6511287308) +names the bounded scope. The later complete +[owner team directive](https://github.com/d6g8k5htny-coder/main/issues/686#issuecomment-6511339492) +controls integration: ownership coordinates compatible contributions and is not +an exclusive lock. The existing foundation lane remains at #695; this patch +does not introduce a peer-approval wait or compete with its other source work. + +## Reproduce the affected controls + +From `tests/` in this contribution, using the selected interpreter: + +```sh +python3 -B -S -m unittest test_cbz_drift test_cbz_drift_pr_trigger_01a11c48 test_navigation_workflow -v +python3 -B -O -S -m unittest test_cbz_drift test_cbz_drift_pr_trigger_01a11c48 test_navigation_workflow -v +``` + +Observed locally with CPython 3.9.6: 55 tests in each parent mode, both exit 0. +The population is the original 43 crawler controls, four new guard controls and +eight existing navigation/event-reader controls. The inherited mutant harness +launches its children with normal `-B`; an optimized parent does not qualify +optimized mutant children. The workflow's selected hosted runtime is Python +3.11; local results are not relabelled as that hosted qualification. + +The first guard failed against the original workflow in both modes. A separate +OpenAI/Codex engineering reviewer then found a false green: a column-zero YAML +comment hid subsequent path/base/activity restrictions. Five assertion failures +in each parent mode captured that defect and the comment-preservation case. +The amended guard removes full-line comments before either restricted reader +operates. Fresh focused review observed 12 controls pass per mode and returned +PASS for this two-file engineering scope. Original AMEND and RED observations +are retained in `RESULTS.json`; raw logs remain private and are not exported. +The guard is deliberately not a general YAML parser or an independent claim +about the GitHub scheduler. + +## Remaining boundaries + +This repair does not fix PR #712's known graph-closure, missing-pin/registry, +tip-freshness or Lean-context/parser findings. Its six expected-RED real-Git +adversarial controls remain required repair evidence. It does not install a +required-status dependency, change rulesets, approve CLOSED, establish full +semantic or federation coverage, or pass final G7/G0-G11. The inherited crawler +and its existing tests remain byte-identical. No mathematical source or Layer A +invariant changed. + +The [original enforcement finding](https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6510934948) +separates this trigger defect from the required-check binding. Compose this +bounded patch with the actual source owner's repairs, then qualify that exact +composition. The full project/federation regression and final common run remain +unperformed team obligations at this delivery. diff --git a/cbz/evidence/pr-trigger-01a11c48-20261029/RESULTS.json b/cbz/evidence/pr-trigger-01a11c48-20261029/RESULTS.json new file mode 100644 index 000000000..257c9de5d --- /dev/null +++ b/cbz/evidence/pr-trigger-01a11c48-20261029/RESULTS.json @@ -0,0 +1,131 @@ +{ + "schema": "cbz712.pr-trigger-repair.v1", + "base_commit": "15e8f689d00ca03e28e9bc5d97b6aba3f19ec900", + "actual_executor": "OpenAI/Codex 01a11c48-e9e4-7113-a03f-24b2155da25e", + "claim": "https://github.com/d6g8k5htny-coder/main/pull/712#issuecomment-6511287308", + "python": "3.9.6", + "sources_sha256": { + ".github/workflows/cbz-federation-drift.yml": "c7a31a2da1eacafe62ab8c71bdb1fb3d36ecd75c3e3cf75b2ec05e2cebcc3243", + "tests/test_cbz_drift_pr_trigger_01a11c48.py": "b4ab9b394af1a9e3132a5b44a2da74c75ce8d221e421403e382c0758a915b6b0", + "tests/test_navigation_workflow.py": "fac899b807edf049479dacd449736d861ccf363d9b914994646c5e80935d75db", + "tests/test_cbz_drift.py": "647e04ff376fad7f5e355abed7c7fe1912a8718599bfbd8dc9341e98970b5440", + "tools/cbz_drift/crawl.py": "737d1307bf76bd4fab24dffc50952de22f450e6dbc4f85780e53d330f0346600", + "tools/cbz_drift/lean_decls.py": "ce9a2a462bc38f3bf29b0f4aad6054d39733290b4ac59ed29aa5a02acff7a761" + }, + "execution": { + "red-normal": { + "bytes": 1481, + "sha256": "33ca3d72c7c316c05b1eeae750364adc58534775aee457f67f8b474c02005d25", + "summary": [ + "----------------------------------------------------------------------", + "Ran 2 tests in 0.001s", + "", + "FAILED (failures=1)" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + }, + "red-optimized": { + "bytes": 1481, + "sha256": "e6cd4c03e8f132e5c73bb4990b14ee55df20c06e6985e5daedac216cc9cf2d15", + "summary": [ + "----------------------------------------------------------------------", + "Ran 2 tests in 0.002s", + "", + "FAILED (failures=1)" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + }, + "green-normal": { + "bytes": 4487, + "sha256": "5240e428459da04c4fbb4727feca03f26499eac2c56e94fe25ce983ebce2dee9", + "summary": [ + "----------------------------------------------------------------------", + "Ran 53 tests in 124.471s", + "", + "OK" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + }, + "green-optimized": { + "bytes": 4487, + "sha256": "a60972b5e2001e3e51557c3d5bc9dfee0880c923dece7526b4f192682aa7ab83", + "summary": [ + "----------------------------------------------------------------------", + "Ran 53 tests in 124.425s", + "", + "OK" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + }, + "review-red-normal": { + "bytes": 3834, + "sha256": "040087a011ffaecc5904377673404ac50071d5c7c0e4e77d499dfa618736eb9b", + "summary": [ + "----------------------------------------------------------------------", + "Ran 4 tests in 0.001s", + "", + "FAILED (failures=5)" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + }, + "review-red-optimized": { + "bytes": 3834, + "sha256": "33f1001e7a14baa80541952d1dfc1937de2c879a167463b9bd3fe9efd2541223", + "summary": [ + "----------------------------------------------------------------------", + "Ran 4 tests in 0.002s", + "", + "FAILED (failures=5)" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + }, + "final-normal": { + "bytes": 4727, + "sha256": "10fc2a9ad89dcd316a0beac975fbeed22a5dec9eb2b493ed0061ed207570a163", + "summary": [ + "----------------------------------------------------------------------", + "Ran 55 tests in 136.432s", + "", + "OK" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + }, + "final-optimized": { + "bytes": 4727, + "sha256": "cc5138b5dc2860d280af2ab01b00706efd29b2df8a67079d6edc1c71428d4d9b", + "summary": [ + "----------------------------------------------------------------------", + "Ran 55 tests in 136.434s", + "", + "OK" + ], + "raw_log_publication": "PRIVATE_NOT_EXPORTED" + } + }, + "final_test_population": { + "crawler_original": 43, + "new_trigger_guard": 4, + "existing_navigation": 8, + "total_per_parent_mode": 55 + }, + "bounded_review": { + "actual_reviewer": "OpenAI/Codex child cbz712_trigger_review_01a11c48", + "initial_guard_sha256": "d5bf4bd7bfc588db36632c969f6c7b5e0cc5891f5ba47ded2c60c8b1fe6c5e5e", + "initial_verdict": "AMEND: column-zero comments hide filters", + "successor_verdict": "PASS_SCOPED_ENGINEERING", + "focused_tests_per_mode": 12, + "organizational_independence_credit": 0 + }, + "preservation": { + "push_schedule_manual_permissions_jobs_crawl_suffix": "BYTE_IDENTICAL_EXCEPT_ADDED_GUARD_MODULE", + "inherited_crawler_parser_and_tests": "BYTE_IDENTICAL" + }, + "limitations": [ + "Restricted source subscription guard, not a general YAML parser or hosted eligibility proof.", + "Local parent modes normal and optimized; inherited mutant children still use normal-B.", + "Dedicated hosted qualification at this successor NOT_YET_OBSERVED.", + "Known PR712 graph/parser adversarial findings remain unresolved; original six RED real-Git cases not claimed repaired.", + "Main required-status binding remains a separate canonical integration obligation; legacy administration read403 remains UNKNOWN.", + "Full project/federation regression and final common G0-G11 NOT_RUN; no tool/math/scientific/CBZ admission." + ] +} diff --git a/docs/RESEARCH_INDEX.md b/docs/RESEARCH_INDEX.md index 4420e1447..73d830730 100644 --- a/docs/RESEARCH_INDEX.md +++ b/docs/RESEARCH_INDEX.md @@ -30,7 +30,7 @@ The [public-text catalog](PUBLIC_MATHEMATICS.md) counts 2,138 files at its decla |---|---| | Read or extend mathematics | The topic sections below and [Math-](https://github.com/d6g8k5htny-coder/Math-) | | Run a calculation | [Reproduction guide](REPRODUCE.md) | -| Review or claim work | The [active Agent Message Board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) for new claims, tasks and coordination; [architecture discussion, main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)) and the relevant issue or PR for task context; historical boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) for earlier records. [Open work](#open-work) gives each front's current records and remaining obligations | +| Review or claim work | The [active Agent Message Board, main #738](https://github.com/d6g8k5htny-coder/main/issues/738) for new claims, tasks and coordination; [architecture discussion, main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)) and the relevant issue or PR for task context; historical boards [#619](https://github.com/d6g8k5htny-coder/main/issues/619), [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) for earlier records. [Open work](#open-work) gives each front's current records and remaining obligations | | Locate exact source bytes | [Catalog](https://github.com/d6g8k5htny-coder/meta-framework/blob/main/registry.json) and [query tool](https://github.com/d6g8k5htny-coder/query-) | | Work on the larger numerical tree | [Hardening branch](https://github.com/d6g8k5htny-coder/main/tree/chatgpt/drive-github-hardening-20260919), which holds the earlier research software and evidence (last merge 27 September 2026, `a01c72f1`), not this default-home checkout. Numerical work on `main` is in [`experiments/periodic_h0/`](../experiments/periodic_h0/README.md) and [`experiments/universality/`](../experiments/universality/README.md) | | Explore zeta zeros, de Bruijn–Newman folds and a CUE short-bar control | [Zeta fold exploration packet](../experiments/zeta_fold_exploration/README.md): exploratory, scientific effect NONE, no claim of progress toward the Riemann Hypothesis | @@ -118,7 +118,7 @@ Still open: arbitrary downsets and the unrestricted prize; overlap patterns outs ## Open work -Each row gives a front's current label and what remains open; the topic sections hold scopes and review details. Discuss architecture on [main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)); discuss tasks and post new claims, reviews, handoffs and releases on the [active Agent Message Board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619), linking the relevant issue or PR; the earlier boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) remain readable history, with #229 retaining its [working guidance](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6038554880). The review discussions #63, #65, #67, #74 and #76, the downstream-first queue [#86](https://github.com/d6g8k5htny-coder/main/issues/86) and formal work item [#95](https://github.com/d6g8k5htny-coder/main/issues/95) are closed records, not open assignments; a closed issue does not by itself complete its mathematics. A review record does not by itself change the Math- [register](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/downstream_gate_20260925/GRAPH.json), which is executed separately and may still show an earlier classification. +Each row gives a front's current label and what remains open; the topic sections hold scopes and review details. Discuss architecture on [main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)); discuss tasks and post new claims, reviews, handoffs and releases on the [active Agent Message Board, main #738](https://github.com/d6g8k5htny-coder/main/issues/738), linking the relevant issue or PR; the earlier boards [#619](https://github.com/d6g8k5htny-coder/main/issues/619), [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) remain readable history, with #229 retaining its [working guidance](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6038554880). The review discussions #63, #65, #67, #74 and #76, the downstream-first queue [#86](https://github.com/d6g8k5htny-coder/main/issues/86) and formal work item [#95](https://github.com/d6g8k5htny-coder/main/issues/95) are closed records, not open assignments; a closed issue does not by itself complete its mathematics. A review record does not by itself change the Math- [register](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/downstream_gate_20260925/GRAPH.json), which is executed separately and may still show an earlier classification. | Front | Current state and remaining work | Records | |---|---|---| @@ -130,9 +130,9 @@ Each row gives a front's current label and what remains open; the topic sections | RN shrinking witness pairs | Separate results, each at its own scope: the September note (upper bound only), remote-collision Theorem C, the planar moving cutoff and the sub-pin corollary (see [RN counting](#rn-counting)). Open: mixed inner/outer pairs, an exact kernel, small-gap uniformity and higher dimensions for the moving cutoff | [Note](rn_d5_shrinking_witness_20260926.md), [remote collision](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/remote_collision_20260928/PROOF.md), [off-pin review](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/d5_offpin_second_moment_20260928/REVIEW.md), [moving cutoff](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/moving_remote_collision_20261003/README.md), [sub-pin corollary](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/subpin_collision_20261002/README.md) | | RN collision register | [Math- #160](https://github.com/d6g8k5htny-coder/Math-/pull/160) and [Math- #173](https://github.com/d6g8k5htny-coder/Math-/pull/173): merged, reviewed and declarative; neither has been executed, so `math.rn-region.witness-collision` stays `OPEN_ACTIVE` (see [RN counting](#rn-counting)). Open: execution of both records by a non-Claude lane; no source defines another meaning for the node (Math- #173 §5), and the records establish no rate of convergence, no numerical constants, no uniformity as `k -> 0` or in `L` or `d`, no all-height statement and no elder selection of the extra points (§4 lists the rest) | [C6 reconciliation](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/c6_witness_collision_reconciliation_20260929/RECONCILIATION.md), [residual closure](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/c6_residual_closure_20260930/RECONCILIATION.md) | | P15 | Theorem F, the full-range price theorem (OpenAI author), has an xAI/Grok nonauthor ACCEPT, reconciled on #74 for the realized disjoint family with demands `d_i >= 2`, every independent probability, `c_v <= phi(p_v)` and the same palette. The bipartite-overlap/even-capacity and tail/weighted-load successors (OpenAI authors) have an Anthropic/Claude scoped ACCEPT and landed through [Math- #124](https://github.com/d6g8k5htny-coder/Math-/pull/124). Open: arbitrary downsets and any unrestricted prize statement; demand one remains an obstruction | [Full-price review](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/p15_full_price_nonauthor_20260926/REVIEW.md), [overlap/tail review](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/p15_overlap_tail_claude_20260928/REVIEW.md), [integration record](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/docs/integration/2026-09-28-reviewed-mathematics.md), [#74](https://github.com/d6g8k5htny-coder/main/issues/74), [#67](https://github.com/d6g8k5htny-coder/main/issues/67) (closed review discussions) | -| Formalization (Layer 1) | Independent alignment review of the 13 Math- pilot targets and the 31 main-side SIDE24 targets (cross-provider); the remaining "Numerical formalizer" steps — exact `c_{d,ref}` definition and a proof-producing enclosure — in the Mathlib package; D6 Theorem F's constant `ρ*` as the next full-theorem target | [Guide](FORMAL_VERIFICATION.md), [work item #95](https://github.com/d6g8k5htny-coder/main/issues/95), [Formal README](../formal/README.md), [review lane](../formal/REVIEW_LANE.md), [rollout record](FORMAL_VERIFICATION_ROLLOUT_20260927.md) | +| Formalization (Layer 1) | Independent alignment review of the 13 Math- pilot targets and the 59 main-side targets (31 SIDE24 + 28 P15 arithmetic skeletons; cross-provider); the remaining "Numerical formalizer" steps — exact `c_{d,ref}` definition and a proof-producing enclosure — in the Mathlib package; D6 Theorem F's constant `ρ*` as the next full-theorem target | [Guide](FORMAL_VERIFICATION.md), [work item #95](https://github.com/d6g8k5htny-coder/main/issues/95), [Formal README](../formal/README.md), [review lane](../formal/REVIEW_LANE.md), [rollout record](FORMAL_VERIFICATION_ROLLOUT_20260927.md) | -Before writing, check current claims on [active board #619](https://github.com/d6g8k5htny-coder/main/issues/619) and the relevant issue or PR, including unresolved claims in existing task records and on earlier boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229), or their explicit successor pointers. Moving the board does not transfer, renew or release any existing claim. Release completed work. Offered reviews are not accepted tasks or evidence of active agents. This table routes to source and review records; it is not a status register. +Before writing, check current claims on [active board #738](https://github.com/d6g8k5htny-coder/main/issues/738) and the relevant issue or PR, including unresolved claims in existing task records and on earlier boards [#619](https://github.com/d6g8k5htny-coder/main/issues/619), [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229), or their explicit successor pointers. Moving the board does not transfer, renew or release any existing claim. Release completed work. Offered reviews are not accepted tasks or evidence of active agents. This table routes to source and review records; it is not a status register. The [discovery / priority ledger](DISCOVERY_PRIORITY_LEDGER_20260925.md) and its [reconnaissance memo](RECON_NOVELTY_20260925.md) record candidate contributions, nearest prior art and source bindings. They are novelty bookkeeping, not status; "apparently novel" is not "accepted". The ledger's "current state" cells were last aligned on 27 September 2026, with `STATUS.md` of 26 September; the rows above give later records. diff --git a/docs/cbz/COLD_START.md b/docs/cbz/COLD_START.md new file mode 100644 index 000000000..7a43c26c6 --- /dev/null +++ b/docs/cbz/COLD_START.md @@ -0,0 +1,222 @@ +# Reproduce the federation checkpoint + +This is a reproduction guide for the Partial Baseline. It is not a final G9 +PASS, a complete mathematical auditor, or a CBZ-0 declaration. STATUS.md is the +entry point; it states the closed and quarantined domains and immutable rules. +No final baseline vector/tag or single complete G0–G11 run exists at this cut. + +## Inputs and layout + +Use Git, CPython 3.11, Node (the actual version is recorded by the Node runner), +and the repository-pinned Lean 4.34.1 toolchain. Use the exact dependency lock +files; do not substitute a newer Mathlib. Current checked Lean release commit: +5045d0056413266e57c625dcd7c365b10e377c52. Mathlib: +d13f23b723b8a846827a245b89c10fc7d3f11612. Each formal package owns its own build +outputs. Sharing a verified dependency package cache does not authorize sharing +or trusting another package's owned compiled objects. + +The final source vector is external to the source trees and has exactly this +shape (all twelve values are full lowercase 40-hex commits): + + {"schema":"cbz.federation-vector.v1","repositories":{ + "main":"COMMIT","Math-":"COMMIT","governance-":"COMMIT", + "Universal-Law-Workspace":"COMMIT","meta-framework":"COMMIT", + "query-":"COMMIT","google-drive":"COMMIT","trial":"COMMIT", + "sandbox":"COMMIT","d6g8k5htny-coder":"COMMIT", + "openclaw-custodian-validation":"COMMIT", + "research-hosted-qualification":"COMMIT"}} + +The final vector must be the published exact vector named by BASELINE.md, not a +fresh selection of moving default branches. It is deliberately not embedded in +a commit whose own hash it would have to contain. Until that vector exists, +component commands establish only their explicitly recorded source cuts. + +Clone complete history into twelve sibling directories with the names above, +all from https://github.com/d6g8k5htny-coder/NAME.git. Existing configured +credentials must authorize the two private repositories; credentials are never +written to a report. Public repositories alone are not the complete federation. +For a new empty parent directory, the commands are: + +~~~sh +set -eu +export GIT_TERMINAL_PROMPT=0 +export CBZ_ROOT=/absolute/new/federation +export CBZ_EVIDENCE=/absolute/new/evidence +mkdir -p "$CBZ_ROOT" "$CBZ_EVIDENCE" +for repo in main Math- governance- Universal-Law-Workspace meta-framework query- google-drive trial sandbox d6g8k5htny-coder openclaw-custodian-validation research-hosted-qualification +do + git clone --no-checkout "https://github.com/d6g8k5htny-coder/$repo.git" "$CBZ_ROOT/$repo" +done +~~~ + + +For a published vector file, this checkout loop rejects aliases and malformed +commit values before calling Git (it does not replace full vector verification): + +~~~sh +export CBZ_VECTOR=/absolute/published/baseline-vector.json +for repo in main Math- governance- Universal-Law-Workspace meta-framework query- google-drive trial sandbox d6g8k5htny-coder openclaw-custodian-validation research-hosted-qualification +do + cbz_commit=$(python3.11 -B -S - "$CBZ_VECTOR" "$repo" <<'PY' +import json, re, sys +from pathlib import Path +value = json.loads(Path(sys.argv[1]).read_text()) +if value.get("schema") != "cbz.federation-vector.v1": + raise ValueError("unsupported source vector") +commit = value["repositories"][sys.argv[2]] +if not isinstance(commit, str) or re.fullmatch(r"[0-9a-f]{40}", commit) is None: + raise ValueError("source vector must contain an immutable full commit") +print(commit) +PY +) + git -C "$CBZ_ROOT/$repo" checkout --detach "$cbz_commit" +done +~~~ + +Checkout each repository at its exact vector commit. Use detached checkouts; +do not substitute the current default branch or silently accept a missing +object. A shallow source needs complete history or explicit immutable fetches. +Run the finished federation-vector verifier's documented --root/--vector +commands after checkout; the network mode must observe all required source and +dependency commits. Its admission is separate from this guide. + + +Install the pinned elan release only after checking its archive digest; preserve +the existing TLS/proxy trust configuration: + +~~~sh +curl -sSfL https://github.com/leanprover/elan/releases/download/v4.2.4/elan-x86_64-unknown-linux-gnu.tar.gz -o "$CBZ_EVIDENCE/elan-v4.2.4.tar.gz" +printf '%s %s\n' 42b94d4244e8353142c456ec0e4ca6528fd898a6c604d4059f494e706e431f63 "$CBZ_EVIDENCE/elan-v4.2.4.tar.gz" | sha256sum -c - +mkdir "$CBZ_EVIDENCE/elan-installer" +tar -xzf "$CBZ_EVIDENCE/elan-v4.2.4.tar.gz" -C "$CBZ_EVIDENCE/elan-installer" +"$CBZ_EVIDENCE/elan-installer/elan-init" -y --default-toolchain none +export PATH="$HOME/.elan/bin:$PATH" +elan toolchain install "$(cat "$CBZ_ROOT/main/formal/lean-toolchain")" +~~~ + +For each Mathlib formal package, run lake exe cache get in that package before +its documented fresh-owned-object gate. These commands use the checked-in +lake-manifest.json/lakefile pins. Never treat a fetched cache as evidence that +owned declarations were freshly built or kernel-replayed. + +Historical display sources are intentionally older than the baseline. The +prepared Node runner reads exact Git objects and fails if any is absent. +Full public history supplies these objects; explicit fetches for a shallow +input are: + +~~~sh +git -C "$CBZ_ROOT/main" fetch origin 71400b94f6cb354a8cf7aba73ffede2138a64efa +git -C "$CBZ_ROOT/main" fetch origin a12c178c0f857a130cf434e9efd44233a038195b +git -C "$CBZ_ROOT/main" fetch origin f2e432ea5c86742e480c66624775bc9103343314 +git -C "$CBZ_ROOT/Math-" fetch origin d6628da09384728992dcbe6e921cc28ba85aebb0 +git -C "$CBZ_ROOT/Math-" fetch origin 82247833b5dd58e04291d55353b52938d73ec614 +git -C "$CBZ_ROOT/Math-" fetch origin 9d7b6802424fb4715b31999066aafca8ee2f3cca +git -C "$CBZ_ROOT/query-" fetch origin c88768bb11efd1f7d6bda188f13064bedec54a06 +~~~ + +Historical proof/quarantine bindings also require their referenced Git objects, +including main tags cbz-quarantine-q-8336, cbz-quarantine-q-8340 and +cbz-quarantine-q-8429. Preserve them as historical inputs; do not check them out +over the selected baseline or import their mathematical assertions as proofs. + +## Prepared Node regression + +From the clean selected main root: + +~~~sh +python3.11 -B -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +python3.11 -B -O -S -m unittest discover -s tests -p test_cbz_node_regression.py -v +python3.11 -B -S tools/cbz_node_regression.py --math-root "$CBZ_ROOT/Math-" --query-root "$CBZ_ROOT/query-" --output "$CBZ_EVIDENCE/node" +~~~ + +The output directory must be new and outside all three source roots. The helper +verifies every historical descriptor before writing that fixture set, creates +separate shop/museum trees, and passes SHOP_MATH_FIXTURE, SHOP_QUERY_FIXTURE and +MUSEUM_FIXTURE to every tracked tests/*.mjs file. It clears NODE_OPTIONS, NODE_PATH and ambient Git redirects/configuration. It runs Node directly without a shell and retains node.tap plus +result.json. The exact fixture/manifest regular-file and directory set and bytes +are verified before and after execution. Imported museum_data.py and the +recorder itself must match their loaded bytes and selected main root at both +endpoints. All tracked main symlinks and Gitlinks are rejected; selected tests +must be regular stage-zero Git entries. Only a real zero exit and a complete TAP summary with tests=pass>0 +and fail=cancelled=skipped=todo=0 produce PASS. Missing objects, changed bytes, +ambiguous summaries, source/index changes and missing executables fail. + +A RUNNING report is an incomplete attempt. File existence, a prior PASS, or a +partial log is not success. Reusing an output directory is rejected so a new +run cannot overwrite a retained failure. The helper checks all tracked main +bytes and modes against HEAD before/after, including changes hidden by +assume-unchanged, and binds unchanged HEAD. These are endpoint checks; changes restored between them are outside the +claim. They do not certify malicious simultaneous writers, untracked ignored dependencies, +a hostile Git/Node/Python runtime, or arbitrary supplied transcripts. + +## Gate ownership and commands + +The following are exact commands for the existing component tools. Run from the +indicated selected repository and record actual source, output, exit and time. +A component PASS does not qualify a global gate. All final gates still require +the final vector, full declared domain and one observed final run. + +| Gate | Executable component / exact command | Remaining final obligation | +|---|---|---| +| G0 | main: python3.11 -B -S -m unittest tests.test_cbz_layer_a_scan tests.test_cbz_auditor_hardening tests.test_cbz_layer_a_scan_mutants tests.test_cbz_a3_float_census; repeat with -O | All admitted certifier self-tests/mutations, including package compiled auditors | +| G1 | main: python3.11 -B -S tools/cbz/layer_a_scan.py --git REPOSITORY --rev EXACT_COMMIT --fail-on all --json EXTERNAL.json; Python signal inventory: python3.11 -B -S tools/cbz/a3_float_census.py --git REPOSITORY --rev EXACT_COMMIT --json EXTERNAL.json | Complete pin-aware owned/child domain and semantic mathematical review; an AST zero does not certify exact arithmetic | +| G2/G3/G4 | main: python3.11 -B -S tools/formal_gate_check.py --run-lean; Math-: LEAN_NUM_THREADS=2 python3.11 -B -S formal/gate.py --execute | All declared closed packages, exact compiled inventories/types/axioms, no receipt-source substitution | +| G5 | main: python3.11 -B -S -m unittest discover -s tests -v; repeat with -O; prepared Node command above; Math-: python3.11 -B -S -m unittest discover -s tests -v; repeat with -O | Full active federation suite and explicit dormant quarantine contract, optional/container coverage and all declared package suites | +| G6 | G0 source mutations; main replay helper: cd cbz/evidence/kernel/additional/replay-tool then python3.11 -B -S run_mutations.py --output NEW_EXTERNAL; Math downstream and meta-framework: documented run_validation.py campaigns | Every declared mutation target/threshold, intended assertion failures only | +| G7 | ULW candidate: python3.11 -B -S tools/verify_federation_vector.py --root ROOT --vector EXTERNAL_VECTOR, then repeat with --network | Final exact twelve-repository vector, eight child pins, nine Lean locks and required remote availability | +| G8 | Source census below plus direct reconciliation of STATUS/PROOF_INDEX/GOVERNANCE/TOOLING/BASELINE to the final observed reports | No current single tool proves semantic truth of every status sentence; final reconciliation must be recorded | +| G9 | New clones at published baseline tag/vector; read STATUS.md only, answer its eight entry-point questions, then execute the commands and retain all results | Final clone/tag test has not been performed by this guide | +| G10 | Each clone: git status --porcelain=v1 --untracked-files=all; git stash list; git worktree list --porcelain; git branch -a; git tag; GitHub current open PR/ref enumeration | Fresh complete remote enumeration, recoverable retirement and actual absence readback | +| G11 | New Node helper self-tests above; census/replay/canonical tests below; every modified tool's registered verification | Registry completeness and no abandoned tool stubs across the exact final source vector | + +ULW gitlinks deliberately fail the standalone lexical scanner. Do not suppress +or skip them. A passing pin check and independent child scans must be composed +by an admitted pin-aware domain tool before claiming global G1. This composition +was a recorded tool gap at this checkpoint. + +Source census, from main (output outside all twelve clones): + +~~~sh +python3.11 -B -S -m unittest discover -s tests -p test_cbz_inventory.py -v +python3.11 -B -O -S -m unittest discover -s tests -p test_cbz_inventory.py -v +python3.11 -B -S tools/cbz_inventory.py generate --root "$CBZ_ROOT" --classifications cbz/classifications.json --output "$CBZ_EVIDENCE/inventory.json" +python3.11 -B -S tools/cbz_inventory.py verify --root "$CBZ_ROOT" --manifest "$CBZ_EVIDENCE/inventory.json" +~~~ + +Census generation and verify establish their stated byte/binding properties, +not kernel execution authenticity, complete obligation semantics or CBZ green. +Replay helper self-tests use the following commands from +cbz/evidence/kernel/additional/replay-tool: + +~~~sh +python3.11 -B -S -m unittest -v test_replay_tool.py +python3.11 -B -O -S -m unittest -v test_replay_tool.py +python3.11 -B -S run_mutations.py --output "$CBZ_EVIDENCE/replay-python" +~~~ + +Actual Lean guard controls and six generated auditor mutations use the exact +installed-Lean/collector arguments in that directory's README.md. Exact package +build/replay commands are in additional/HOW_TO_REPLAY.md and +determinant/HOW_TO_REPLAY.md. Those package boundaries are retained; no default +Mathlib rebuild or reused owned olean is a substitute. + +## Regression quarantine contract + +The archived trial suite is Q-9001. It reproduced 87 failures in each isolated +mode; this is retained red evidence, not an active green suite. Preserve every +test and source. It remains dormant until deliberately reopened and contributes +no closed mathematical dependency. Q-9002 through Q-9006 record five unexercised +real-record paths: evidence URL shape, owner/released URL, artifacts, depends_on +and live-head freshness. Their real data/schema prerequisites are absent. +Never fabricate records, relax the production schema, delete these checks or +label them exercised to obtain zero skips. + +The original main discovery had 24 skips per mode; 19 methods were actually +exercised separately, including all five real restricted-container controls. +The remaining five are precisely the quarantined coverage gaps above. A final +regression contract must reconcile these recorded outcomes explicitly; this +guide does not relabel a skipped test as a passed test or declare G5 green. + +The Node mutation harness is under additional A8 repair: its independently reviewed single-test count, fixture TAP receipt, and loaded-source receipt are not yet qualified. See cbz/evidence/cold-start-node/REGISTRY_ADDENDUM.md. Historical component runs do not certify the updated harness or the final gates. + +The candidate source-only Node control launcher is run with `python3.11 -I -B -S tools/cbz_node_controls.py` and `python3.11 -I -B -O -S tools/cbz_node_controls.py`. It requires a trusted selected source root, interpreter and standard library. It remains unadmitted and unverified until the candidate and its mutations are actually run; see the evidence addendum. diff --git a/formal/ALIGNMENT.md b/formal/ALIGNMENT.md index 8ef2c89d9..f9d5962f9 100644 --- a/formal/ALIGNMENT.md +++ b/formal/ALIGNMENT.md @@ -39,3 +39,31 @@ reports `kernel-checked`. Nothing here is a Layer 0 review outcome. | `UniversalLaw.Side24.d3_endpoints_adjacent` | Published d=3 endpoints are adjacent 20-digit decimals | `"3": { "lower": "0.04177593184059834334", "upper": "0.04177593184059834335"` | side24-enclosure | that c_3,24 lies between them | | `UniversalLaw.Side24.d3_below_d2` | Published d=3 interval lies below the d=2 interval | `"dimensions": { "2": { "lower": "0.07340691930603427103", "upper": "0.07340691930603427104" }, "3": { "lower": "0.04177593184059834334", "upper": "0.04177593184059834335"` | side24-enclosure | anything about the true coefficients; the ordering d3 upper < d2 lower is a derived artifact-consistency check of the displayed endpoints | | `UniversalLaw.Side24.endpoints_in_unit_tenth` | Published endpoints lie in (0, 1/10) | `"dimensions": { "2": { "lower": "0.07340691930603427103", "upper": "0.07340691930603427104" }, "3": { "lower": "0.04177593184059834334", "upper": "0.04177593184059834335"` | side24-enclosure | anything about the true coefficients; the range (0, 1/10) is a derived artifact-consistency check of the displayed endpoints | +| `UniversalLaw.P15.smallest_member_block_size` | Smallest one-block member has block size 1·1+1 = 2 | `one-block member: a_1=d_1=1, X={x,y}` | p15-price-boundary | the realized-cover theorem or its family; the probability or price semantics; the two log inequalities; Theorem F; prize status | +| `UniversalLaw.P15.demand_one_good_sets` | Good sets of the demand-one block are ∅, {x}, {y} (finite enumeration) | `Its good sets are the empty set and singletons` | p15-price-boundary | the downset D beyond the four enumerated subsets; the log inequalities phi(1/2)=log 2>2/3 and log(4/3)<1/3; Theorem F; prize status | +| `UniversalLaw.P15.demand_one_obstruction` | One-piece obstruction O_1(D) is exactly {X} (finite enumeration) | `its one-piece obstruction is exactly {X}` | p15-price-boundary | the identity I_1(D)=D in general; cover semantics; the log inequalities; Theorem F; prize status | +| `UniversalLaw.P15.good_measure_three_quarters` | mu_p(D) = 3/4 at p = 1/2 as 3 of 4 quarter-weights (total 4 = 2^2) | `Nevertheless mu_p(D)=3/4` | p15-price-boundary | the product-measure semantics of mu_p; the identity min(1,-log mu_p(D))=log(4/3); the inequality log(4/3)<1/3; Theorem F; prize status | +| `UniversalLaw.P15.generator_prices_ninths` | Generator costs 1, 2/3, 2/3, 4/9 over denominator 9: 9, 6, 6, 4 | `The possible generator costs are1,2/3,2/3,4/9` | p15-price-boundary | admissibility of c=2/3 as a transformed price (phi(1/2)=log 2>2/3 is a log inequality); that extra generators cannot lower the minimum; Theorem F; prize status | +| `UniversalLaw.P15.minimum_generator_price_exceeds_third` | Minimum displayed generator cost 4/9, and 4/9 > 1/3 (1·9 < 4·3) | `covercost_c(O_1(D))=4/9 > 1/3 > log(4/3)` | p15-price-boundary | that the minimum over the four subsets is the exact optimal cover price (every cover of {X} containing a generator inside X, and extra nonnegative-price generators not lowering it, are set-theoretic steps of the source); the inequality 1/3 > log(4/3); that the same-palette extension to c<=phi(p) is false in general; Theorem F; prize status | +| `UniversalLaw.P15.benchmark_block_and_ground_sizes` | Benchmark sizes: 1·408+1 = 409 per block, 6·409 = 2454 vertices | `EACH original block has409 vertices and the original ground set has2454 vertices` | p15-realized-covers | the construction (P1)–(P2), Proposition P1, probability semantics; Theorem P2; prize status | +| `UniversalLaw.P15.four_block_supports_fifteen` | C(6,4) = 15 four-block supports | `H consists of all15 four-block subsets` | p15-realized-covers | the clutter structure of H or Proposition P1; Theorem P2; prize status | +| `UniversalLaw.P15.minimal_forbidder_counts` | (P10) 6·C(409,2) = 500616 and 15·409^4 = 419743994415 | `6*binom(409,2)=500616 internal pairs, 15*409^4=419743994415 crossing transversal quadruples.` | p15-realized-covers | that these numbers count the minimal forbidders (Proposition P1); Theorem P2; prize status | +| `UniversalLaw.P15.palette_816_from_two_label_classes` | K_H(408,…,408) = 816 as 408 + 408 | `K_H(408,...,408)=816` | p15-realized-covers | that the two label classes satisfy (P6) or that no smaller palette does (the palette optimum); Theorem P2; prize status | +| `UniversalLaw.P15.palette_815_fails_by_counting` | 2454−6 = 2448, 815·3 < 2448, 6·408 = 2448 | `omitting one vertex from each block leaves2448 vertices, each color holds at most3, and815*3<2448` | p15-realized-covers | that each colour class holds at most three vertices (the combinatorial step); Theorem P2; prize status | +| `UniversalLaw.P15.whole_ground_chromatic_818` | 2454/3 = 818 exactly (818·3 = 2454) | `needs818 colors, since2454/3=818` | p15-realized-covers | the chromatic number of the ground set (K_H(d+1)) or the palette argument; Theorem P2; prize status | +| `UniversalLaw.P15.elementary_palette_formula_instances` | (P9) right-hand side at the benchmark: max(408,⌈2448/3⌉) = 816, max(409,⌈2454/3⌉) = 818; 3+1 = 4 | `K_H(d)=max(max_i d_i, ceil(sum_i d_i/s))` | p15-realized-covers | the formula (P9) itself (cyclic-word construction and lower bounds); that K_H of the section-6 benchmark equals the (P9) value; Theorem P2; prize status | +| `UniversalLaw.P15.macro_triangle_three_colors` | (P9) right-hand side for the macro triangle at unit demands: max(1,⌈3/1⌉) = 3 | `The macro triangle at unit demands needs3 colors` | p15-realized-covers | that the triangle needs 3 colours (the formula (P9) and its applicability); the comparison with a size-two edge-load formula; Theorem P2; prize status | +| `UniversalLaw.P15.ceil_block_over_capacity_instances` | ⌈(a·d+1)/a⌉ = d+1 at five (a,d) instances including (1,408) | `ceil(n_i/a_i)=d_i+1` | p15-realized-covers | the identity for all a_i >= 1; that the whole-ground chromatic number is K_H(d+1); Theorem P2; prize status | +| `UniversalLaw.P15.block_occupancy_one_percent` | 409·100 = 40900 behind 409p = 1/100 at p = 1/40900 | `each block's occupancy probability is at most409p=1/100` | p15-realized-covers | the union bound giving occupancy probability at most 409p; probability semantics; Theorem P2; prize status | +| `UniversalLaw.P15.low_failure_union_bound_arithmetic` | (P11) 500616/40900^2 + 15/100^4 = 2449227/8180000000 < 3/10000, cross-multiplied; 10000−3 = 9997 | `=2449227/8180000000 < 3/10000` | p15-realized-covers | the union bound Q <= ..., the independence of block occupancies, that Q = 1 - mu_p(D) is the global bad probability, probability semantics, display (P8); Theorem P2; prize status | +| `UniversalLaw.P15.cover_price_numerator_and_denominator_positive` | 6/(40900^409) > 0 as 0 < 6 and 0 < 40900^409 (core Nat.pow_pos) | `6/(40900^409)>0` | p15-realized-covers | the price identity 6/(40900^409) for the six-generator cover (the kernel does not evaluate the power, only its positivity); probability semantics; Theorem P2; prize status | +| `UniversalLaw.P15.rho_star_endpoints_adjacent` | Published rho_star endpoints are adjacent 20-digit decimals | `0.84547981724898672067 < rho_star` | p15-full-price | that rho_star = 1/(3 - log(3e - 2)) lies between them (needs Real.exp/Real.log; Mathlib lane); Theorem F; prize status | +| `UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths` | Upper endpoint below 6/7: …68·7 < 6·10^20 | `< 0.84547981724898672068 < 6/7` | p15-full-price | rho_star < 6/7 as a statement about the real number; h_star > 7/6; Theorem F; prize status | +| `UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths` | 16/27 < 6/7 (16·7 < 6·27) and 16/27 below the published lower endpoint | `gives the stronger factor16/27 on its smaller domain` | p15-full-price | Theorem (T1) or its domain p_v <= 1/4; that 16/27 < rho_star as a real-number statement; Theorem F; prize status | +| `UniversalLaw.P15.minimal_block_size_instances` | 1·2+1 = 3 and 2a+1 <= ad+1 at five (a,d) instances with d >= 2 | `Our n=ad+1 and d>=2 imply n>=2a+1.` | p15-full-price | the implication for all a >= 1, d >= 2; the binomial tail comparison (F9)–(F11); the sharpness argument of section 5; Theorem F; prize status | +| `UniversalLaw.P15.e_rational_bounds_ordering` | 31967/11760 < 87/32 and 87/32 − 31967/11760 = 11/23520, cross-multiplied | `e < 31967/11760 < 87/32, 87/32-31967/11760=11/23520.` | p15-full-price | e < 31967/11760 (exponential series plus geometric tail); any statement about e; Theorem F; prize status | +| `UniversalLaw.P15.exp_eleven_sixths_taylor_certificate` | Degree-5 Taylor partial sum of exp(11/6) minus 197/32 equals 26081/933120 > 0 | `sum_(j=0)^5 (11/6)^j/j! -197/32=26081/933120>0` | p15-full-price | that the partial sum is below exp(11/6) (positivity of the omitted terms is analysis); 197/32 < exp(11/6); Theorem F; prize status | +| `UniversalLaw.P15.h_star_rational_certificate_constants` | 3·87 − 2·32 = 197 and 3·6 − 11 = 7 behind 3e−2 < 197/32 and h_star > 7/6 | `Therefore 3e-2<197/327/6 and rho_star<6/7.` | p15-full-price | e < 87/32, 197/32 < exp(11/6), monotonicity of log, h_star > 7/6 and rho_star < 6/7 as real-number statements; Theorem F; prize status | +| `UniversalLaw.P15.t3_ratio_at_minimal_block` | (T3) at a = 1, n = 3: 4^3 = 4^1·4^2, 4^2 = 16, 3^3 = 27, (4/3)(4/9)^1 = 16/27 | `= (4^(a+1))/(3^n) <= (4/3)*(4/9)^a <=16/27.` | p15-price-budget | the ratio chain (T3) (which uses (T2), p_v <= 1/4 and independence); Theorem (T1); the demand-one counterexample's applicability at a = d = 1; prize status | +| `UniversalLaw.P15.t3_bound_finite_instances` | (T3) final inequalities at seven (a,n) pairs with n >= 2a+1 and at a = 1..6 | `<= (4/3)*(4/9)^a <=16/27` | p15-price-budget | the inequalities for all a >= 1, n >= 2a+1; (T2); Theorem (T1); prize status | +| `UniversalLaw.P15.explicit_rational_price_above_p` | c = p + p^2/2 = 81801/3345620000 at p = 1/40900, and c > p | `c=p+p^2/2=81801/3345620000` | p15-price-budget | admissibility c <= phi(p) (the integral inequality); the price bound (T7); that the 816-label cover is valid at these prices; prize status | diff --git a/formal/README.md b/formal/README.md index a39337931..d7a9695c0 100644 --- a/formal/README.md +++ b/formal/README.md @@ -1,4 +1,4 @@ -# Formal package: SIDE24 arithmetic skeleton (Lean 4, core only) +# Formal package: SIDE24 and P15 arithmetic skeletons (Lean 4, core only) Scientific effect: **NONE**. This directory is the second package in the repository's formal-verification lane. The lane's contract is the @@ -24,17 +24,38 @@ guide's historical work-offer table this is the **first step only** of the "Nume formalizer" offer; the exact coefficient definition and the proof-producing enclosure pipeline are not supplied. +The package also holds 28 targets in namespace +`UniversalLaw.P15` (three modules under `UniversalLaw/P15/`) restating the exact +finite arithmetic displayed in, or immediately implied by, four P15 price/cover notes pinned at +`Math-@760340e9…` (`frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md`, +`…/P15_REALIZED_COVERS.md`, `frontiers/full_price_20260924/PROOF.md`, +`frontiers/price_budget_20260924/PROOF.md`, byte copies under +`sources/p15_v1/`): the demand-one counterexample's four-subset enumeration +(`mu_p(D) = 3/4`, prices `1, 2/3, 2/3, 4/9`, `4/9 > 1/3`), the 816-label +benchmark counts (`6·C(409,2) = 500616`, `15·409⁴ = 419743994415`, `815·3 < 2448`, +`2454/3 = 818`, the (P9) and (P11) evaluations), and the `rho_star` endpoint and +rational-certificate arithmetic (`…67 / …68` adjacent, `…68·7 < 6·10²⁰`, +`16/27 < 6/7`, the (T3) instance `16/27`). It does **not** cover the logarithm +inequalities those notes prove, the `rho_star` enclosure itself, `p_star`, the +probability semantics of `mu_p`, Theorems F, T1 or P2, Proposition P1, or any +prize status; [SCOPE.md](SCOPE.md#p15-exact-arithmetic-added-2026-10-10) lists +the boundary target by target. + ## Layout | Path | Role | |---|---| | `lean-toolchain`, `lakefile.toml`, `lake-manifest.json` | Pinned toolchain `leanprover/lean4:v4.34.1`; Lake package `UniversalLaw` with **no** dependencies (`dependency_revisions` is empty and the gate checks the lock agrees) | -| `UniversalLaw.lean` | Root module; imports exactly the three registered modules | +| `UniversalLaw.lean` | Root module; imports exactly the six registered modules | | `UniversalLaw/Side24/Ledger.lean` | 17 targets: pairing count, image constant, `60E < 10^-108`, Taylor partial sum of `exp(288/125)`, odd-block minors, section-4 exponent bounds, density-comparison order of magnitude | | `UniversalLaw/Side24/ConeMoments.lean` | 10 targets: conditional variances, transverse covariance thirds, `D_1 = 4/3`, `D_2 = 29/6 − √6` algebra, cube-root simplification, Hessian block eigenvalues | | `UniversalLaw/Side24/Endpoints.lean` | 4 targets: the published 20-digit endpoints as integers — adjacency, ordering, magnitude. **Not an enclosure of the coefficient.** | +| `UniversalLaw/P15/PriceBoundary.lean` | 6 targets: the demand-one counterexample on `{x,y}` enumerated as Boolean pairs — good sets, obstruction `{X}`, `mu_p(D) = 3/4` in quarters, prices `9, 6, 6, 4` in ninths, minimum `4/9 > 1/3`. **Not the log inequalities or the counterexample's conclusion.** | +| `UniversalLaw/P15/RealizedCovers.lean` | 12 targets: 816-label benchmark sizes and counts (P10), palette counts `816`, `815·3 < 2448`, `818`, the (P9) right-hand side at the displayed inputs, `⌈(ad+1)/a⌉ = d+1` instances, the (P11) rational cross-multiplied, `6/40900⁴⁰⁹ > 0` as positivity of numerator and power (core `Nat.pow_pos`). **Not Proposition P1, Theorem P2 or the union bound.** | +| `UniversalLaw/P15/FullPrice.lean` | 10 targets: the published `rho_star` endpoints as integers in `10⁻²⁰` units (adjacent, upper `< 6/7`), `16/27 < 6/7`, `n ≥ 2a+1` instances, the section-6 rational certificates (`31967/11760 < 87/32`, the degree-5 Taylor numerator of `exp(11/6)`, `197`, `7/6`), the (T3) instance `16/27` and finite instances, the explicit price `81801/3345620000 > 1/40900`. **Not an enclosure of `rho_star`, not Theorem F or T1.** | | `sources/side24_v1/` | Byte copies of the two pinned Layer 0 sources (`PROOF.md`, `ENCLOSURE.json`) | -| `manifest.json` | Evidence sidecar: package identity, toolchain, allowed axioms, SHA-256 of every bound file, pinned sources, 31 targets with verbatim informal anchors and `does_not_claim`, executable negative controls | +| `sources/p15_v1/` | Byte copies of the four pinned P15 notes at `Math-@760340e9…` | +| `manifest.json` | Evidence sidecar: package identity, toolchain, allowed axioms, SHA-256 of every bound file, pinned sources, 59 targets with verbatim informal anchors and `does_not_claim`, executable negative controls | | `SCOPE.md` | Exact coverage and "not established" per target; the review contract | | `ALIGNMENT.md` | Generated from the manifest (`--write-alignment`); never hand-edited | | `GLOSSARY.md` | Descriptive mapping of project terms to standard objects and Lean availability | @@ -52,9 +73,11 @@ enclosure pipeline are not supplied. A receipt supplied by a caller is untrusted until matched to the actual workflow run and commit. - `alignment_status` is **`PENDING_INDEPENDENT_REVIEW`**. The author is - Anthropic / Claude via a Cursor cloud agent (2026-09-27); an alignment record - from the same provider, family or agent is refused by the validator. The - manifest cannot say `ACCEPTED`. + Anthropic / Claude — via a Cursor cloud agent (2026-09-27) for the Side24 + modules and via Claude Code session `session_01Cz7WZybv8znP64SpPj6sWY` + (2026-10-10) for the P15 modules, both at zero organizational-independence + credit; an alignment record from the same provider, family or agent is refused + by the validator. The manifest cannot say `ACCEPTED`. - In the ladder of [#95](https://github.com/d6g8k5htny-coder/main/issues/95) (L0 prose … L5 proof-assistant-checked, `verification_level` separate from scientific status) a target with a trusted `kernel-checked` receipt is L5 @@ -87,7 +110,7 @@ The source-only gate prints `SOURCE_IDENTITY_PASS (not a Lean build or scientific acceptance): `. `--run-lean` removes `.lake/build`, runs `lake build`, `leanchecker` on every module, a transitive `#print axioms` audit restricted to `propext` / `Classical.choice` / `Quot.sound`, an -elaborated-type capture, and the executable negative controls: seven +elaborated-type capture, and the executable negative controls: fifteen tightened-or-wrong statements written into a scratch copy of the Lean text (each must be rejected by Lean), plus `sorry`, an indirectly imported custom axiom, and `native_decide` (each must be rejected by the axiom gate). It then @@ -126,8 +149,9 @@ keys. ## Why core Lean and not Mathlib here -Everything the arithmetic skeleton needs is `Nat`/`Int` and `decide`, which the -kernel evaluates with GMP-backed literals in well under a second. That keeps +Everything the arithmetic skeleton needs is `Nat`/`Int` and `decide` (plus core +`Nat.pow_pos` for one positivity conjunct), which the kernel evaluates with +GMP-backed literals in well under a second. That keeps this package's CI cost at seconds with no multi-gigabyte cache. The Math- pilot already carries the Mathlib dependency (revision `d13f23b723b8a846827a245b89c10fc7d3f11612`, same Lean `v4.34.1`); any statement diff --git a/formal/REVIEW_LANE.md b/formal/REVIEW_LANE.md index 916b3d89b..1a66d8b5d 100644 --- a/formal/REVIEW_LANE.md +++ b/formal/REVIEW_LANE.md @@ -11,19 +11,27 @@ boundary") and is restated for this package in ## Who may review Anyone whose provider, family **and** agent all differ from the author's -(`Anthropic` / `Claude` / Cursor cloud agent, 2026-09-27). The validator refuses -a record where any of the three coincides, case-insensitively. Same-provider +(`Anthropic` / `Claude` / the `author.agent` string of `manifest.json`: a +Cursor cloud agent on 2026-09-27 for the Side24 modules and Claude Code session +`session_01Cz7WZybv8znP64SpPj6sWY` on 2026-10-10 for the P15 modules). The validator refuses +a record where any of the three coincides, case-insensitively. The `agent` check +is an exact (trimmed, case-folded) string comparison against the single +`author.agent` string, which names both agents; a reviewer's `agent` must be +neither of the two agents named in it, not merely different from the combined +string, and the validator cannot see that distinction on its own — the +integrator checks it by hand and should re-check it when main #315 lands. +Same-provider reviewers earn zero organizational-independence credit whatever they write; this is the repository's existing rule and it applies to Lean text as to prose. ## What the reviewer does Read the exact current head first; a changed source, scope, toolchain or -manifest stales any earlier record. Then, for each of the 31 targets in +manifest stales any earlier record. Then, for each of the 59 targets in `manifest.json`: 1. Locate the `informal_anchor` in the pinned local source copy under - `sources/side24_v1/` and read its context. + `sources/side24_v1/` or `sources/p15_v1/` and read its context. 2. Read the Lean **statement** (not the proof) and its docstring. Decide whether it is the informal statement at the scope stated in `SCOPE.md`: same constants, same quantifiers, same direction of inequality, same @@ -56,7 +64,7 @@ Two files under `reviews/`, named `_.md` and `.json`: the intended outcome. `manifest_sha256` is the SHA-256 of `formal/manifest.json` at the reviewed commit; `scope_sha256` is the hash of `formal/SCOPE.md` recorded in the manifest's `files`. `targets` is exactly - the 31 manifest target names. `evidence` points to the committed Markdown + the 59 manifest target names. `evidence` points to the committed Markdown record by repository, 40-character commit, path and SHA-256. Validate: `python3 tools/formal_gate_check.py --alignment formal/reviews/.json`. @@ -81,8 +89,10 @@ hash, new `--run-lean` receipt) or fix the anchor, then re-review. ## Current state -All 31 targets: authored by Anthropic / Claude via a Cursor cloud agent on -2026-09-27; `proved` at source; `kernel-checked` only in the receipt of a +All 59 targets: authored by Anthropic / Claude (31 Side24 targets via a Cursor +cloud agent on 2026-09-27; 28 P15 targets via Claude Code session +`session_01Cz7WZybv8znP64SpPj6sWY` on 2026-10-10, organizational-independence +credit 0); `proved` at source; `kernel-checked` only in the receipt of a trusted run; alignment `PENDING_INDEPENDENT_REVIEW`. No record other than the template exists. Record actual pickup in the relevant current pull request or work discussion under the [current workflow](../governance/OP-WORKFLOW-20260930.md) so two diff --git a/formal/SCOPE.md b/formal/SCOPE.md index dea7de288..81d768cd2 100644 --- a/formal/SCOPE.md +++ b/formal/SCOPE.md @@ -1,15 +1,20 @@ -# Exact formal scope and alignment review — SIDE24 arithmetic skeleton +# Exact formal scope and alignment review — SIDE24 and P15 arithmetic skeletons -Scientific effect: NONE. This package offers 31 exact integer statements that are -the arithmetic skeleton of the SIDE24 coefficient note, `Math-` commit +Scientific effect: NONE. This package offers 59 exact integer statements. Thirty-one +(namespace `UniversalLaw.Side24`) are the arithmetic skeleton of the SIDE24 +coefficient note; twenty-eight (namespace `UniversalLaw.P15`, added 2026-10-10) +are the exact finite arithmetic displayed in four P15 price/cover notes and are +scoped in the section [P15 exact arithmetic](#p15-exact-arithmetic-added-2026-10-10) +below. The SIDE24 note is `Math-` commit `9d7b6802424fb4715b31999066aafca8ee2f3cca`, `coefficients/side24_v1/PROOF.md` (10,272 bytes, SHA-256 `c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769`), and of its published `ENCLOSURE.json` (1,090 bytes, SHA-256 `72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811`). Both sources -are preserved byte-identically under `sources/side24_v1/`. Core Lean has no -rational type, so each rational identity is stated as the equivalent -cross-multiplied integer identity; the docstring gives the rational form and the -independent alignment review must check that the two agree. +are preserved byte-identically under `sources/side24_v1/`. Core Lean's `Rat` is +not kernel-decidable by `decide` (its `DecidableEq` instance does not reduce), so +each rational identity is stated as the equivalent cross-multiplied identity over +`Nat`; the docstring gives the rational form and the independent alignment +review must check that the two agree. This package addresses the **first step only** of the "Numerical formalizer" work offer in [docs/FORMAL_VERIFICATION.md](../docs/FORMAL_VERIFICATION.md). It does @@ -43,22 +48,85 @@ or `log` bounds, the Stirling remainder, Gaussian conditioning, the cone integrals, the parent lifetime theorem, elder selection or Kac–Rice. The Layer 0 status of D3 in [STATUS.md](../STATUS.md) is unchanged by anything here. +## P15 exact arithmetic (added 2026-10-10) + +Scientific effect: NONE. Twenty-eight targets in namespace `UniversalLaw.P15` +(modules `UniversalLaw/P15/PriceBoundary.lean`, `RealizedCovers.lean`, +`FullPrice.lean`) restate, as cross-multiplied integer facts proved by `decide` +(one positivity conjunct by core `Nat.pow_pos`), the exact finite arithmetic that +four P15 notes display or immediately imply. Four conjuncts — `1·1 + 1 = 2`, +`3 + 1 = 4`, `16·10²⁰ < 27·(lower endpoint)`, `3·6 − 11 = 7` — are not displayed +in the registered source and are marked as such in their rows and docstrings. +All four notes are pinned at +`Math-` commit `760340e921ac4ceda296b8118da936f1133e956e` and preserved +byte-identically under `sources/p15_v1/`: + +| Source id | Original path | Bytes | SHA-256 | +|---|---|---|---| +| `p15-price-boundary` | `frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md` | 2,266 | `498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b` | +| `p15-realized-covers` | `frontiers/three_fronts_20260924/P15_REALIZED_COVERS.md` | 11,467 | `c0dbb821fb57b685a20cc321e4074456f39a9697f3104afd1f728e4732179bb9` | +| `p15-full-price` | `frontiers/full_price_20260924/PROOF.md` | 11,352 | `87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9` | +| `p15-price-budget` | `frontiers/price_budget_20260924/PROOF.md` | 7,935 | `3b79d2de60d77df9dd0d81cea60935d3dbceeb26fcf2d38d62667a425180a535` | + +The notes' author is OpenAI / ChatGPT; each carries its own disposition +("author-side mathematical derivation", nonauthor review open), which is +transcribed here and not re-derived. The Lean text was written by Anthropic / +Claude (Claude Code session `session_01Cz7WZybv8znP64SpPj6sWY`, 2026-10-10) at +zero organizational-independence credit. Core Lean's `Rat` is not +kernel-decidable by `decide` (its `DecidableEq` instance does not reduce), so each +rational identity is the equivalent cross-multiplied identity over `Nat`, with +the rational form in the docstring, and the independent alignment review must +check that the two agree. Binomial coefficients use the exact multiplicative recursion +`C(n,k+1) = C(n,k)(n−k)/(k+1)`, ceilings use `(a+b−1)/b`, and the two-coordinate +ground set of the counterexample is enumerated as the four Boolean pairs. + +| Targets | Exact coverage | Not established | +|---|---|---| +| `smallest_member_block_size` | `1·1 + 1 = 2`: block size of the demand-one member `a_1 = d_1 = 1`, `X = {x,y}` (the formula `n_i = a_i d_i + 1` is display (P1) of `p15-realized-covers`, not of this note) | The realized-cover family or theorem | +| `demand_one_good_sets`, `demand_one_obstruction` | Of the four subsets of `{x,y}`, the capacity-one filter keeps exactly `∅, {x}, {y}`; its complement is exactly `{X}` | The downset `D` beyond this enumeration; `I_1(D) = D` in general; cover semantics | +| `good_measure_three_quarters` | At `p_x = p_y = 1/2` the four quarter-weights total `4 = 2²` and the good sets total `3`, i.e. `mu_p(D) = 3/4` cross-multiplied | The product-measure semantics of `mu_p`; `min(1, −log mu_p(D)) = log(4/3)`; `log(4/3) < 1/3` | +| `generator_prices_ninths`, `minimum_generator_price_exceeds_third` | At `c_x = c_y = 2/3` the generator prices over `9` are `9, 6, 6, 4` (`1, 2/3, 2/3, 4/9`); their minimum is `4`; `4/9 > 1/3` as `1·9 < 4·3` | That `phi(1/2) = log 2 > 2/3` (admissibility of `c`); that the minimum over subsets of `X` is the exact optimal cover price (the set-theoretic steps); `1/3 > log(4/3)`; **the source's conclusion that the same-palette extension to `c ≤ phi(p)` is false in general** | +| `benchmark_block_and_ground_sizes`, `four_block_supports_fifteen` | `1·408 + 1 = 409`, `6·409 = 2454`, `C(6,4) = 15` | The construction (P1)–(P2), Proposition P1 | +| `minimal_forbidder_counts` | (P10) `6·C(409,2) = 500616`, `15·409⁴ = 419743994415` | That these count the minimal forbidders (Proposition P1) | +| `palette_816_from_two_label_classes`, `palette_815_fails_by_counting`, `whole_ground_chromatic_818` | `408 + 408 = 816`; `2454 − 6 = 2448`, `815·3 < 2448`, `6·408 = 2448`; `2454/3 = 818` exactly | Theorem P2 (cover iff `K ≥ K_H(d)`); that the palette satisfies (P6) and no smaller one does; that a colour class holds at most three vertices; the chromatic number of the ground set | +| `elementary_palette_formula_instances`, `macro_triangle_three_colors`, `ceil_block_over_capacity_instances` | The right-hand side of (P9) evaluated at `(b,s,d_i) = (6,3,408)`, `(6,3,409)`, `(3,1,1)`; `3 + 1 = 4` (not displayed: `s + 1 = 4` with `s = 3`); `⌈(ad+1)/a⌉ = d+1` at five `(a,d)` instances | The formula (P9) itself; that the benchmark's `K_H` is given by (P9); the general ceiling identity; the triangle's chromatic claim | +| `block_occupancy_one_percent`, `low_failure_union_bound_arithmetic`, `cover_price_numerator_and_denominator_positive` | `409·100 = 40900`; (P11) `500616/40900² + 15/100⁴ = 2449227/8180000000 < 3/10000` cross-multiplied; `10000 − 3 = 9997`; `6/40900⁴⁰⁹ > 0` as `0 < 6` and `0 < 40900⁴⁰⁹` (core `Nat.pow_pos`; the power is not evaluated) | The union bound and the independence of block occupancies; that `Q = 1 − mu_p(D)`; the price identity `6/40900⁴⁰⁹` for the six-generator cover; (P4)–(P5), (P8) | +| `rho_star_endpoints_adjacent`, `rho_star_upper_endpoint_below_six_sevenths` | The published 20-digit endpoints of (F3), as integers in `10⁻²⁰` units, are adjacent; `…68·7 < 6·10²⁰` (upper endpoint `< 6/7`) | **That `rho_star = 1/(3 − log(3e − 2))` lies between the endpoints**; `rho_star < 6/7` as a real-number statement; Theorem F (F2); the constant's optimality | +| `sixteen_twentysevenths_below_six_sevenths` | `16·7 < 6·27`; `16·10²⁰ < 27·(lower endpoint)` (not displayed; implied by the displayed numbers) | Theorem (T1) or its domain `p_v ≤ 1/4`; that `16/27 < rho_star` as a real-number statement | +| `minimal_block_size_instances` | `1·2 + 1 = 3`; `2a + 1 ≤ ad + 1` at five `(a,d)` with `d ≥ 2` | The implication for all `a ≥ 1, d ≥ 2`; the binomial tail comparison (F9)–(F11); the sharpness argument | +| `e_rational_bounds_ordering`, `exp_eleven_sixths_taylor_certificate`, `h_star_rational_certificate_constants` | `31967·32 < 87·11760`; `87/32 − 31967/11760 = 11/23520` cross-multiplied; degree-5 Taylor numerator of `exp(11/6)` equals `197·29160 + 26081` over `933120 = 6⁵·5! = 32·29160`; `3·87 − 2·32 = 197`; `3·6 − 11 = 7` (not displayed; the arithmetic behind `h_star > 7/6`) | `e < 31967/11760`, `e < 87/32`, that the partial sum is below `exp(11/6)`, `197/32 < exp(11/6)`, monotonicity of `log`, `h_star > 7/6`, `rho_star < 6/7` as real-number statements | +| `t3_ratio_at_minimal_block`, `t3_bound_finite_instances` | (T3) at `a = 1, n = 3`: `4³ = 4¹·4²`, `4² = 16`, `3³ = 27`, `(4/3)(4/9)¹ = 16/27`; `4^(a+1)·27 ≤ 16·3ⁿ` at seven `(a,n)` with `n ≥ 2a+1`; `4·4ᵃ·27 ≤ 16·3·9ᵃ` for `a = 1..6` | The ratio chain (T3) in general (it uses (T2), `p_v ≤ 1/4` and independence); (T2); Theorem (T1) | +| `explicit_rational_price_above_p` | `2·40900 + 1 = 81801`, `2·40900² = 3345620000`, `3345620000 < 81801·40900` (i.e. `c = p + p²/2 = 81801/3345620000 > p` at `p = 1/40900`) | Admissibility `c ≤ phi(p)`; the price bound (T7); validity of the 816-label cover at these prices | + +None of these targets is Theorem F (F2), Theorem (T1), Theorem P2, Proposition +P1, the enclosure (F3) of `rho_star`, any inequality involving `log`, `exp` or +`e`, the probability semantics of `mu_p`, the union bound (P11), `p_star`, the +P15-B amalgamation, or any prize status; every prize claim in this repository +carries `original_prize_closed: false` and nothing here touches it. No Lean +`Prop` stating any of those research claims exists in this package, so their +formal-progress label stays `none`; the targets above are arithmetic +sub-identities whose own label is `proved` at source and `kernel-checked` only +in a trusted receipt. The Layer 0 dispositions of the four notes are unchanged. + ## Review contract Identical to the Math- lane contract. The manifest is an evidence sidecar, not a scientific register. A trusted successful `--run-lean` execution establishes -kernel evidence only for these 31 target declarations and their displayed +kernel evidence only for these 59 target declarations and their displayed hypotheses, relative to Lean's kernel, standard foundations and the pinned toolchain. Independent review must compare each Lean statement (and each cross-multiplication) to this scope note and the informal anchor in `manifest.json`. Review author, provider, family and agent must be explicit and -differ from the author's (`Anthropic` / `Claude` / Cursor cloud agent). Validate +differ from the author's (`Anthropic` / `Claude` / the `author.agent` string of +`manifest.json`, which names the Cursor cloud agent of 2026-09-27 for the Side24 +modules and Claude Code session `session_01Cz7WZybv8znP64SpPj6sWY` of 2026-10-10 +for the P15 modules). Validate a record with `python3 tools/formal_gate_check.py --alignment review.json`; the validator checks structure, digests, coverage and lineage, and does not authenticate that a review happened. The record contains disposition `ACCEPTED`, `manifest_sha256`, `scope_sha256` -(the hash of this file as bound in the manifest), exactly the 31 targets, +(the hash of this file as bound in the manifest), exactly the 59 targets, author/reviewer objects with provider/family/agent, and evidence repository/path/40-character commit/sha256. At publication no independent alignment review is claimed. A fresh source, scope, toolchain or manifest digest diff --git a/formal/UniversalLaw.lean b/formal/UniversalLaw.lean index ff12fa0eb..4d24df02e 100644 --- a/formal/UniversalLaw.lean +++ b/formal/UniversalLaw.lean @@ -1,9 +1,12 @@ import UniversalLaw.Side24.Ledger import UniversalLaw.Side24.ConeMoments import UniversalLaw.Side24.Endpoints +import UniversalLaw.P15.PriceBoundary +import UniversalLaw.P15.RealizedCovers +import UniversalLaw.P15.FullPrice /-! -# Universal Law — main-side formal package (SIDE24 arithmetic skeleton) +# Universal Law — main-side formal package (SIDE24 and P15 arithmetic skeletons) Root module. `tools/formal_gate_check.py` requires this file to import exactly the modules registered in `formal/manifest.json`, derives the target inventory diff --git a/formal/UniversalLaw/P15/FullPrice.lean b/formal/UniversalLaw/P15/FullPrice.lean new file mode 100644 index 000000000..0cdea915d --- /dev/null +++ b/formal/UniversalLaw/P15/FullPrice.lean @@ -0,0 +1,125 @@ +/-! +# P15 full transformed-price budget — endpoint and certificate arithmetic + +Informal sources (Layer 0, byte-pinned), both at `Math-` commit +`760340e921ac4ceda296b8118da936f1133e956e`: + +* `frontiers/full_price_20260924/PROOF.md`, 11352 bytes, SHA-256 + `87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9` + (object P15-FULL-TRANSFORMED-PRICE-20260924-v1, author OpenAI / ChatGPT): + the published 20-digit endpoints of `rho_star` in display (F3), the comparison + with `6/7` and `16/27`, the block-size inequality `n ≥ 2a + 1`, and the short + rational certificates of section 6. +* `frontiers/price_budget_20260924/PROOF.md`, 7935 bytes, SHA-256 + `3b79d2de60d77df9dd0d81cea60935d3dbceeb26fcf2d38d62667a425180a535` + (object P15-TRANSFORMED-PRICE-BUDGET-20260924-v1, author OpenAI / ChatGPT): + the ratio chain (T3) at its equality instance `a = 1, n = 3` and at finitely + many further instances, and the explicit rational price of section 4. + +The endpoints are transcribed as natural numbers in units of `10^-20`. Core +Lean's `Rat` is not kernel-decidable by `decide` (its `DecidableEq` instance does +not reduce), so every rational statement is the equivalent cross-multiplied +statement over `Nat` with the rational form in the docstring. + +What this module does **not** establish: that `rho_star = 1/(3 − log(3e − 2))` +lies between the published endpoints (that needs `Real.exp`, `Real.log` and an +enclosure, which belong to the Mathlib lane), `e < 87/32`, `197/32 < exp(11/6)`, +`h_star > 7/6`, `rho_star < 6/7` as a statement about the real number, the +hazard interpolation lemma (F4)–(F8), the binomial tail comparison (F9)–(F11), +Theorem F (F2), Theorem (T1), the inequalities (T2) and (T3) in general, the +admissibility `c <= phi(p)` of the explicit price, `p_star = 1 − exp(−1)`, or any +prize status. Nothing here changes any Layer 0 status. +-/ + +namespace UniversalLaw.P15 + +/-- `0.84547981724898672067` and `0.84547981724898672068` in units of `10^-20`: +the published lower and upper endpoints of display (F3). -/ +def rhoLower : Nat := 84547981724898672067 +def rhoUpper : Nat := 84547981724898672068 + +/-- Factorial on `Nat`; kept local so that the library has no dependencies. -/ +def fact : Nat → Nat + | 0 => 1 + | n + 1 => (n + 1) * fact n + +/-- Numerator of the degree-5 Taylor partial sum of `exp(11/6)` after clearing +the denominator `6^5 · 5! = 933120`: `∑_{j=0}^{5} 11^j · 6^(5-j) · 5!/j!`. -/ +def expElevenSixthsNumerator : Nat := + (List.range 6).foldl (fun acc j => acc + 11 ^ j * 6 ^ (5 - j) * (fact 5 / fact j)) 0 + +/-- Source (F3): "0.84547981724898672067 < rho_star < 0.84547981724898672068 < 6/7". +The published endpoints are distinct and adjacent on the 20-digit grid. -/ +theorem rho_star_endpoints_adjacent : rhoLower < rhoUpper ∧ rhoUpper = rhoLower + 1 := by decide + +/-- Source (F3): "< 0.84547981724898672068 < 6/7". The upper endpoint is below +`6/7`: `rhoUpper / 10^20 < 6/7 ⇔ rhoUpper · 7 < 6 · 10^20`. -/ +theorem rho_star_upper_endpoint_below_six_sevenths : rhoUpper * 7 < 6 * 10 ^ 20 := by decide + +/-- Source: "The prior probability<=1/4 theorem ... gives the stronger factor +16/27 on its smaller domain" (source: "factor16/27"). Stronger means smaller: +`16/27 < 6/7 ⇔ 16 · 7 < 6 · 27`, and `16/27` is also below the published lower +endpoint: `16/27 < rhoLower / 10^20 ⇔ 16 · 10^20 < 27 · rhoLower`. The second +comparison is not displayed in the source; it is implied by the displayed numbers. -/ +theorem sixteen_twentysevenths_below_six_sevenths : + 16 * 7 < 6 * 27 ∧ 16 * 10 ^ 20 < 27 * rhoLower := by decide + +/-- Source: "Our n=ad+1 and d>=2 imply n>=2a+1." and (section 5) "Take one block, +a=1,d=2,n=3". Checked: `1 · 2 + 1 = 3` and `2a + 1 ≤ ad + 1` at five `(a, d)` +instances with `d ≥ 2`. The general implication is not checked. -/ +theorem minimal_block_size_instances : + 1 * 2 + 1 = 3 ∧ + ∀ p, p ∈ [(1, 2), (1, 3), (2, 2), (3, 5), (4, 2)] → 2 * p.1 + 1 ≤ p.1 * p.2 + 1 := by + decide + +/-- Source (section 6): "e < 31967/11760 < 87/32, 87/32-31967/11760=11/23520." +Checked: `31967/11760 < 87/32 ⇔ 31967 · 32 < 87 · 11760`, and the difference +`87/32 − 31967/11760 = 11/23520 ⇔ (87·11760 − 31967·32) · 23520 = 11 · (32·11760)`. +The bound `e < 31967/11760` (series plus geometric tail) is not checked. -/ +theorem e_rational_bounds_ordering : + 31967 * 32 < 87 * 11760 ∧ (87 * 11760 - 31967 * 32) * 23520 = 11 * (32 * 11760) := by + decide + +/-- Source (section 6): "sum_(j=0)^5 (11/6)^j/j! -197/32=26081/933120>0". +Over the common denominator `933120 = 6^5 · 5! = 32 · 29160`: +the partial sum numerator equals `197 · 29160 + 26081`, i.e. the difference is +`26081/933120 > 0`. That the partial sum is below `exp(11/6)` is analysis. -/ +theorem exp_eleven_sixths_taylor_certificate : + 6 ^ 5 * fact 5 = 933120 ∧ 32 * 29160 = 933120 ∧ + expElevenSixthsNumerator = 197 * 29160 + 26081 ∧ 0 < 26081 := by decide + +/-- Source (section 6): "Therefore 3e-2<197/327/6 and +rho_star<6/7." The two rational constants: `3 · (87/32) − 2 = 197/32 ⇔ +3 · 87 − 2 · 32 = 197`, and `3 − 11/6 = 7/6 ⇔ 3 · 6 − 11 = 7`. The second identity +is not displayed in the source; it is the arithmetic behind `h_star > 7/6` once +`log(3e − 2) < 11/6`. The inequalities involving `e`, `exp`, `log`, `h_star` and +`rho_star` are not checked. -/ +theorem h_star_rational_certificate_constants : 3 * 87 - 2 * 32 = 197 ∧ 3 * 6 - 11 = 7 := by + decide + +/-- Source (T3, price_budget): "= (4^(a+1))/(3^n) <= (4/3)*(4/9)^a <=16/27" at the +equality instance `a = 1`, `n = 3`: `(1/4)^(n−a−1)/(3/4)^n = 4^(a+1)/3^n` needs +`4^n = 4^(n−a−1) · 4^(a+1)`, i.e. `4^3 = 4^1 · 4^2`; then `4^2 = 16`, `3^3 = 27`, +and `(4/3)(4/9)^1 = 16/27` is `4 · 4^1 = 16`, `3 · 9^1 = 27`. -/ +theorem t3_ratio_at_minimal_block : + 4 ^ 3 = 4 ^ (3 - 1 - 1) * 4 ^ (1 + 1) ∧ 4 ^ (1 + 1) = 16 ∧ 3 ^ 3 = 27 ∧ + 4 * 4 ^ 1 = 16 ∧ 3 * 9 ^ 1 = 27 := by decide + +/-- Source (T3, price_budget): "<= (4/3)*(4/9)^a <=16/27". Finite instances: +`4^(a+1)/3^n ≤ 16/27 ⇔ 4^(a+1) · 27 ≤ 16 · 3^n` at seven `(a, n)` pairs with +`n ≥ 2a + 1`, and `(4/3)(4/9)^a ≤ 16/27 ⇔ 4 · 4^a · 27 ≤ 16 · (3 · 9^a)` for +`a = 1, …, 6`. The inequalities for all `a ≥ 1`, `n ≥ 2a + 1` are not checked. -/ +theorem t3_bound_finite_instances : + (∀ p, p ∈ [(1, 3), (1, 4), (2, 5), (2, 6), (3, 7), (3, 10), (4, 9)] → + 4 ^ (p.1 + 1) * 27 ≤ 16 * 3 ^ p.2) ∧ + (∀ a, a ∈ [1, 2, 3, 4, 5, 6] → 4 * 4 ^ a * 27 ≤ 16 * (3 * 9 ^ a)) := by decide + +/-- Source (section 4, price_budget): "An explicit rational price strictly larger +than p is c=p+p^2/2=81801/3345620000." At `p = 1/40900`: +`p + p^2/2 = (2·40900 + 1)/(2·40900^2) = 81801/3345620000`, and `c > p ⇔ +81801 · 40900 > 3345620000`. Admissibility `c ≤ phi(p)` is not checked. -/ +theorem explicit_rational_price_above_p : + 2 * 40900 + 1 = 81801 ∧ 2 * 40900 ^ 2 = 3345620000 ∧ 3345620000 < 81801 * 40900 := by + decide + +end UniversalLaw.P15 diff --git a/formal/UniversalLaw/P15/PriceBoundary.lean b/formal/UniversalLaw/P15/PriceBoundary.lean new file mode 100644 index 000000000..f33f5ecb5 --- /dev/null +++ b/formal/UniversalLaw/P15/PriceBoundary.lean @@ -0,0 +1,94 @@ +/-! +# P15 demand-one price boundary — exact finite arithmetic of the counterexample + +Informal source (Layer 0, byte-pinned): `Math-` commit +`760340e921ac4ceda296b8118da936f1133e956e`, +`frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md`, 2266 bytes, SHA-256 +`498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b` +(object P15-PRICE-BOUNDARY-20260924-v1, author OpenAI / ChatGPT). + +The source exhibits the smallest one-block member of the realized-cover family +(`a_1 = d_1 = 1`, `X = {x, y}`, no macro edges) with `p_x = p_y = 1/2` and +transformed prices `c_x = c_y = 2/3`, and computes `mu_p(D) = 3/4`, the four +generator costs `1, 2/3, 2/3, 4/9` and the comparison `4/9 > 1/3`. This module +restates exactly that finite arithmetic: subsets of the two-coordinate ground set +are Boolean pairs, the product measure at `p = 1/2` is carried as integer +numerators over the denominator `4`, and prices at `c = 2/3` as integer +numerators over the denominator `9`. Core Lean's `Rat` is not kernel-decidable +by `decide` (its `DecidableEq` instance does not reduce), so each rational +statement is the equivalent cross-multiplied statement over `Nat` with the +rational form in the docstring. The kernel checks the integers; the alignment +review checks that each integer statement is the stated rational one. + +What this module does **not** establish: the two logarithm inequalities the +source proves (`phi(1/2) = log 2 > 2/3` and `log(4/3) < 1/3`), the identity +`min(1, -log mu_p(D)) = log(4/3)`, the probability semantics of `mu_p` beyond +the displayed finite sum, that every cover of the obstruction `{X}` must contain +a generator inside `X`, that additional nonnegative-price generators cannot lower +the minimum, and therefore the source's conclusion that the same-palette +extension to `c <= phi(p)` is false in general. Nothing here bears on P15-B, on +Theorem F, on any prize, or on any Layer 0 status. +-/ + +namespace UniversalLaw.P15 + +/-- The ground set `X = {x, y}` of the smallest one-block member: a subset of `X` +is a pair of Booleans (`x ∈ U`, `y ∈ U`). These are its four subsets, in the +order `∅, {x}, {y}, X`. -/ +def subsets2 : List (Bool × Bool) := [(false, false), (true, false), (false, true), (true, true)] + +/-- Membership in the demand-one downset `D` on one block of capacity `a_1 = 1` +with no macro edges: at most one coordinate is present. -/ +def good (U : Bool × Bool) : Bool := !(U.1 && U.2) + +/-- Numerator of the product-measure weight of `U` at `p_x = p_y = 1/2`, over the +common denominator `2 · 2 = 4`: a present coordinate contributes the numerator of +`p = 1/2`, an absent one the numerator of `1 - p = (2 - 1)/2`; both are `1`. -/ +def weightNum (U : Bool × Bool) : Nat := (if U.1 then 1 else 2 - 1) * (if U.2 then 1 else 2 - 1) + +/-- Numerator of the generator price `∏_{v ∈ U} c_v` at `c_x = c_y = 2/3`, over +the common denominator `3 · 3 = 9`: a present coordinate contributes `2` (the +numerator of `2/3`), an absent one `3` (the empty factor `1 = 3/3`). -/ +def priceNum (U : Bool × Bool) : Nat := (if U.1 then 2 else 3) * (if U.2 then 2 else 3) + +/-- Total product-measure mass of all four subsets, in units of `1/4`. -/ +def totalMassNum : Nat := subsets2.foldl (fun acc U => acc + weightNum U) 0 + +/-- Product-measure mass of the good sets, in units of `1/4`. -/ +def goodMassNum : Nat := (subsets2.filter good).foldl (fun acc U => acc + weightNum U) 0 + +/-- Source: "Consider its smallest one-block member: a_1=d_1=1, X={x,y}, no macro +edges." The block-size formula `n_i = |X_i| = a_i d_i + 1` is not displayed in this +note; it is display (P1) of the realized-cover note (`p15-realized-covers`, +`P15_REALIZED_COVERS.md`: "n_i=|X_i|=a_i d_i+1."). Checked: at `a_1 = d_1 = 1` it +gives `2 = |{x, y}|`. -/ +theorem smallest_member_block_size : 1 * 1 + 1 = 2 := by decide + +/-- Source: "Its good sets are the empty set and singletons". Filtering the four +subsets by the capacity-one condition leaves exactly `∅`, `{x}`, `{y}`. -/ +theorem demand_one_good_sets : + subsets2.filter good = [(false, false), (true, false), (false, true)] := by decide + +/-- Source: "its one-piece obstruction is exactly {X}". The only subset outside +`D` is `X = {x, y}` itself; with `I_1(D) = D` this is `O_1(D) = {X}`. -/ +theorem demand_one_obstruction : subsets2.filter (fun U => !good U) = [(true, true)] := by decide + +/-- Source: "Nevertheless mu_p(D)=3/4". At `p_x = p_y = 1/2` every subset has +weight `1/4`; the four weights sum to `1` (`4/4`) and the three good sets to +`3/4`. Cross-multiplied: `goodMassNum / 2^2 = 3/4 ⇔ goodMassNum · 4 = 3 · 2^2`. -/ +theorem good_measure_three_quarters : totalMassNum = 2 ^ 2 ∧ goodMassNum * 4 = 3 * 2 ^ 2 := by + decide + +/-- Source: "The possible generator costs are 1, 2/3, 2/3, 4/9 for the empty set, +the two singletons, and X respectively" (the source runs "are1,2/3,2/3,4/9" +together). Over the denominator `9`: `9/9, 6/9, 6/9, 4/9`. -/ +theorem generator_prices_ninths : 3 * 3 = 9 ∧ subsets2.map priceNum = [9, 6, 6, 4] := by decide + +/-- Source: "covercost_c(O_1(D))=4/9 > 1/3 > log(4/3)". Checked here: the minimum +of the four displayed generator costs is `4/9` (numerator `4` over `9`), and +`4/9 > 1/3 ⇔ 1 · 9 < 4 · 3`. The identification of that minimum with the exact +optimal cover price, and the final comparison with `log(4/3)`, are not checked. -/ +theorem minimum_generator_price_exceeds_third : + (subsets2.map priceNum).foldl min 9 = 4 ∧ 1 * 9 < 4 * 3 := by decide + +end UniversalLaw.P15 diff --git a/formal/UniversalLaw/P15/RealizedCovers.lean b/formal/UniversalLaw/P15/RealizedCovers.lean new file mode 100644 index 000000000..9fa4614b6 --- /dev/null +++ b/formal/UniversalLaw/P15/RealizedCovers.lean @@ -0,0 +1,127 @@ +/-! +# P15 realized covers — exact counts of the 816-label benchmark + +Informal source (Layer 0, byte-pinned): `Math-` commit +`760340e921ac4ceda296b8118da936f1133e956e`, +`frontiers/three_fronts_20260924/P15_REALIZED_COVERS.md`, 11467 bytes, SHA-256 +`c0dbb821fb57b685a20cc321e4074456f39a9697f3104afd1f728e4732179bb9` +(object P15-REALIZED-COVERS-20260924-v1, author OpenAI / ChatGPT), sections 4–6. + +What this module establishes: the exact integer and rational arithmetic that the +source displays for the six-block benchmark (`a_i = 1`, `d_i = 408`, `H` = all +four-block subsets of six indices) — block and ground-set sizes, the two +minimal-forbidder counts of display (P10), the palette counts `816`, `815·3 < 2448` +and `818`, the elementary palette formula (P9) evaluated at the displayed inputs, +the ceiling identity `⌈n_i/a_i⌉ = d_i + 1` at finitely many instances, and the +union-bound rational of display (P11), and the positivity of the displayed cover +price `6/(40900^409)` as positivity of its numerator and of the power. Binomial +coefficients are computed by the exact multiplicative recursion and ceilings by +`(a + b − 1) / b`; both are defined locally so that the library has no +dependencies. Core Lean's `Rat` is not kernel-decidable by `decide` (its +`DecidableEq` instance does not reduce), so (P11) is stated cross-multiplied over +`Nat` with the rational form in the docstring. Every proof is `decide` except the +positivity of `40900 ^ 409`, which is core `Nat.pow_pos` applied to `0 < 40900`. + +What this module does **not** establish: Proposition P1 (completeness of the +minimal forbidders), display (P2), Theorem P2 (that the full-block family covers +`O_K(D)` iff `K >= K_H(d)`), the palette formula (P9) itself, the probability +semantics of `mu_p`, the union bound and independence step behind (P11), the +hazard comparison (P4)–(P5), display (P8), or anything about the unrestricted +P15 prize, which the source itself leaves open. Nothing here changes any Layer 0 +status. +-/ + +namespace UniversalLaw.P15 + +/-- Binomial coefficient by the exact multiplicative recursion +`C(n, k+1) = C(n, k) · (n − k) / (k + 1)` (each product is divisible by `k + 1`, +and `n − k` truncates to `0` once `k ≥ n`). Kept local: no dependencies. -/ +def choose (n : Nat) : Nat → Nat + | 0 => 1 + | k + 1 => choose n k * (n - k) / (k + 1) + +/-- Ceiling of `a / b` for `b > 0`: `⌈a/b⌉ = (a + b − 1) / b`. -/ +def ceilDiv (a b : Nat) : Nat := (a + b - 1) / b + +/-- Source: "Take six blocks, a_i=1 and d_i=408. Thus EACH original block has 409 +vertices and the original ground set has 2454 vertices" (the source runs +"has409" and "has2454" together). `n_i = a_i d_i + 1 = 409`, `6 · 409 = 2454`. -/ +theorem benchmark_block_and_ground_sizes : 1 * 408 + 1 = 409 ∧ 6 * 409 = 2454 := by decide + +/-- Source: "H consists of all 15 four-block subsets" (source: "all15"): +`C(6, 4) = 15`. -/ +theorem four_block_supports_fifteen : choose 6 4 = 15 := by decide + +/-- Source (P10): "6*binom(409,2)=500616 internal pairs, 15*409^4=419743994415 +crossing transversal quadruples." Only the two integer values are checked; that +these count the minimal forbidders is Proposition P1. -/ +theorem minimal_forbidder_counts : + 6 * choose 409 2 = 500616 ∧ 15 * 409 ^ 4 = 419743994415 := by decide + +/-- Source: "Use 408 labels on macro-indices {0,2,4} and 408 different labels on +{1,3,5}, giving K_H(408,...,408)=816." Checked: `408 + 408 = 816`. That this +palette satisfies (P6), and that no smaller one does, is not checked. -/ +theorem palette_816_from_two_label_classes : 408 + 408 = 816 := by decide + +/-- Source: "at 815 it does not, because omitting one vertex from each block +leaves 2448 vertices, each color holds at most 3, and 815*3<2448. +Pairwise-disjoint local palettes would have used 2448 labels." Checked: +`2454 − 6 = 2448`, `815 · 3 < 2448`, `6 · 408 = 2448`. That each colour class +holds at most three vertices is the combinatorial step, not checked. -/ +theorem palette_815_fails_by_counting : 2454 - 6 = 2448 ∧ 815 * 3 < 2448 ∧ 6 * 408 = 2448 := by + decide + +/-- Source: "The whole ground set, unlike the cover-avoiding sets, needs 818 +colors, since 2454/3=818." Checked: the exact quotient `2454 / 3 = 818` with +`818 · 3 = 2454`. The chromatic claim itself is not checked. -/ +theorem whole_ground_chromatic_818 : 2454 / 3 = 818 ∧ 818 * 3 = 2454 := by decide + +/-- Source (P9): "K_H(d)=max(max_i d_i, ceil(sum_i d_i/s))" for `H` = all +`(s+1)`-subsets of `b` indices. The section-6 benchmark is the case `b = 6`, +`s + 1 = 4`, `d_i = 408`: `max(408, ⌈6·408/3⌉) = 816`; with `d_i + 1 = 409` for +the whole ground set: `max(409, ⌈6·409/3⌉) = 818`. The conjunct `3 + 1 = 4` is +not displayed: it reads the four-block supports as `s + 1 = 4` with `s = 3`. Only +the right-hand side of (P9) is evaluated; the formula is not proved. -/ +theorem elementary_palette_formula_instances : + 3 + 1 = 4 ∧ max 408 (ceilDiv (6 * 408) 3) = 816 ∧ max 409 (ceilDiv (6 * 409) 3) = 818 := by + decide + +/-- Source: "The macro triangle at unit demands needs 3 colors" (source: +"needs3"). The right-hand side of (P9) at `b = 3`, `s = 1`, `d_i = 1`: +`max(1, ⌈3/1⌉) = 3`. The chromatic claim is not checked. -/ +theorem macro_triangle_three_colors : max 1 (ceilDiv (1 + 1 + 1) 1) = 3 := by decide + +/-- Source: "the chromatic number of the ENTIRE ground set X is K_H(d+1), because +ceil(n_i/a_i)=d_i+1." With `n_i = a_i d_i + 1`, checked at five `(a_i, d_i)` +instances including the benchmark `(1, 408)`. The general identity for all +`a_i ≥ 1` is not checked. -/ +theorem ceil_block_over_capacity_instances : + ∀ p, p ∈ [(1, 1), (1, 408), (2, 3), (3, 5), (5, 2)] → + ceilDiv (p.1 * p.2 + 1) p.1 = p.2 + 1 := by decide + +/-- Source: "each block's occupancy probability is at most 409p=1/100" (source: +"at most409p") at `p = 1/40900`: `409 · (1/40900) = 1/100 ⇔ 409 · 100 = 40900`. +That the occupancy probability is at most `409p` (a union bound) is not checked. -/ +theorem block_occupancy_one_percent : 409 * 100 = 40900 := by decide + +/-- Source (P11): "Q=1-mu_p(D) <=500616/(40900^2)+15/(100^4) =2449227/8180000000 +< 3/10000" and "the actual-good probability exceeds 0.9997". Cross-multiplied: +`500616/40900^2 + 15/100^4 = 2449227/8180000000` is +`(500616·100^4 + 15·40900^2)·8180000000 = 2449227·(40900^2·100^4)`; +`2449227/8180000000 < 3/10000` is `2449227·10000 < 3·8180000000`; and +`1 − 3/10000 = 9997/10000`. The union bound, the independence of block +occupancies and the probability semantics are not checked. -/ +theorem low_failure_union_bound_arithmetic : + (500616 * 100 ^ 4 + 15 * 40900 ^ 2) * 8180000000 = 2449227 * (40900 ^ 2 * 100 ^ 4) ∧ + 2449227 * 10000 < 3 * 8180000000 ∧ 10000 - 3 = 9997 := by decide + +/-- Source: "The cover price is exactly 6/(40900^409)>0" at `p_v = c_v = 1/40900`. +Checked: `6/(40900^409) > 0` as positivity of the numerator `6` (six full-block +generators) and of the denominator `40900^409`; the latter is core `Nat.pow_pos` +applied to `0 < 40900` (the kernel does not evaluate the power). The price +identity itself — that the six-generator cover costs exactly `6/(40900^409)` — +is not checked. -/ +theorem cover_price_numerator_and_denominator_positive : 0 < 6 ∧ 0 < 40900 ^ 409 := + ⟨by decide, Nat.pow_pos (a := 40900) (n := 409) (by decide)⟩ + +end UniversalLaw.P15 diff --git a/formal/manifest.json b/formal/manifest.json index 71097be07..7bd51fe20 100644 --- a/formal/manifest.json +++ b/formal/manifest.json @@ -18,7 +18,7 @@ "author": { "provider": "Anthropic", "family": "Claude", - "agent": "Cursor cloud agent, 2026-09-27" + "agent": "Cursor cloud agent, 2026-09-27 (Side24 modules); Claude Code session_01Cz7WZybv8znP64SpPj6sWY, 2026-10-10 (P15 modules)" }, "lean_toolchain": "leanprover/lean4:v4.34.1", "dependency_revisions": {}, @@ -28,34 +28,41 @@ "Quot.sound" ], "files": { - "formal/lean-toolchain": "d5edba4e4b8faad9c1baeadb265716d20d03be4d1a2647dc5e35b0c0325bea7b", - "formal/lakefile.toml": "58f0fa6864cc03e9bcbef2d8c0404e9f3385a30a6124000454319367906cbe4a", - "formal/lake-manifest.json": "562d38ad95598486b2b592e6d072d5d3212735bfeb1cb6d8eb8ec04492522ba2", - "formal/UniversalLaw.lean": "cb94ad3490a00bc35b420a53a42ff65b6fc66a46b8a26ef1b87035d7bb15587e", - "formal/UniversalLaw/Side24/Ledger.lean": "ae4a14f3db8cf26668e55e2d2f80e0dcecb0703826b40396d91fb6e0d266d3f7", + ".github/workflows/formal-verification.yml": "b124747e1070d0448b9653dee9b88a15e7a349ae8f35bfa7b7cbf9e564282c6f", + ".github/workflows/workspace-landing.yml": "ff8735658be98a8b983e2193da3101635c5bbe544520a46959cb8c52e46bf52c", + "formal/COMPILED_INVENTORY.md": "89786524d472619cac7aeae3de9297205a7316bf4064e531af6ffd7bbf28d630", + "formal/GLOSSARY.md": "342d4efb374fea31c39e51f8f6bcdbc50d7fb5fea1fd393eda21afff92c62fb8", + "formal/README.md": "675e644d0ecfb1e76bb73d3699f6c5b072ea3a4d6b51e1e41a92d6fa6f2d3bc9", + "formal/REVIEW_LANE.md": "0a1f50b60ceb6a75099774535e66984c2a149c5ef780d9769e8333918fc129d7", + "formal/SCOPE.md": "1793f0a86f3f5d5678373b73b766a24d2492b0feec21e46c507e92715afdd8d4", + "formal/UniversalLaw.lean": "503f8ce5e3123f820e378a68961bca04c16e427dba2d48d8afdc372559f9fb32", + "formal/UniversalLaw/P15/FullPrice.lean": "9fb2aad19ac132f52c6e6b89c1040890922e1f905e88fac29992b62cbc890569", + "formal/UniversalLaw/P15/PriceBoundary.lean": "d11f32fbbf6ffe726dff0ac889bfaf04d61c9f5818d3c447abf7132fbe96bd6e", + "formal/UniversalLaw/P15/RealizedCovers.lean": "1b60dd00925789ae86f081463fd97117561223568532b5f5a886fdc8247051b3", "formal/UniversalLaw/Side24/ConeMoments.lean": "2bcd4a83683188856bce010c3dcdec6904e45a6d73b50b9f3891e632ff58985c", "formal/UniversalLaw/Side24/Endpoints.lean": "095102245297707316cfd7e244d5509f9b102fe5aa638b7acdbbcf9d3c9d52bd", - "formal/sources/side24_v1/PROOF.md": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769", - "formal/sources/side24_v1/ENCLOSURE.json": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811", - "formal/SCOPE.md": "fd06700628b1fbc81c5cfe3786aaa455032375bcb879914f068a66b726802a17", - "formal/GLOSSARY.md": "342d4efb374fea31c39e51f8f6bcdbc50d7fb5fea1fd393eda21afff92c62fb8", - "formal/README.md": "8cc24be73afee43522612bf8877f93d7c4a27098874c71f2c58ebb8acf949a04", - "formal/REVIEW_LANE.md": "54d32104aa012e917ef40b73fa3a40228d023249b339cf30fe4bdb7dcbfed414", - "formal/reviews/TEMPLATE_alignment_review.json": "e722e928ca43c16981e063d8eb1c91e9bf8c683241d9dcf156400a419e72feb3", + "formal/UniversalLaw/Side24/Ledger.lean": "ae4a14f3db8cf26668e55e2d2f80e0dcecb0703826b40396d91fb6e0d266d3f7", + "formal/lake-manifest.json": "562d38ad95598486b2b592e6d072d5d3212735bfeb1cb6d8eb8ec04492522ba2", + "formal/lakefile.toml": "58f0fa6864cc03e9bcbef2d8c0404e9f3385a30a6124000454319367906cbe4a", + "formal/lean-toolchain": "d5edba4e4b8faad9c1baeadb265716d20d03be4d1a2647dc5e35b0c0325bea7b", "formal/reviews/README.md": "333ca71e7c676cee89e5d01cd61999c21bb0584e41d6bdacb18afa410109f95d", - "tools/formal_gate_check.py": "ec51ea230f3da4dc295b24b172459702207b4c403654b7ddc8e00315300502c9", - "tests/test_formal_gate.py": "2feb822f8e8c31b01e858ee01bae9c6f96f7e3d736682e25547557427382f4a4", + "formal/reviews/TEMPLATE_alignment_review.json": "2f1302611aa84652490bd89f04d2bba833e95d762c06b1230ae832086ccdeef5", + "formal/sources/p15_v1/full_price_20260924_PROOF.md": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9", + "formal/sources/p15_v1/price_budget_20260924_PROOF.md": "3b79d2de60d77df9dd0d81cea60935d3dbceeb26fcf2d38d62667a425180a535", + "formal/sources/p15_v1/three_fronts_20260924_P15_PRICE_BOUNDARY.md": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b", + "formal/sources/p15_v1/three_fronts_20260924_P15_REALIZED_COVERS.md": "c0dbb821fb57b685a20cc321e4074456f39a9697f3104afd1f728e4732179bb9", + "formal/sources/side24_v1/ENCLOSURE.json": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811", + "formal/sources/side24_v1/PROOF.md": "c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769", + "tests/test_formal_compiled_inventory.py": "d73ab0086d8e2c6091c50cf318e8adbf3be8e95b4ca0c2b06f4030988b265913", + "tests/test_formal_gate.py": "70a40c8219da56bc233681625c8a7cfebf03a2ea5fcc226f0bbc7fbda6ce8dde", "tests/test_formal_negative_diagnostics.py": "3847f5382966e39e951e54d8558387227540cff775d96eb33ce3d6396f52107d", - "tools/formal_compiled_inventory.py": "094ae0294bfa10f6af5a797cc7939909ab0094194c2b01b468b33e0d3aac1bab", - "tests/test_formal_compiled_inventory.py": "1e171f45a75b88ded8dc5d758edc835841546080489b01c38b38b876c7896fea", - "formal/COMPILED_INVENTORY.md": "89786524d472619cac7aeae3de9297205a7316bf4064e531af6ffd7bbf28d630", - ".github/workflows/formal-verification.yml": "b124747e1070d0448b9653dee9b88a15e7a349ae8f35bfa7b7cbf9e564282c6f", + "tests/test_formal_source_custody.py": "6a45d063643362939ae703c7ba594c160e480f61dc0d797fbabf287f19850313", "tests/test_formal_workflow_shell.py": "8b4619ed719cbf7fadd3065778df287df9a8a8dd180c2a77e236142c03c37936", - "tools/required_formal_check.py": "9f22c9c9b21d521dd889a72b480524e3a37d8320c5236e52700fa602cb0f990d", - "tests/test_required_formal_check.py": "f364204e4b5d45b8a1502027240f4d6ddc094844348b780cd2be0d32b2adcce0", "tests/test_required_formal_binding_control.py": "ce667c85d5ff28b945b956770cf20860b10123675d15ebdb376d34afb9226eff", - "tests/test_formal_source_custody.py": "6a45d063643362939ae703c7ba594c160e480f61dc0d797fbabf287f19850313", - ".github/workflows/workspace-landing.yml": "ff8735658be98a8b983e2193da3101635c5bbe544520a46959cb8c52e46bf52c" + "tests/test_required_formal_check.py": "f364204e4b5d45b8a1502027240f4d6ddc094844348b780cd2be0d32b2adcce0", + "tools/formal_compiled_inventory.py": "094ae0294bfa10f6af5a797cc7939909ab0094194c2b01b468b33e0d3aac1bab", + "tools/formal_gate_check.py": "1787283c54ffcc4f799fd57f47cd4e57991f8feb0697dde2493a85a45016ad55", + "tools/required_formal_check.py": "9f22c9c9b21d521dd889a72b480524e3a37d8320c5236e52700fa602cb0f990d" }, "unbound_files": [ "formal/manifest.json", @@ -79,12 +86,51 @@ "bytes": 1090, "sha256": "72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811", "local_copy": "formal/sources/side24_v1/ENCLOSURE.json" + }, + { + "id": "p15-price-boundary", + "repository": "d6g8k5htny-coder/Math-", + "commit": "760340e921ac4ceda296b8118da936f1133e956e", + "path": "frontiers/three_fronts_20260924/P15_PRICE_BOUNDARY.md", + "bytes": 2266, + "sha256": "498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b", + "local_copy": "formal/sources/p15_v1/three_fronts_20260924_P15_PRICE_BOUNDARY.md" + }, + { + "id": "p15-realized-covers", + "repository": "d6g8k5htny-coder/Math-", + "commit": "760340e921ac4ceda296b8118da936f1133e956e", + "path": "frontiers/three_fronts_20260924/P15_REALIZED_COVERS.md", + "bytes": 11467, + "sha256": "c0dbb821fb57b685a20cc321e4074456f39a9697f3104afd1f728e4732179bb9", + "local_copy": "formal/sources/p15_v1/three_fronts_20260924_P15_REALIZED_COVERS.md" + }, + { + "id": "p15-full-price", + "repository": "d6g8k5htny-coder/Math-", + "commit": "760340e921ac4ceda296b8118da936f1133e956e", + "path": "frontiers/full_price_20260924/PROOF.md", + "bytes": 11352, + "sha256": "87521901ca8e5405b4d1e47f1deb1cd0326affbd6f5967b53c4178590da993f9", + "local_copy": "formal/sources/p15_v1/full_price_20260924_PROOF.md" + }, + { + "id": "p15-price-budget", + "repository": "d6g8k5htny-coder/Math-", + "commit": "760340e921ac4ceda296b8118da936f1133e956e", + "path": "frontiers/price_budget_20260924/PROOF.md", + "bytes": 7935, + "sha256": "3b79d2de60d77df9dd0d81cea60935d3dbceeb26fcf2d38d62667a425180a535", + "local_copy": "formal/sources/p15_v1/price_budget_20260924_PROOF.md" } ], "source_modules": [ "UniversalLaw/Side24/Ledger.lean", "UniversalLaw/Side24/ConeMoments.lean", - "UniversalLaw/Side24/Endpoints.lean" + "UniversalLaw/Side24/Endpoints.lean", + "UniversalLaw/P15/PriceBoundary.lean", + "UniversalLaw/P15/RealizedCovers.lean", + "UniversalLaw/P15/FullPrice.lean" ], "targets": [ { @@ -122,7 +168,7 @@ { "name": "UniversalLaw.Side24.lattice_shell_constant", "module": "UniversalLaw/Side24/Ledger.lean", - "title": "Shell constants 27\u00b727 = 729 and 729\u00b72 = 1458", + "title": "Shell constants 27·27 = 729 and 729·2 = 1458", "source": "side24-proof", "informal_anchor": "<=729 sum_{j>=1} j^9 e^(-288j^2)\n <=1458 e^(-288).", "does_not_claim": "the lattice-point count or the geometric tail sum" @@ -130,7 +176,7 @@ { "name": "UniversalLaw.Side24.geometric_ratio_constants", "module": "UniversalLaw/Side24/Ledger.lean", - "title": "Ratio constants 2^9 = 512 and 288\u00b73 = 864", + "title": "Ratio constants 2^9 = 512 and 288·3 = 864", "source": "side24-proof", "informal_anchor": "successive terms have ratio at most512e^(-864)<1/2", "does_not_claim": "that the ratio is below 1/2" @@ -146,7 +192,7 @@ { "name": "UniversalLaw.Side24.image_constant_value", "module": "UniversalLaw/Side24/Ledger.lean", - "title": "Image constant 1458\u00b7(76\u00b724^6+15) = 21175738586478", + "title": "Image constant 1458·(76·24^6+15) = 21175738586478", "source": "side24-proof", "informal_anchor": "E := 1458*(76*24^6+15)*10^(-125)\n = 21175738586478 *10^(-125).", "does_not_claim": "the inequality |D^q K_24(0)-D^q K_infty(0)| < E" @@ -162,7 +208,7 @@ { "name": "UniversalLaw.Side24.covariance_relative_bound", "module": "UniversalLaw/Side24/Ledger.lean", - "title": "60E < 10^(-108) as the integer inequality 60\u00b721175738586478 < 10^17", + "title": "60E < 10^(-108) as the integer inequality 60·21175738586478 < 10^17", "source": "side24-proof", "informal_anchor": "epsilon=10^(-108), since60E= I/3" @@ -186,7 +232,7 @@ { "name": "UniversalLaw.Side24.smaller_eigenvalue_exceeds_third", "module": "UniversalLaw/Side24/Ledger.lean", - "title": "8 - sqrt(58) > 1/3 via 23^2 > 58\u00b79", + "title": "8 - sqrt(58) > 1/3 via 23^2 > 58·9", "source": "side24-proof", "informal_anchor": "Its smaller eigenvalue exceeds\n1/3", "does_not_claim": "monotonicity of the square root" @@ -218,7 +264,7 @@ { "name": "UniversalLaw.Side24.density_comparison_below_reported", "module": "UniversalLaw/Side24/Ledger.lean", - "title": "32\u00b710^(-108) < 10^(-106)", + "title": "32·10^(-108) < 10^(-106)", "source": "side24-proof", "informal_anchor": "|c_d,24/c_d,ref -1| < 10^(-106), d=2,3.", "does_not_claim": "the multiplicative density comparison" @@ -258,7 +304,7 @@ { "name": "UniversalLaw.Side24.fourth_moment_of_trace", "module": "UniversalLaw/Side24/ConeMoments.lean", - "title": "E s^4 = 3\u00b7(5/3)^2 = 25/3", + "title": "E s^4 = 3·(5/3)^2 = 25/3", "source": "side24-proof", "informal_anchor": "E s^2=5/3, E s^4=25/3", "does_not_claim": "the Gaussian fourth-moment identity" @@ -274,7 +320,7 @@ { "name": "UniversalLaw.Side24.cone_moment_m2_algebra", "module": "UniversalLaw/Side24/ConeMoments.lean", - "title": "D_2 algebra: rational part 29/6 and 4\u00b7sqrt(3/8) = sqrt(6)", + "title": "D_2 algebra: rational part 29/6 and 4·sqrt(3/8) = sqrt(6)", "source": "side24-proof", "informal_anchor": "D_2 = (1/2)[25/3-20/3+8-8sqrt(3/8)]\n = 29/6-sqrt(6).", "does_not_claim": "the integral identity or the Rayleigh cone integration" @@ -282,7 +328,7 @@ { "name": "UniversalLaw.Side24.cube_root_simplification", "module": "UniversalLaw/Side24/ConeMoments.lean", - "title": "6^2\u00b72 = 3\u00b724 behind 6^(2/3)/24^(1/3) = (3/2)^(1/3)", + "title": "6^2·2 = 3·24 behind 6^(2/3)/24^(1/3) = (3/2)^(1/3)", "source": "side24-proof", "informal_anchor": "simplifying 6^(2/3)/24^(1/3)=(3/2)^(1/3)", "does_not_claim": "the analytic statement the arithmetic is attached to; the coefficient bound; the parent theorem" @@ -334,6 +380,230 @@ "source": "side24-enclosure", "informal_anchor": "\"dimensions\": {\n \"2\": {\n \"lower\": \"0.07340691930603427103\",\n \"upper\": \"0.07340691930603427104\"\n },\n \"3\": {\n \"lower\": \"0.04177593184059834334\",\n \"upper\": \"0.04177593184059834335\"", "does_not_claim": "anything about the true coefficients; the range (0, 1/10) is a derived artifact-consistency check of the displayed endpoints" + }, + { + "name": "UniversalLaw.P15.smallest_member_block_size", + "module": "UniversalLaw/P15/PriceBoundary.lean", + "title": "Smallest one-block member has block size 1·1+1 = 2", + "source": "p15-price-boundary", + "informal_anchor": "one-block member: a_1=d_1=1, X={x,y}", + "does_not_claim": "the realized-cover theorem or its family; the probability or price semantics; the two log inequalities; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.demand_one_good_sets", + "module": "UniversalLaw/P15/PriceBoundary.lean", + "title": "Good sets of the demand-one block are ∅, {x}, {y} (finite enumeration)", + "source": "p15-price-boundary", + "informal_anchor": "Its good sets are the empty\nset and singletons", + "does_not_claim": "the downset D beyond the four enumerated subsets; the log inequalities phi(1/2)=log 2>2/3 and log(4/3)<1/3; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.demand_one_obstruction", + "module": "UniversalLaw/P15/PriceBoundary.lean", + "title": "One-piece obstruction O_1(D) is exactly {X} (finite enumeration)", + "source": "p15-price-boundary", + "informal_anchor": "its one-piece obstruction\nis exactly {X}", + "does_not_claim": "the identity I_1(D)=D in general; cover semantics; the log inequalities; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.good_measure_three_quarters", + "module": "UniversalLaw/P15/PriceBoundary.lean", + "title": "mu_p(D) = 3/4 at p = 1/2 as 3 of 4 quarter-weights (total 4 = 2^2)", + "source": "p15-price-boundary", + "informal_anchor": "Nevertheless mu_p(D)=3/4", + "does_not_claim": "the product-measure semantics of mu_p; the identity min(1,-log mu_p(D))=log(4/3); the inequality log(4/3)<1/3; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.generator_prices_ninths", + "module": "UniversalLaw/P15/PriceBoundary.lean", + "title": "Generator costs 1, 2/3, 2/3, 4/9 over denominator 9: 9, 6, 6, 4", + "source": "p15-price-boundary", + "informal_anchor": "The possible generator costs are1,2/3,2/3,4/9", + "does_not_claim": "admissibility of c=2/3 as a transformed price (phi(1/2)=log 2>2/3 is a log inequality); that extra generators cannot lower the minimum; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.minimum_generator_price_exceeds_third", + "module": "UniversalLaw/P15/PriceBoundary.lean", + "title": "Minimum displayed generator cost 4/9, and 4/9 > 1/3 (1·9 < 4·3)", + "source": "p15-price-boundary", + "informal_anchor": "covercost_c(O_1(D))=4/9 > 1/3 > log(4/3)", + "does_not_claim": "that the minimum over the four subsets is the exact optimal cover price (every cover of {X} containing a generator inside X, and extra nonnegative-price generators not lowering it, are set-theoretic steps of the source); the inequality 1/3 > log(4/3); that the same-palette extension to c<=phi(p) is false in general; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.benchmark_block_and_ground_sizes", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "Benchmark sizes: 1·408+1 = 409 per block, 6·409 = 2454 vertices", + "source": "p15-realized-covers", + "informal_anchor": "EACH original block has409 vertices and the original ground set has2454 vertices", + "does_not_claim": "the construction (P1)–(P2), Proposition P1, probability semantics; Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.four_block_supports_fifteen", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "C(6,4) = 15 four-block supports", + "source": "p15-realized-covers", + "informal_anchor": "H consists of all15 four-block subsets", + "does_not_claim": "the clutter structure of H or Proposition P1; Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.minimal_forbidder_counts", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "(P10) 6·C(409,2) = 500616 and 15·409^4 = 419743994415", + "source": "p15-realized-covers", + "informal_anchor": "6*binom(409,2)=500616 internal pairs,\n 15*409^4=419743994415 crossing transversal quadruples.", + "does_not_claim": "that these numbers count the minimal forbidders (Proposition P1); Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.palette_816_from_two_label_classes", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "K_H(408,…,408) = 816 as 408 + 408", + "source": "p15-realized-covers", + "informal_anchor": "K_H(408,...,408)=816", + "does_not_claim": "that the two label classes satisfy (P6) or that no smaller palette does (the palette optimum); Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.palette_815_fails_by_counting", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "2454−6 = 2448, 815·3 < 2448, 6·408 = 2448", + "source": "p15-realized-covers", + "informal_anchor": "omitting one vertex from each block leaves2448 vertices, each color holds at most3, and815*3<2448", + "does_not_claim": "that each colour class holds at most three vertices (the combinatorial step); Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.whole_ground_chromatic_818", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "2454/3 = 818 exactly (818·3 = 2454)", + "source": "p15-realized-covers", + "informal_anchor": "needs818 colors, since2454/3=818", + "does_not_claim": "the chromatic number of the ground set (K_H(d+1)) or the palette argument; Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.elementary_palette_formula_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "(P9) right-hand side at the benchmark: max(408,⌈2448/3⌉) = 816, max(409,⌈2454/3⌉) = 818; 3+1 = 4", + "source": "p15-realized-covers", + "informal_anchor": "K_H(d)=max(max_i d_i, ceil(sum_i d_i/s))", + "does_not_claim": "the formula (P9) itself (cyclic-word construction and lower bounds); that K_H of the section-6 benchmark equals the (P9) value; Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.macro_triangle_three_colors", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "(P9) right-hand side for the macro triangle at unit demands: max(1,⌈3/1⌉) = 3", + "source": "p15-realized-covers", + "informal_anchor": "The macro triangle at unit demands needs3 colors", + "does_not_claim": "that the triangle needs 3 colours (the formula (P9) and its applicability); the comparison with a size-two edge-load formula; Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.ceil_block_over_capacity_instances", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "⌈(a·d+1)/a⌉ = d+1 at five (a,d) instances including (1,408)", + "source": "p15-realized-covers", + "informal_anchor": "ceil(n_i/a_i)=d_i+1", + "does_not_claim": "the identity for all a_i >= 1; that the whole-ground chromatic number is K_H(d+1); Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.block_occupancy_one_percent", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "409·100 = 40900 behind 409p = 1/100 at p = 1/40900", + "source": "p15-realized-covers", + "informal_anchor": "each block's occupancy probability is at most409p=1/100", + "does_not_claim": "the union bound giving occupancy probability at most 409p; probability semantics; Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.low_failure_union_bound_arithmetic", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "(P11) 500616/40900^2 + 15/100^4 = 2449227/8180000000 < 3/10000, cross-multiplied; 10000−3 = 9997", + "source": "p15-realized-covers", + "informal_anchor": "=2449227/8180000000 < 3/10000", + "does_not_claim": "the union bound Q <= ..., the independence of block occupancies, that Q = 1 - mu_p(D) is the global bad probability, probability semantics, display (P8); Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.cover_price_numerator_and_denominator_positive", + "module": "UniversalLaw/P15/RealizedCovers.lean", + "title": "6/(40900^409) > 0 as 0 < 6 and 0 < 40900^409 (core Nat.pow_pos)", + "source": "p15-realized-covers", + "informal_anchor": "6/(40900^409)>0", + "does_not_claim": "the price identity 6/(40900^409) for the six-generator cover (the kernel does not evaluate the power, only its positivity); probability semantics; Theorem P2; prize status" + }, + { + "name": "UniversalLaw.P15.rho_star_endpoints_adjacent", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "Published rho_star endpoints are adjacent 20-digit decimals", + "source": "p15-full-price", + "informal_anchor": "0.84547981724898672067 < rho_star", + "does_not_claim": "that rho_star = 1/(3 - log(3e - 2)) lies between them (needs Real.exp/Real.log; Mathlib lane); Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.rho_star_upper_endpoint_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "Upper endpoint below 6/7: …68·7 < 6·10^20", + "source": "p15-full-price", + "informal_anchor": "< 0.84547981724898672068 < 6/7", + "does_not_claim": "rho_star < 6/7 as a statement about the real number; h_star > 7/6; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.sixteen_twentysevenths_below_six_sevenths", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "16/27 < 6/7 (16·7 < 6·27) and 16/27 below the published lower endpoint", + "source": "p15-full-price", + "informal_anchor": "gives the stronger factor16/27 on its smaller domain", + "does_not_claim": "Theorem (T1) or its domain p_v <= 1/4; that 16/27 < rho_star as a real-number statement; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.minimal_block_size_instances", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "1·2+1 = 3 and 2a+1 <= ad+1 at five (a,d) instances with d >= 2", + "source": "p15-full-price", + "informal_anchor": "Our n=ad+1 and d>=2 imply n>=2a+1.", + "does_not_claim": "the implication for all a >= 1, d >= 2; the binomial tail comparison (F9)–(F11); the sharpness argument of section 5; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.e_rational_bounds_ordering", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "31967/11760 < 87/32 and 87/32 − 31967/11760 = 11/23520, cross-multiplied", + "source": "p15-full-price", + "informal_anchor": "e < 31967/11760 < 87/32,\n 87/32-31967/11760=11/23520.", + "does_not_claim": "e < 31967/11760 (exponential series plus geometric tail); any statement about e; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.exp_eleven_sixths_taylor_certificate", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "Degree-5 Taylor partial sum of exp(11/6) minus 197/32 equals 26081/933120 > 0", + "source": "p15-full-price", + "informal_anchor": "sum_(j=0)^5 (11/6)^j/j! -197/32=26081/933120>0", + "does_not_claim": "that the partial sum is below exp(11/6) (positivity of the omitted terms is analysis); 197/32 < exp(11/6); Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.h_star_rational_certificate_constants", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "3·87 − 2·32 = 197 and 3·6 − 11 = 7 behind 3e−2 < 197/32 and h_star > 7/6", + "source": "p15-full-price", + "informal_anchor": "Therefore 3e-2<197/327/6 and rho_star<6/7.", + "does_not_claim": "e < 87/32, 197/32 < exp(11/6), monotonicity of log, h_star > 7/6 and rho_star < 6/7 as real-number statements; Theorem F; prize status" + }, + { + "name": "UniversalLaw.P15.t3_ratio_at_minimal_block", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "(T3) at a = 1, n = 3: 4^3 = 4^1·4^2, 4^2 = 16, 3^3 = 27, (4/3)(4/9)^1 = 16/27", + "source": "p15-price-budget", + "informal_anchor": "= (4^(a+1))/(3^n)\n <= (4/3)*(4/9)^a <=16/27.", + "does_not_claim": "the ratio chain (T3) (which uses (T2), p_v <= 1/4 and independence); Theorem (T1); the demand-one counterexample's applicability at a = d = 1; prize status" + }, + { + "name": "UniversalLaw.P15.t3_bound_finite_instances", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "(T3) final inequalities at seven (a,n) pairs with n >= 2a+1 and at a = 1..6", + "source": "p15-price-budget", + "informal_anchor": "<= (4/3)*(4/9)^a <=16/27", + "does_not_claim": "the inequalities for all a >= 1, n >= 2a+1; (T2); Theorem (T1); prize status" + }, + { + "name": "UniversalLaw.P15.explicit_rational_price_above_p", + "module": "UniversalLaw/P15/FullPrice.lean", + "title": "c = p + p^2/2 = 81801/3345620000 at p = 1/40900, and c > p", + "source": "p15-price-budget", + "informal_anchor": "c=p+p^2/2=81801/3345620000", + "does_not_claim": "admissibility c <= phi(p) (the integral inequality); the price bound (T7); that the 816-label cover is valid at these prices; prize status" } ], "negative_controls": { @@ -341,13 +611,13 @@ "module": "UniversalLaw/Side24/Ledger.lean", "replace": "sixB d < 78", "with": "sixB d < 77", - "expected_diagnostic": "126:2: error: Tactic `decide` proved that the proposition\n \u2200 (d : Nat), d \u2208 [2, 3] \u2192 sixA d + 2 * sixB d < 84 \u2227 2 * sixA d + sixB d < 77\nis false\n" + "expected_diagnostic": "126:2: error: Tactic `decide` proved that the proposition\n ∀ (d : Nat), d ∈ [2, 3] → sixA d + 2 * sixB d < 84 ∧ 2 * sixA d + sixB d < 77\nis false\n" }, "false_covariance_bound": { "module": "UniversalLaw/Side24/Ledger.lean", "replace": "60 * imageConstant < 10 ^ 17", "with": "60 * imageConstant < 10 ^ 15", - "expected_diagnostic": "97:57: error: Tactic `decide` proved that the proposition\n 2 * 10 * 3 = 60 \u2227 60 * imageConstant < 10 ^ 15\nis false\n" + "expected_diagnostic": "97:57: error: Tactic `decide` proved that the proposition\n 2 * 10 * 3 = 60 ∧ 60 * imageConstant < 10 ^ 15\nis false\n" }, "false_exp_partial_sum": { "module": "UniversalLaw/Side24/Ledger.lean", @@ -371,16 +641,184 @@ "module": "UniversalLaw/Side24/ConeMoments.lean", "replace": "20 * 3 = 5 * 12", "with": "20 * 3 = 6 * 12", - "expected_diagnostic": "51:28: error: Tactic `decide` proved that the proposition\n 8 + 8 + 2 * 2 = 20 \u2227 20 * 3 = 6 * 12 \u2227 8 + 8 - 2 * 2 = 12 \u2227 12 = 1 * 12 \u2227 8 - 8 = 0\nis false\n" + "expected_diagnostic": "51:28: error: Tactic `decide` proved that the proposition\n 8 + 8 + 2 * 2 = 20 ∧ 20 * 3 = 6 * 12 ∧ 8 + 8 - 2 * 2 = 12 ∧ 12 = 1 * 12 ∧ 8 - 8 = 0\nis false\n" }, "false_endpoint_adjacency": { "module": "UniversalLaw/Side24/Endpoints.lean", "replace": "d2Upper = d2Lower + 1", "with": "d2Upper = d2Lower + 2", - "expected_diagnostic": "31:80: error: Tactic `decide` proved that the proposition\n d2Lower < d2Upper \u2227 d2Upper = d2Lower + 2\nis false\n" + "expected_diagnostic": "31:80: error: Tactic `decide` proved that the proposition\n d2Lower < d2Upper ∧ d2Upper = d2Lower + 2\nis false\n" + }, + "false_price_boundary_third": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "replace": "1 * 9 < 4 * 3", + "with": "1 * 9 < 2 * 3", + "expected_diagnostic": "92:66: error: Tactic `decide` proved that the proposition\n List.foldl min 9 (List.map priceNum subsets2) = 4 ∧ 1 * 9 < 2 * 3\nis false\n" + }, + "wrong_generator_prices": { + "module": "UniversalLaw/P15/PriceBoundary.lean", + "replace": "= [9, 6, 6, 4]", + "with": "= [9, 6, 6, 5]", + "expected_diagnostic": "85:89: error: Tactic `decide` proved that the proposition\n 3 * 3 = 9 ∧ List.map priceNum subsets2 = [9, 6, 6, 5]\nis false\n" + }, + "false_palette_815_count": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "replace": "815 * 3 < 2448", + "with": "816 * 3 < 2448", + "expected_diagnostic": "72:2: error: Tactic `decide` proved that the proposition\n 2454 - 6 = 2448 ∧ 816 * 3 < 2448 ∧ 6 * 408 = 2448\nis false\n" + }, + "wrong_transversal_count": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "replace": "= 419743994415", + "with": "= 419743994416", + "expected_diagnostic": "59:66: error: Tactic `decide` proved that the proposition\n 6 * choose 409 2 = 500616 ∧ 15 * 409 ^ 4 = 419743994416\nis false\n" + }, + "false_rho_endpoint_adjacency": { + "module": "UniversalLaw/P15/FullPrice.lean", + "replace": "rhoUpper = rhoLower + 1", + "with": "rhoUpper = rhoLower + 2", + "expected_diagnostic": "53:90: error: Tactic `decide` proved that the proposition\n rhoLower < rhoUpper ∧ rhoUpper = rhoLower + 2\nis false\n" + }, + "false_rho_upper_six_sevenths": { + "module": "UniversalLaw/P15/FullPrice.lean", + "replace": "rhoUpper * 7 < 6 * 10 ^ 20", + "with": "rhoUpper * 7 < 5 * 10 ^ 20", + "expected_diagnostic": "57:86: error: Tactic `decide` proved that the proposition\n rhoUpper * 7 < 5 * 10 ^ 20\nis false\n" + }, + "wrong_taylor_certificate": { + "module": "UniversalLaw/P15/FullPrice.lean", + "replace": "= 197 * 29160 + 26081", + "with": "= 197 * 29160 + 26080", + "expected_diagnostic": "89:69: error: Tactic `decide` proved that the proposition\n 6 ^ 5 * fact 5 = 933120 ∧ 32 * 29160 = 933120 ∧ expElevenSixthsNumerator = 197 * 29160 + 26080 ∧ 0 < 26081\nis false\n" + }, + "wrong_whole_ground_chromatic": { + "module": "UniversalLaw/P15/RealizedCovers.lean", + "replace": "2454 / 3 = 818 ∧", + "with": "2454 / 3 = 819 ∧", + "expected_diagnostic": "77:75: error: Tactic `decide` proved that the proposition\n 2454 / 3 = 819 ∧ 818 * 3 = 2454\nis false\n" } }, "compiled_inventory": [ + [ + "def", + "user", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.expElevenSixthsNumerator" + ], + [ + "def", + "user", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.fact" + ], + [ + "def", + "aux", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.fact._f" + ], + [ + "def", + "aux", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.fact._sunfold" + ], + [ + "def", + "aux", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.fact._unsafe_rec" + ], + [ + "def", + "aux", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.fact.match_1" + ], + [ + "def", + "user", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.rhoLower" + ], + [ + "def", + "user", + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.rhoUpper" + ], + [ + "def", + "user", + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.good" + ], + [ + "def", + "user", + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.goodMassNum" + ], + [ + "def", + "user", + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.priceNum" + ], + [ + "def", + "user", + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2" + ], + [ + "def", + "user", + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.totalMassNum" + ], + [ + "def", + "user", + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.weightNum" + ], + [ + "def", + "user", + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.ceilDiv" + ], + [ + "def", + "user", + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.choose" + ], + [ + "def", + "aux", + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.choose._f" + ], + [ + "def", + "aux", + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.choose._sunfold" + ], + [ + "def", + "aux", + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.choose._unsafe_rec" + ], + [ + "def", + "aux", + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.choose.match_1" + ], [ "def", "user", @@ -467,49 +905,157 @@ ] ], "codegen_inventory": [ + [ + "UniversalLaw.P15.FullPrice", + "List.foldl._at_.UniversalLaw.P15.expElevenSixthsNumerator.spec_0" + ], + [ + "UniversalLaw.P15.FullPrice", + "List.foldl._at_.UniversalLaw.P15.expElevenSixthsNumerator.spec_0._boxed" + ], + [ + "UniversalLaw.P15.FullPrice", + "List.foldl._at_.UniversalLaw.P15.expElevenSixthsNumerator.spec_0._closed_0" + ], + [ + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.expElevenSixthsNumerator._closed_0" + ], + [ + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.expElevenSixthsNumerator._closed_1" + ], + [ + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.fact._boxed" + ], + [ + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.rhoLower._closed_0" + ], + [ + "UniversalLaw.P15.FullPrice", + "UniversalLaw.P15.rhoUpper._closed_0" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "List.filterTR.loop._at_.UniversalLaw.P15.goodMassNum.spec_0" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "List.foldl._at_.UniversalLaw.P15.totalMassNum.spec_0" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "List.foldl._at_.UniversalLaw.P15.totalMassNum.spec_0._boxed" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.good._boxed" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.goodMassNum._closed_0" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.goodMassNum._closed_1" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.priceNum._boxed" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_0" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_1" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_2" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_3" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_4" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_5" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_6" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.subsets2._closed_7" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.totalMassNum._closed_0" + ], + [ + "UniversalLaw.P15.PriceBoundary", + "UniversalLaw.P15.weightNum._boxed" + ], + [ + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.ceilDiv._boxed" + ], + [ + "UniversalLaw.P15.RealizedCovers", + "UniversalLaw.P15.choose._boxed" + ], [ "UniversalLaw.Side24.Ledger", - "UniversalLaw.Side24.sixB._boxed" + "List.foldl._at_.UniversalLaw.Side24.expTaylorNumerator.spec_0" ], [ "UniversalLaw.Side24.Ledger", - "UniversalLaw.Side24.sixA._boxed" + "List.foldl._at_.UniversalLaw.Side24.expTaylorNumerator.spec_0._boxed" ], [ "UniversalLaw.Side24.Ledger", - "UniversalLaw.Side24.expTaylorNumerator._closed_1" + "List.foldl._at_.UniversalLaw.Side24.expTaylorNumerator.spec_0._closed_0" ], [ "UniversalLaw.Side24.Ledger", - "UniversalLaw.Side24.expTaylorNumerator._closed_0" + "List.foldl._at_.UniversalLaw.Side24.pairingSum.spec_0" ], [ "UniversalLaw.Side24.Ledger", - "List.foldl._at_.UniversalLaw.Side24.expTaylorNumerator.spec_0._boxed" + "List.foldl._at_.UniversalLaw.Side24.pairingSum.spec_0._boxed" ], [ "UniversalLaw.Side24.Ledger", - "List.foldl._at_.UniversalLaw.Side24.expTaylorNumerator.spec_0" + "UniversalLaw.Side24.expTaylorNumerator._closed_0" ], [ "UniversalLaw.Side24.Ledger", - "List.foldl._at_.UniversalLaw.Side24.expTaylorNumerator.spec_0._closed_0" + "UniversalLaw.Side24.expTaylorNumerator._closed_1" ], [ "UniversalLaw.Side24.Ledger", - "UniversalLaw.Side24.pairingSum._boxed" + "UniversalLaw.Side24.fact._boxed" ], [ "UniversalLaw.Side24.Ledger", - "List.foldl._at_.UniversalLaw.Side24.pairingSum.spec_0._boxed" + "UniversalLaw.Side24.pairingSum._boxed" ], [ "UniversalLaw.Side24.Ledger", - "List.foldl._at_.UniversalLaw.Side24.pairingSum.spec_0" + "UniversalLaw.Side24.sixA._boxed" ], [ "UniversalLaw.Side24.Ledger", - "UniversalLaw.Side24.fact._boxed" + "UniversalLaw.Side24.sixB._boxed" ] ] } diff --git a/formal/reviews/TEMPLATE_alignment_review.json b/formal/reviews/TEMPLATE_alignment_review.json index ba5a1b4c2..aa51b72ac 100644 --- a/formal/reviews/TEMPLATE_alignment_review.json +++ b/formal/reviews/TEMPLATE_alignment_review.json @@ -4,12 +4,12 @@ "scope_sha256": "REPLACE_WITH_THE_files[formal/SCOPE.md]_VALUE_FROM_THAT_MANIFEST", "targets": [ "UniversalLaw.Side24.pairing_sum_six", - "... exactly all 31 target names from manifest.json ..." + "... exactly all 59 target names from manifest.json ..." ], "author": { "provider": "Anthropic", "family": "Claude", - "agent": "Cursor cloud agent, 2026-09-27" + "agent": "Cursor cloud agent, 2026-09-27 (Side24 modules); Claude Code session_01Cz7WZybv8znP64SpPj6sWY, 2026-10-10 (P15 modules)" }, "reviewer": { "provider": "REPLACE (must differ from author)", diff --git a/formal/sources/p15_v1/full_price_20260924_PROOF.md b/formal/sources/p15_v1/full_price_20260924_PROOF.md new file mode 100644 index 000000000..582180e41 --- /dev/null +++ b/formal/sources/p15_v1/full_price_20260924_PROOF.md @@ -0,0 +1,153 @@ +# Full transformed-price budgets without a probability cutoff + +**Object:** P15-FULL-TRANSFORMED-PRICE-20260924-v1. +**Author:** OpenAI / ChatGPT. **Disposition:** author-side mathematical derivation; nonauthor review open. + +[Research home](https://github.com/d6g8k5htny-coder/main) · [Math index](../../README.md) · [Original realization](../three_fronts_20260924/P15_REALIZED_COVERS.md) · [Demand-one counterexample](../three_fronts_20260924/P15_PRICE_BOUNDARY.md) + +## 1. Exact scope and result + +Use the original realized family, not arbitrary P15 inputs. H is a finite clutter of block supports, every edge has size at least two (empty H is allowed). The original coordinate blocks are disjoint, with + + |X_i|=a_i d_i+1, a_i>=1, d_i>=2 integers. + +The decreasing family D consists of U with |U intersect X_i|<=a_i in each block and with occupied-block support containing no H-edge. Its complete minimal original forbidders and its actual local restrictions are proved in P15-REALIZED-COVERS-20260924-v1, SHA256 `c0dbb821fb57b685a20cc321e4074456f39a9697f3104afd1f728e4732179bb9`. + +Write O_K(D) for sets not partitionable into at most K members of D. Let K_H(d) be the least palette size with |P_i|>=d_i and empty intersection over every H-edge. For K>=K_H(d), the specified family of full-block generators {X_i} covers O_K(D), regardless of probabilities or prices. A generator g costs product_(v in g)c_v. The empty generator costs one; an empty family costs zero. + +Put phi(p)=min(1,-log(1-p)), with phi(1)=1. Define + + p_star=1-exp(-1), + h_star=3-log(3e-2), + rho_star=1/h_star. (F1) + +**Theorem F.** For EVERY independent original probability vector p in [0,1]^X, every price vector 0<=c_v<=phi(p_v), and the SAME palette K>=K_H(d), + + covercost_c(O_K(D)) <= min(1,rho_star[-log mu_p(D)]). (F2) + +Before capping, the union of full-block generators has price at most rho_star times the global hazard. The constant rho_star is optimal uniformly over this entire realized class, even when alternative generator covers are allowed. Explicitly, + + 0.84547981724898672067 < rho_star + < 0.84547981724898672068 < 6/7. (F3) + +Thus 6/7 is a simpler valid rational factor. The probability ceilings 1/4 and 3/7 are no longer required. Demand d_i>=2 is still essential to this uniform family guarantee. This is not an unrestricted downset/prize theorem; palette size remains K_H(d), which can depend on H and d. + +The prior probability<=1/4 theorem, SHA `3b79d2de60d77df9dd0d81cea60935d3dbceeb26fcf2d38d62667a425180a535`, gives the stronger factor16/27 on its smaller domain and should still be used there. The local-only3/7 note is a historical intermediate result, not a prerequisite here. No prior proof or counterexample is overwritten. + +## 2. A general hazard interpolation lemma + +Let A be any proper decreasing family on n>=1 coordinates containing the empty set. Put + + p_i(t)=1-exp(-t_i), t in [0,1]^n, + F_A(t)=-log mu_(p(t))(A), + H_A=F_A(1,...,1)>0. + +The probability is positive on this compact cube because the empty set is admitted and every p_i(t)<1. In one coordinate, after averaging over all others, its good-event probability is exactly + + mu(A)=A0+B0 exp(-t_i), A0>=0, B0>=0. (F4) + +Here A0 is the probability of membership when that coordinate is present, and A0+B0 is the probability when it is absent. The inequality B0>=0 follows from decreasingness. Their sum is positive. Direct differentiation yields + + partial_i F_A = B0 exp(-t_i)/(A0+B0 exp(-t_i)), + partial_i^2 F_A = -A0 B0 exp(-t_i) + /(A0+B0 exp(-t_i))^2 <= 0. (F5) + +Only SEPARATE coordinatewise concavity is asserted; joint concavity is not needed or claimed. Also F_A>=0. The chord inequality in coordinate i therefore gives + + F_A(t) >= t_i F_A(t with t_i=1). + +Iterating across coordinates, keeping all factors nonnegative, proves + + F_A(t) >= (product_i t_i) H_A. (F6) + +Now take arbitrary original probabilities p_i in [0,1], set t_i=phi(p_i), and let p'_i=1-exp(-t_i). Then p'_i<=p_i, including p_i=1. Decreasingness gives mu_p(A)<=mu_(p')(A), so + + -log mu_p(A) >= H_A product_i phi(p_i). (F7) + +This holds as an extended inequality if the left side is infinite. At a zero probability the product is zero; no division by it is performed. For any transformed prices, + + product_i c_i <= min(1, [-log mu_p(A)]/H_A). (F8) + +This is a PRICE estimate for the full-ground generator. It does not assert that this generator alone covers an arbitrary obstruction. That setwise property is supplied separately for the capacity construction below. + +The constant1/H_A in the uncapped hazard comparison is exact: at every p_i=p_star and every c_i=1, the two sides of (F7) are equal. In particular a full-ground generator universally meets the capped hazard budget precisely when H_A>=1. The necessity uses that same reference vector; it does not infer coverage of arbitrary A. + +## 3. Capacity families and the sharp worst case + +For a capacity restriction A={S:|S|<=a} on n coordinates, + + H_(n,a)=-log P(Bin(n,p_star)<=a). (F9) + +Our n=ad+1 and d>=2 imply n>=2a+1. Adding independent Bernoulli trials without raising the threshold can only decrease the good probability. It remains to compare odd majority tails. Let S~Bin(2a+1,p), with p>1/2. Directly adjoining two trials gives + + P(Bin(2a+3,p)<=a+1)-P(S<=a) + =(1-p)^2 P(S=a+1)-p^2 P(S=a) + =p(1-2p)P(S=a)<0. (F10) + +The ratio P(S=a+1)/P(S=a)=p/(1-p) proves the second equality. Since a>=1, the maximal odd-tail probability occurs at a=1,n=3. Consequently + + H_(n,a) >= H_(3,1) + =-log[3exp(-2)-2exp(-3)] + =3-log(3e-2)=h_star>1. (F11) + +For the last inequality, e>2 and + + e^2-(3e-2)=(e-1)(e-2)>0, + +so 3exp(-2)-2exp(-3)=K_H(d); (F13) gives its budget. If its union price exceeds one, use the empty generator. This proves (F2). If a local good probability is zero, global goodness has probability zero and the price-one cap proves the assertion. If global goodness is zero for crossing reasons alone, the same cap applies. Zero-price generators are kept for setwise completeness. + +For the established six blocks of409 coordinates (a_i=1,d_i=408, all15 four-block supports), the SAME816-label cover now works for every independent p_v in [0,1] and every c_v<=phi(p_v). Its whole-ground chromatic number remains818. No coordinates are cloned, and the full crossing family is retained. At sufficiently low probabilities the earlier16/27 budget is better; on the whole cube (F2) is valid. + +## 5. Sharpness and the exact demand boundary + +Take one block, a=1,d=2,n=3, no macro edges and K=2. Every proper subset is two-decomposable and the full triple is not. At p_i=p_star and c_i=1, every possible generator has price one, including the empty generator. Any cover of the nonempty obstruction therefore costs at least one, and one generator attains it. The available hazard is h_star. Replacing rho_star by any smaller constant in (F2) would make its right side strictly less than one. This proves sharpness even among alternative covers, not only for our chosen full-block cover. + +If d=1, n=a+1 and K=1, the sole obstruction is again the full block. At p_i=p_star,c_i=1 every cover costs at least one, but + + mu_p(D)=1-p_star^(a+1)>1-p_star=exp(-1), + +hence its hazard is less than one. The universal same-palette transformed-price guarantee is false in this demand-one family. This preserves and generalizes the earlier two-coordinate counterexample; it does not retract original P15-B, whose local-budget premise is missing in that case. + +Thus d>=2 is sufficient for the realized capacity family on the full probability cube, while a uniform statement admitting all d=1 examples would be false. This is not a necessity claim for every multi-block instance with some demand one; other constraints may change its budget. + +## 6. Exact numerical certificate and validation limits + +The proof of the simpler bound rho_star<6/7 can be made with short rational certificates. The exponential series and its positive geometric tail give + + e < 31967/11760 < 87/32, + 87/32-31967/11760=11/23520. + +The positive Taylor polynomial through degree5 satisfies + + sum_(j=0)^5 (11/6)^j/j! -197/32=26081/933120>0. + +Therefore 3e-2<197/327/6 and rho_star<6/7. + +For (F3), full_price.py bounds e by its positive series plus a geometric tail. It encloses logarithms using binary reduction and + + log x = 2 sum_(j>=0) t^(2j+1)/(2j+1), t=(x-1)/(x+1), + +on 1<=x<=2, with remainder bounded by2 t^(2m+1)/[(2m+1)(1-t^2)]. Exact Fraction endpoints are propagated monotonically through the binomial tail and logarithm, then reciprocated and rounded outward to20 decimal places. No floating-point value determines a certified endpoint. + +The finite suite checks the recurrence against subset enumeration, the odd-majority identity, the coordinatewise derivative sign, exact constants and endpoint conventions, heterogeneous probability grids, and preservation of the demand-one counterexample. These checks support algebra and implementation; the continuum hazard inequality is the written proof, not a conclusion from the grid. No independent reviewer, formal checker, Gaussian/RN closure or unrestricted prize acceptance is claimed. + +## 7. Source and reconnaissance + +Project inputs are the unchanged realized-cover and price-boundary sources linked above, original P15-B (Drive19D-eHQAIXMGGy2ThZUfZ0GGjIKWm5C2j; SHA9b18b6e9abc90d18deef06ab12e3aa7794dad40e1618d99daa88e369c300e8c3), and the published restricted-price note (Math-PR4). This proof derives (F4)-(F13) directly rather than importing a theorem from an abstract. + +Primary-source reconnaissance on24September2026 read the arXiv abstracts of Gunby–He–Narayanan, Down-set thresholds,2112.08525v2, and Warnke, Note on down-set thresholds,2310.11662v2. Their downset/expectation-threshold results provide neighboring context, not the hazard-transfer theorem above, and do not license arbitrary-downset closure. The bounded search did not establish novelty or historical priority. Attribution to classical separate concavity, Bernoulli conditioning, and binomial identities is not replaced by a project-specific invention claim. diff --git a/formal/sources/p15_v1/price_budget_20260924_PROOF.md b/formal/sources/p15_v1/price_budget_20260924_PROOF.md new file mode 100644 index 000000000..9b17d179d --- /dev/null +++ b/formal/sources/p15_v1/price_budget_20260924_PROOF.md @@ -0,0 +1,152 @@ +# Restoring the transformed-price budget under explicit hypotheses + +**Object:** P15-TRANSFORMED-PRICE-BUDGET-20260924-v1. +**Author:** OpenAI / ChatGPT. **Disposition:** author-side derivation; nonauthor review open. + +[Research home](https://github.com/d6g8k5htny-coder/main) · [Math index](../../README.md) · [Prior construction](../three_fronts_20260924/P15_REALIZED_COVERS.md) · [Unchanged counterexample](../three_fronts_20260924/P15_PRICE_BOUNDARY.md) + +## 1. What changes and what does not + +The exact original-coordinate construction in `P15_REALIZED_COVERS.md`, SHA256 +`c0dbb821fb57b685a20cc321e4074456f39a9697f3104afd1f728e4732179bb9`, proves a +cover theorem for prices c_v<=p_v. The separate two-coordinate counterexample, +SHA256 `498af650ef7139c39d2630561dbfd0822c495ce6308a6cac8b767aefe0c2a40b`, +refutes extending the SAME palette to every c_v<=phi(p_v) with no additional +hypotheses. Both sources remain unchanged. Here phi(p)=min(1,-log(1-p)), with +phi(1)=1. This note supplies additional sufficient hypotheses; it does not retract +that counterexample, accept an unrestricted prize, or claim new classical coloring theory. + +Use the prior construction exactly. H is a clutter of block supports, with every +edge of size at least two; the original disjoint blocks satisfy |X_i|=a_i*d_i+1. +The downset D consists of sets using at most a_i vertices of each block and whose +occupied-block support contains no H-edge. The complete crossing witnesses are +ALL H-edge transversals. K_H(d) is the integer demand-palette optimum. The specified +cover consists of the full blocks X_i; an obstructed set contains a generator. +A generator g costs product_(v in g)c_v, the empty generator costs one, and an +empty family costs zero. No random coordinates are copied. + +**Theorem (restricted transformed-price extension).** Suppose every a_i>=1, +every d_i>=2, and all independent original probabilities satisfy 0<=p_v<=1/4. +Then for EVERY set of prices 0<=c_v<=phi(p_v), at the SAME K>=K_H(d), + + covercost_c(O_K(D)) <= min(1,(16/27)*[-log mu_p(D)]). (T1) + +The uncapped full-block union has cost at most the expression inside the second +argument of this minimum. Cap with the empty generator when needed. The palette +and the original-coordinate support family are not enlarged. The constants in +this theorem are explicit; unlike the Gaussian lifetime remainder, there is no +unevaluated radius or error constant here. + +## 2. Local budget proof + +For 0<=p<1, elementary integration gives + + -log(1-p)=integral_0^p dt/(1-t) <= p/(1-p). (T2) + +Consider one block with capacity a>=1, demand d>=2 and n=ad+1. Its local failure +probability is q=P(number of selected original coordinates > a). If any p_v=0, +the full-block generator price is zero and the desired inequality is immediate; +the zero-price generator remains in the cover for setwise completeness. + +Otherwise choose any subset S of a+1 original coordinates. The event that all +members of S are selected is a local failure, regardless of the other coordinates. +By independence, q>=product_(v in S)p_v. Using (T2), p_v<=1/4, and n>=2a+1, + + product_(v in X)c_v / product_(v in S)p_v + <= product_(v notin S)p_v / product_(v in X)(1-p_v) + <= (1/4)^(n-a-1)/(3/4)^n + = (4^(a+1))/(3^n) + <= (4/3)*(4/9)^a <=16/27. (T3) + +Consequently the full-block generator satisfies + + price({X}) <= (16/27)q <= phi(q). (T4) + +This proof does not require equal probabilities. No independence of different +crossing-witness events is used. The extra demand hypothesis d>=2 is load-bearing: +when a=d=1, n=2, the ratio calculation does not supply (T3), and the earlier +counterexample applies. The bound p_v<=1/4 is a sufficient range, not an asserted +sharp threshold. + +A more general sufficient ratio, for any common upper bound p_*<1, is + + rho(a,d,p_*)=p_*^(ad-a)/(1-p_*)^(ad+1). (T5) + +If rho<=1 the same argument proves price({X})<=q for that block. This is only a +sufficient test; rho>1 is not a counterexample and must not be labeled infeasible. + +## 3. Global budget and unchanged palette + +Write q_i=P(U intersect X_i notin D_i) for the ACTUAL capacity restriction. +Disjoint original blocks make their local-good events independent. Global goodness +implies all local restrictions are good, even though crossing constraints may +create further failures. Therefore + + mu_p(D)<=product_i(1-q_i), + sum_i q_i<=-log(product_i(1-q_i))<=-log mu_p(D). (T6) + +Sum (T4), then use (T6). The exact setwise argument of the prior realization +shows that the union of full-block generators covers O_K(D) for K>=K_H(d), +independently of prices. This proves (T1). If mu_p(D)=0 the price-one cap applies; +if mu_p(D)=1 the union price is zero by the same estimates. This is the same +local-cover/budget interface as original P15-B, source SHA256 +`9b18b6e9abc90d18deef06ab12e3aa7794dad40e1618d99daa88e369c300e8c3`. + +## 4. Exact original-coordinate consequence for the 816-label example + +Use the prior six blocks of 409 original coordinates, a_i=1, d_i=408, and all +15 four-block forbidden supports. At p_v=1/40900, every hypothesis above holds. +Thus the SAME 816-label obstruction cover is valid for the FULL transformed range + + 0<=c_v<=log(40900/40899), + +not merely c_v<=1/40900. At maximal equal prices its nonzero union price is + + 6*log(40900/40899)^409 <=6/(40899^409). (T7) + +An explicit rational price strictly larger than p is + + c=p+p^2/2=81801/3345620000. + +It is admissible since integral_0^p 1/(1-t)dt > integral_0^p(1+t)dt for p>0. +Its cover price is exactly 6*c^409. The palette remains 816; the entire ground +set still requires 818 colors, and there are 2454 original coordinates. No large +witness enumeration or new claim about arbitrary old P15 instances is involved. + +## 5. A useful exact checker beyond the simple uniform hypothesis + +The supplied standard-library program computes q exactly for rational inputs via +a truncated Poisson-binomial recursion. If b_j denotes P(exactly j successes) for +j<=a, one new coordinate updates b_j to (1-p)b_j+p b_(j-1); discarded higher +counts never return. Hence q=1-sum_(j=0)^a b_j after all coordinates. + +It bounds every transformed generator price by + + U=product_v min(1,p_v/(1-p_v)), + +with the p_v=1 factor defined as one. It certifies a sufficient local budget if +U<=q, or if q>=2/3 (then phi(q)=1, since log3>1). The low-probability theorem +additionally verifies U<=(16/27)q. It rejects inexact inputs and explicitly limits +problem size; its arithmetic cost is O(n*a) rational operations, not a polynomial +bit-complexity or arbitrary-hypergraph optimization claim. + +A non-certified output means only these sufficient tests did not prove the budget. +The program is not a full cover optimizer, a logarithmic interval decision procedure, +a test of global scientific status, or an independent proof reviewer. The earlier +two-coordinate counterexample is correctly not certified. The proof of log3>1 +is 2*integral_0^(1/2)1/(1-t^2)dt>1, so the cap test is also exact. + +## 6. Review and attribution + +Review (T3)'s ratio exponents, the demand and probability conditions, (T6)'s +inequality direction, zero-price completeness, and the distinction between the +specified cover threshold and whole-ground colorability. Finite tests compare +the local recursion with subset enumeration and preserve the earlier counterexample. +They do not establish independent analytic acceptance. + +Primary-source reconnaissance on 24 September 2026 inspected Park–Pham, +*A Proof of the Kahn–Kalai Conjecture*, arXiv:2203.17207 abstract, and +Gunby–He–Narayanan, *Down-set thresholds*, arXiv:2112.08525 abstract. +These are neighboring threshold results, not inputs to (T1) and not evidence of +novelty. The proof here uses the named in-project sources and the explicitly derived +elementary inequalities. No theorem from those abstracts is imported. diff --git a/formal/sources/p15_v1/three_fronts_20260924_P15_PRICE_BOUNDARY.md b/formal/sources/p15_v1/three_fronts_20260924_P15_PRICE_BOUNDARY.md new file mode 100644 index 000000000..1d6946658 --- /dev/null +++ b/formal/sources/p15_v1/three_fronts_20260924_P15_PRICE_BOUNDARY.md @@ -0,0 +1,43 @@ +# Why the realized-cover theorem cannot simply use every transformed price + +**Object:** P15-PRICE-BOUNDARY-20260924-v1. Author: OpenAI / ChatGPT. +This is an exact counterexample to one proposed extension, not to P15-B or to +an unrestricted large-palette theorem. + +The realized-cover theorem deliberately assumes c_v<=p_v. Consider its smallest +one-block member: a_1=d_1=1, X={x,y}, no macro edges. Its good sets are the empty +set and singletons, its palette optimum is K_H(d)=1, and its one-piece obstruction +is exactly {X}. The prescribed cover is {{x,y}}. + +Take independent original probabilities p_x=p_y=1/2 and prices c_x=c_y=2/3. +These are admissible TRANSFORMED prices: phi(1/2)=log 2>2/3. For example, + + log 2=2 integral_0^(1/3) 1/(1-t^2) dt > 2/3. + +Nevertheless mu_p(D)=3/4, and + + min(1,-log mu_p(D))=log(4/3)<1/3, + +using log(1+x)0. Every cover of the obstruction {X} must contain a +generator g subset X. The possible generator costs are1,2/3,2/3,4/9 for the empty +set, the two singletons, and X respectively. Additional nonnegative-price +generators cannot reduce the minimum. Therefore the EXACT optimal cover price is + + covercost_c(O_1(D))=4/9 > 1/3 > log(4/3). + +Thus replacing c<=p by c<=phi(p) in the realized-family theorem while keeping its +same palette K_H(d) is FALSE in general, even if arbitrary alternative covers +rather than the prescribed cover are permitted. This is stronger than merely +saying that the existing proof does not establish the extension. + +It does not contradict the original P15-B amalgamation: that source separately +requires each local cover to meet its local phi(q_i) budget, which fails here. +It also does not refute a theorem allowing more colors: with two colors this +particular whole ground set is properly colorable, the obstruction is empty, +and the empty family has price zero. No conclusion about the original408-scale +or unrestricted prize follows from a one-color counterexample. + +The accompanying three finite tests enumerate all generator families on the +actual two-coordinate ground set, compute the product-measure probability exactly, +and check the rational comparisons used above. The two elementary logarithm +inequalities are proved in this note, not replaced by floating-point evaluations. diff --git a/formal/sources/p15_v1/three_fronts_20260924_P15_REALIZED_COVERS.md b/formal/sources/p15_v1/three_fronts_20260924_P15_REALIZED_COVERS.md new file mode 100644 index 000000000..173881916 --- /dev/null +++ b/formal/sources/p15_v1/three_fronts_20260924_P15_REALIZED_COVERS.md @@ -0,0 +1,140 @@ +# P15: actual-coordinate realizations with nonempty covers and exact palette demand + +**Object:** P15-REALIZED-COVERS-20260924-v1. +**Author:** OpenAI / ChatGPT. **Disposition:** author-side mathematical derivation; no unrestricted prize closure or independent review. + +## 1. The source interface, not a substitute hypergraph + +The original source is P15-B, `P15-B_PALETTE_SEPARATED_LOCALIZATION.md`, Drive `19D-eHQAIXMGGy2ThZUfZ0GGjIKWm5C2j`, 6286 bytes, SHA256 `9b18b6e9abc90d18deef06ab12e3aa7794dad40e1618d99daa88e369c300e8c3`. It was read in full. P15-B requires ACTUAL local restrictions, compatible local covers at the same original-coordinate prices, and palette separation on EVERY crossing minimal original forbidden set. Main issues59/61 and the later consecutive-palette construction left that application check open in general. + +This note supplies an explicit, nontrivial family for which all those inputs are proved, including NONEMPTY local generator covers. It does not claim that every existing P15 downset belongs to this family or that the previous abstract examples already specified these original coordinates. The price range is deliberately stated as 0<=c_v<=p_v, a subset of P15-B's possible transformed-price range c_v<=phi(p_v). No assertion is made here for the additional prices p_v=1; removing a vertex leaves a proper subset of e, which contains no H-edge by the clutter property. Thus it is minimal. Conversely, any bad set either exceeds a local capacity and contains a set in (a), or has support containing an H-edge and contains a transversal from (b). This proves completeness, not just existence of some witnesses. + +In particular the crossing-support hypergraph is EXACTLY H, and the actual local restriction is + + D_i=D intersect 2^(X_i)={S subset X_i: |S|<=a_i}. (P2) + +The restriction does not inherit an artificial stronger condition. Neither a sampled list of transversals nor an incomplete lifting can replace (b). + +## 3. Real, positive-price local obstruction covers + +The k-fold decomposability of a capacity family is exact: + + I_k(D_i)={S:|S|<=a_i k}. + +Necessity follows by summing the k capacities; sufficiency partitions S into successive groups of at most a_i elements. For k=d_i and n_i=a_i d_i+1, the only obstructed subset of X_i is X_i itself. Hence + + G_i={X_i} (P3) + +is an exact local obstruction cover. It is not the empty family arising from proper colorability of the entire block with d_i colors. + +Select the ORIGINAL coordinates independently with arbitrary probabilities p_v in [0,1], and let 0<=c_v<=p_v. With q_i=P(U_i notin D_i), + + price(G_i)=product_(v in X_i)c_v + <=product_(v in X_i)p_v + =P(U_i=X_i)<=q_i<=phi(q_i), (P4) + +where phi(t)=min(1,-log(1-t)), phi(1)=1. When all c_v>0 the local price is positive. When a zero price occurs the generator is still retained for setwise coverage. + +The independent-block calculation uses (P2), so + + mu_p(D)<=product_i(1-q_i), + sum_i price(G_i)<=sum_i q_i + <=-log(product_i(1-q_i))<=-log mu_p(D). (P5) + +If some q_i=1 the trivial price-one cover handles the endpoint. When the summed price exceeds1 use {empty set}; otherwise retain union_i G_i. This produces the capped hazard bound whenever the palette condition below holds. Crossing events are not declared independent, and no coordinates are cloned. + +## 4. The exact number of colors needed for this cover + +Let K_H(d) be the minimum size K of an integer palette universe admitting subsets P_i with |P_i|>=d_i and + + intersection_(i in e) P_i = empty, for every e in H. (P6) + +Equivalently each label's incident macro-indices form an independent set of H. By discarding excess labels within blocks, one may take |P_i|=d_i. This is the actual macro-demand coloring problem; fractional palettes are not used. + +**Theorem P2.** For D in (P1), the fixed family G={X_1,...,X_b} covers O_K(D) if and only if + + K>=K_H(d). (P7) + +For sufficiency take a set U avoiding all generators. Then |U_i|<=a_i d_i. Split U_i into at most d_i groups of size<=a_i and assign them distinct labels from P_i. A global label's block support is H-independent by (P6), and it uses at most a_i vertices in each block. Each resulting color class is in D. Thus U is K-decomposable. + +For necessity choose U with |U_i|=a_i d_i in EVERY block, omitting one original vertex per block. It avoids every generator X_i. Any D-coloring of U needs at least d_i distinct colors in block i because of its capacity a_i. If a label occurs in every block of an H-edge, completeness of the transversal forbidders makes that label class bad. Thus its used-color sets form palettes satisfying (P6); at least K_H(d) colors are necessary. For K=K_H(d), + + covercost_c(O_K(D)) <= min(1,-log mu_p(D)). (P8) + +Optimality in (P7) is for the SPECIFIED union-of-block-generators cover. It does not prove that no different cover with the same budget works at fewer colors. It is not unrestricted prize optimality. + +For comparison, the chromatic number of the ENTIRE ground set X is K_H(d+1), because ceil(n_i/a_i)=d_i+1. The same palette argument gives both inequalities. Therefore cover demand and whole-ground colorability are distinct quantities. + +## 5. Realized structural subclasses + +For any H whose independent sets form a loopless matroid, the established matroid palette formula in main issue59 can be applied to this actual family. It is not necessary to establish a new matroid theorem here. For a consecutive-capacity presentation, the corresponding consecutive-palette theorem can similarly be consumed only when its exact complete-support hypotheses hold. + +A fully elementary case is H consisting of all (s+1)-subsets of b indices, 1<=s<=b. Each label may occur in at most s blocks, and + + K_H(d)=max(max_i d_i, ceil(sum_i d_i/s)). (P9) + +The two lower bounds follow from one block and from total label incidences. For the matching construction, concatenate segments of lengths d_i along the cyclic word 0,1,...,K-1. Each block has distinct labels because d_i<=K. Each label occurs at most ceil(sum d_i/K)<=s times. This proves (P9) without enumerating individual labels when demands are large. + +The macro triangle at unit demands needs3 colors, although a formula considering only size-two edge loads would give2. The theorem uses K_H itself or a proved structural method, not an unrestricted edge-load formula. + +## 6. A nonempty-cover realization of the 816-label benchmark + +Take six blocks, a_i=1 and d_i=408. Thus EACH original block has409 vertices and the original ground set has2454 vertices. H consists of all15 four-block subsets. Every D-color class contains at most one vertex per block and occupies at most three blocks. + +The original minimal forbidders are exactly + + 6*binom(409,2)=500616 internal pairs, + 15*409^4=419743994415 crossing transversal quadruples. (P10) + +These are counts obtained from a proved complete structural formula, not a claim that the program enumerated more than four hundred billion sets. + +Use408 labels on macro-indices {0,2,4} and408 different labels on {1,3,5}, giving + + K_H(408,...,408)=816. + +The actual cover has six generators, the six FULL409-vertex blocks. At816 colors it covers the obstruction; at815 it does not, because omitting one vertex from each block leaves2448 vertices, each color holds at most3, and815*3<2448. Pairwise-disjoint local palettes would have used2448 labels. The whole ground set, unlike the cover-avoiding sets, needs818 colors, since2454/3=818. + +This is a NEW specified original-coordinate family instantiating the previous abstract benchmark; it is not a statement that every earlier six-block application had409 vertices per block or these complete transversals. + +A concrete low-failure, positive-price instance is p_v=c_v=1/40900. The cover price is exactly + + 6/(40900^409)>0. + +A union bound on internal pairs and four-block occupancy gives + + Q=1-mu_p(D) + <=500616/(40900^2)+15/(100^4) + =2449227/8180000000 < 3/10000. (P11) + +For the second term each block's occupancy probability is at most409p=1/100, and occupancies of distinct blocks are independent. This is only a union bound, not an equality of the global bad probability. Thus the hazard budget is not being satisfied solely in the trivial high-failure regime; the actual-good probability exceeds0.9997. The cost comparison (P5) supplies (P8), rather than comparing this positive price to an unproved numerical hazard lower bound. + +## 7. Exact verification and boundaries + +The executable finite checker constructs actual block coordinates for small cases. It independently enumerates minimal bad subsets, tests equality with (a)-(b), computes actual restrictions, compares original-coordinate colorability with residual-demand dynamic programming, and checks every cover-avoiding subset in declared bounded examples. A removed transversal is a negative control: its now-good original set still violates the macro support condition, so incomplete lifting is detected. The large816 example uses the proved formulas (P9)-(P11), not an unbounded enumeration. + +The original P15-D source (Drive `1z-vrL-f5tDBbqybco-ZiS7X9vJq70ifA`) was also read. It treats complete GRAPH-transversal coupling, arbitrary macro chromatic number and a different scalar/hazard budget. This note does not improve its256 factor or extend it to arbitrary hypergraphs at the same fixed palette. It supplies a separate actual-realization theorem whose palette remains K_H(d). + +The unrestricted P15 prize, full transformed-price range, arbitrary input support identification, and nonauthor review remain open. Classical coloring, hypergraph demand coloring, union bounds and the source P15-B amalgamation are not claimed as inventions. The contribution supplied here is the exact compatible original-coordinate family, nonempty covers, and source-hypothesis verification that were absent from a merely abstract palette output. diff --git a/tests/fixtures/atlas_formal_build_3b39/SCOPE.md.txt b/tests/fixtures/atlas_formal_build_3b39/SCOPE.md.txt new file mode 100644 index 000000000..dea7de288 --- /dev/null +++ b/tests/fixtures/atlas_formal_build_3b39/SCOPE.md.txt @@ -0,0 +1,65 @@ +# Exact formal scope and alignment review — SIDE24 arithmetic skeleton + +Scientific effect: NONE. This package offers 31 exact integer statements that are +the arithmetic skeleton of the SIDE24 coefficient note, `Math-` commit +`9d7b6802424fb4715b31999066aafca8ee2f3cca`, `coefficients/side24_v1/PROOF.md` +(10,272 bytes, SHA-256 `c06daccc4ba4b9168522b9888b76a7d599934fc3b91bd753ee5d492262917769`), +and of its published `ENCLOSURE.json` (1,090 bytes, SHA-256 +`72b6cd92d31394cdaf5da8919a5d548e902228af1f095cc184158a71d8287811`). Both sources +are preserved byte-identically under `sources/side24_v1/`. Core Lean has no +rational type, so each rational identity is stated as the equivalent +cross-multiplied integer identity; the docstring gives the rational form and the +independent alignment review must check that the two agree. + +This package addresses the **first step only** of the "Numerical formalizer" work +offer in [docs/FORMAL_VERIFICATION.md](../docs/FORMAL_VERIFICATION.md). It does +**not** supply the exact definition of the SIDE24 coefficient, any real-analytic +enclosure or remainder step, or a proof-producing enclosure pipeline. Per the +[reconnaissance memo](../docs/reconnaissance/2026-09-27-formal-verification.md): +rational arithmetic on two endpoints cannot establish that an analytically +defined coefficient lies between them, and nothing below claims that it does. + +| Targets | Exact coverage | Not established | +|---|---|---| +| `pairing_sum_six`, `pairing_sum_le_six`, `pairing_terms_six` | Product-rule pairing counts `∑ q!/(2^j j! (q−2j)!)`: value `1+15+45+15 = 76` at `q = 6`, dominance of `q ≤ 6` | The Gaussian derivative bound `76|x|^6 e^{-|x|^2/2}` on `|x| ≥ 1` | +| `sixth_moment_double_factorial` | `1·3·5 = 15` | That contractions of `D^6 e^{-|x|^2/2}` at `0` are bounded by 15 | +| `lattice_shell_constant`, `geometric_ratio_constants`, `period_exponent` | `27·27 = 729`, `729·2 = 1458`, `2^9 = 512`, `288·3 = 864`, `24^2/2 = 288` | Lattice-point counting, the geometric tail sum, the ratio being below `1/2` | +| `image_constant_value` | `1458·(76·24^6+15) = 21175738586478` | The image inequality `|D^q K_24(0) − D^q K_∞(0)| < E` | +| `exp_taylor_partial_sum_gt_ten` | Degree-20 Taylor partial sum of `exp(288/125)`, cleared of denominators, exceeds `10` | That the partial sum is below `exp(288/125)` (positivity of omitted terms is analysis) | +| `covariance_relative_bound` | `2·10·3 = 60` and `60·21175738586478 < 10^17` (i.e. `60E < 10^-108`) | The spectral-norm bound `20E`, `C_ref ≥ I/3`, positive-semidefinite ordering | +| `odd_block_eigenvalues`, `odd_block_shifted_minors`, `smaller_eigenvalue_exceeds_third` | Trace/determinant of `[[1,−3],[−3,15]]`; minors `2`, `7` of `3M − I`; `58·9 < 23^2` | Sylvester's criterion, spectral decomposition, monotonicity of `√` | +| `exponent_bounds`, `exponent_values` | For `d ∈ {2,3}`: `6a+12b < 84`, `12a+6b < 78` with `6a = 6(d−1)+4+3n`, `6b = 6d+3n`, `n = (d−1)d/2` | The `log(1±ε)` / `exp` estimates that use these exponents | +| `ratio_constant_ordering`, `density_comparison_below_reported` | `13 ≤ 32`, `28 ≤ 32`, `32·10^106 < 10^108` | The multiplicative Gaussian density comparison and its integration | +| `conditional_third_derivative_variance` | `15 − (−3)(−3)/1 = 6` | The Gaussian conditioning formula, covariance differentiation | +| `transverse_covariance_entries_thirds`, `cone_moment_m1_thirds` | Entries `8/3`, `1`, `2/3` from the displayed delta formula; `D_1 = 4/3` as half of `8/3` | The delta formula itself; centred Gaussian symmetry | +| `trace_and_traceless_variances`, `fourth_moment_of_trace`, `exponential_moment_of_trace` | `Var s = 5/3`, `Var x = 1`, `Cov(s,x) = 0` from the `2×2` entries; `3·(5/3)^2 = 25/3`; `1 + 5/3 = 8/3` | Gaussian independence from zero covariance, the fourth-moment and exponential-moment identities | +| `cone_moment_m2_algebra` | `4·5 = 20`; `25 − 20 + 24 = 29`; `4^2·3 = 6·8` behind `D_2 = 29/6 − √6` | The integral `∫_0^a (a−z)^2 e^{-z/2} dz/2`, the Rayleigh cone integration | +| `cube_root_simplification` | `6^2·2 = 3·24` behind `6^(2/3)/24^(1/3) = (3/2)^(1/3)` | Real cube roots | +| `pin_determinant_and_joint_dimension`, `hessian_block_eigenvalues` | `det diag(3,1,1) = 3`; joint dimensions `6`, `10`; eigenvalues `4`, `5`, `2` exceed `1/3` | The joint covariance structure, the Hessian block decomposition | +| `d2_endpoints_adjacent`, `d3_endpoints_adjacent`, `d3_below_d2`, `endpoints_in_unit_tenth` | The published 20-digit endpoints, transcribed as integers in `10^-20` units, are adjacent, ordered, and in `(0, 1/10)` | **That either coefficient lies between its endpoints.** This is a consistency check of the frozen artifact, not an enclosure | + +None of these targets is the SIDE24 coefficient enclosure, `Γ(7/6)`, `π`, `exp` +or `log` bounds, the Stirling remainder, Gaussian conditioning, the cone +integrals, the parent lifetime theorem, elder selection or Kac–Rice. The Layer 0 +status of D3 in [STATUS.md](../STATUS.md) is unchanged by anything here. + +## Review contract + +Identical to the Math- lane contract. The manifest is an evidence sidecar, not a +scientific register. A trusted successful `--run-lean` execution establishes +kernel evidence only for these 31 target declarations and their displayed +hypotheses, relative to Lean's kernel, standard foundations and the pinned +toolchain. Independent review must compare each Lean statement (and each +cross-multiplication) to this scope note and the informal anchor in +`manifest.json`. Review author, provider, family and agent must be explicit and +differ from the author's (`Anthropic` / `Claude` / Cursor cloud agent). Validate +a record with `python3 tools/formal_gate_check.py --alignment review.json`; the +validator checks structure, digests, coverage and lineage, and does not +authenticate that a review happened. + +The record contains disposition `ACCEPTED`, `manifest_sha256`, `scope_sha256` +(the hash of this file as bound in the manifest), exactly the 31 targets, +author/reviewer objects with provider/family/agent, and evidence +repository/path/40-character commit/sha256. At publication no independent +alignment review is claimed. A fresh source, scope, toolchain or manifest digest +stales the old review. diff --git a/tests/fixtures/atlas_formal_build_3b39/TEMPLATE_alignment_review.json.txt b/tests/fixtures/atlas_formal_build_3b39/TEMPLATE_alignment_review.json.txt new file mode 100644 index 000000000..ba5a1b4c2 --- /dev/null +++ b/tests/fixtures/atlas_formal_build_3b39/TEMPLATE_alignment_review.json.txt @@ -0,0 +1,27 @@ +{ + "disposition": "ACCEPTED | REJECTED | ACCEPTED_AT_NARROWER_SCOPE (only ACCEPTED validates)", + "manifest_sha256": "REPLACE_WITH_SHA256_OF_formal/manifest.json_AT_THE_REVIEWED_COMMIT", + "scope_sha256": "REPLACE_WITH_THE_files[formal/SCOPE.md]_VALUE_FROM_THAT_MANIFEST", + "targets": [ + "UniversalLaw.Side24.pairing_sum_six", + "... exactly all 31 target names from manifest.json ..." + ], + "author": { + "provider": "Anthropic", + "family": "Claude", + "agent": "Cursor cloud agent, 2026-09-27" + }, + "reviewer": { + "provider": "REPLACE (must differ from author)", + "family": "REPLACE (must differ)", + "agent": "REPLACE (must differ)" + }, + "evidence": { + "repository": "d6g8k5htny-coder/main", + "commit": "REPLACE_WITH_40_HEX_COMMIT_CONTAINING_THE_REVIEW_FILE", + "path": "formal/reviews/YYYYMMDD_side24_arithmetic_.md", + "sha256": "REPLACE_WITH_SHA256_OF_THAT_REVIEW_FILE" + }, + "source_exposure": "statements only | read proofs and docstrings first | ...", + "per_target_verdicts_in_review_file": true +} diff --git a/tests/fixtures/atlas_formal_build_3b39/UniversalLaw.lean.txt b/tests/fixtures/atlas_formal_build_3b39/UniversalLaw.lean.txt new file mode 100644 index 000000000..ff12fa0eb --- /dev/null +++ b/tests/fixtures/atlas_formal_build_3b39/UniversalLaw.lean.txt @@ -0,0 +1,13 @@ +import UniversalLaw.Side24.Ledger +import UniversalLaw.Side24.ConeMoments +import UniversalLaw.Side24.Endpoints + +/-! +# Universal Law — main-side formal package (SIDE24 arithmetic skeleton) + +Root module. `tools/formal_gate_check.py` requires this file to import exactly +the modules registered in `formal/manifest.json`, derives the target inventory +from their `theorem` declarations, and in `--run-lean` mode builds the package, +runs `leanchecker`, audits `#print axioms` for every target (only `propext`, +`Classical.choice`, `Quot.sound` are allowed) and executes negative controls. +-/ diff --git a/tests/test_atlas_formal_evidence_build.py b/tests/test_atlas_formal_evidence_build.py index 82ac34d90..c1a049688 100644 --- a/tests/test_atlas_formal_evidence_build.py +++ b/tests/test_atlas_formal_evidence_build.py @@ -24,6 +24,14 @@ '21c355e02ac6e01337d10465a3105b34b93f832586ee60aa2430f662a90cd8b7'), 'tests/test_formal_gate.py': ('test_formal_gate.py.txt', '4286136d8b24eca9b26d1e7b12933bed5b0961809b362a60c3af7bf46e6ed4b6'), + # Frozen when the live package grew its P15 modules (main#740): the historical bytes of the + # root module, scope and review template, identical across the 3b39/8228/a22f profiles. + 'formal/UniversalLaw.lean': ('UniversalLaw.lean.txt', + 'cb94ad3490a00bc35b420a53a42ff65b6fc66a46b8a26ef1b87035d7bb15587e'), + 'formal/SCOPE.md': ('SCOPE.md.txt', + 'fd06700628b1fbc81c5cfe3786aaa455032375bcb879914f068a66b726802a17'), + 'formal/reviews/TEMPLATE_alignment_review.json': ('TEMPLATE_alignment_review.json.txt', + 'e722e928ca43c16981e063d8eb1c91e9bf8c683241d9dcf156400a419e72feb3'), } diff --git a/tests/test_atlas_formal_source_bridge.py b/tests/test_atlas_formal_source_bridge.py index e6f85d8fe..61be8a2c6 100644 --- a/tests/test_atlas_formal_source_bridge.py +++ b/tests/test_atlas_formal_source_bridge.py @@ -39,6 +39,11 @@ def setUp(self): # the current validator runs, never these historical Python bytes. source=profile_root/(Path(relative).name+'.txt') self.assertEqual(hashlib.sha256(source.read_bytes()).hexdigest(),manifest['files'][relative]) + elif relative in {'formal/UniversalLaw.lean','formal/SCOPE.md','formal/reviews/TEMPLATE_alignment_review.json'}: + # Historical bytes frozen when the live package grew its P15 modules (main#740); + # identical across the 3b39, 8228 and a22f profiles. + source=ROOT/'tests/fixtures/atlas_formal_build_3b39'/(Path(relative).name+'.txt') + self.assertEqual(hashlib.sha256(source.read_bytes()).hexdigest(),manifest['files'][relative]) else: source=ROOT/relative shutil.copyfile(source,target) diff --git a/tests/test_cbz_drift.py b/tests/test_cbz_drift.py new file mode 100644 index 000000000..b54825d67 --- /dev/null +++ b/tests/test_cbz_drift.py @@ -0,0 +1,910 @@ +"""Tests for tools/cbz_drift: the federation drift crawler and its Lean declaration lexer. + +Every check runs against a synthetic federation of real git repositories built in a +temporary directory, so each finding is produced by the same code path as a live crawl. +`ScannerMutationTests` rewrites the crawler in designated ways and requires a designated +test to fail by assertion (A8); a mutant that only breaks import or syntax does not count. + +CBZ_DRIFT_DIR selects the tool directory under test (default: tools/cbz_drift). +""" +import hashlib +import json +import os +import pathlib +import py_compile +import re +import shutil +import subprocess +import sys +import tempfile +import textwrap +import unittest + +ROOT = pathlib.Path(__file__).resolve().parents[1] +TOOL = pathlib.Path(os.environ.get('CBZ_DRIFT_DIR', ROOT / 'tools' / 'cbz_drift')) +sys.path.insert(0, str(TOOL)) +import crawl # noqa: E402 +import lean_decls # noqa: E402 + +ENV = dict(os.environ, GIT_AUTHOR_NAME='t', GIT_AUTHOR_EMAIL='t@t', GIT_COMMITTER_NAME='t', + GIT_COMMITTER_EMAIL='t@t', GIT_CONFIG_GLOBAL=os.devnull, GIT_CONFIG_NOSYSTEM='1', GIT_TERMINAL_PROMPT='0') + +LEAN_A = textwrap.dedent('''\ + import Mathlib + /-- doc -/ + namespace Fed + theorem t (n : Nat) : n + 0 = n := by simp + def f : Nat := 3 + private def p : Nat := 1 + structure S where + x : Nat + y : Nat + end Fed + ''') + + +def sh(cwd, *args, data=None): + r = subprocess.run(['git', '-C', str(cwd), *args], input=data, capture_output=True, env=ENV) + if r.returncode: + raise AssertionError('git %s: %s' % (args, r.stderr.decode())) + return r.stdout.decode().strip() + + +class Fed: + """A synthetic federation: seed `ws`, Lean repos `a` and `b`, registry `reg`.""" + + def __init__(self, base): + self.base = pathlib.Path(base) + self.urls = {} + + def url(self, name): + return self.urls.get(name, 'https://github.com/fed/%s.git' % name) + + def repo(self, name): + d = self.base / name + if not d.exists(): + d.mkdir() + sh(d, 'init', '-q', '-b', 'main') + sh(d, 'remote', 'add', 'origin', 'https://github.com/fed/%s.git' % name) + return d + + def commit(self, name, files, msg='c', remove=()): + d = self.repo(name) + for path, text in files.items(): + p = d / path + p.parent.mkdir(parents=True, exist_ok=True) + p.write_bytes(text if isinstance(text, bytes) else text.encode()) + sh(d, 'add', path) + for path in remove: + sh(d, 'rm', '-q', path) + sh(d, 'commit', '-q', '--allow-empty', '-m', msg) + sha = sh(d, 'rev-parse', 'HEAD') + sh(d, 'update-ref', 'refs/remotes/origin/main', sha) + return sha + + def build(self, a_lean=LEAN_A, b_lean=LEAN_A): + self.pins = {} + self.pins['a'] = self.commit('a', {'lakefile.toml': 'name = "a"\n', 'lean-toolchain': 'v4.0.0\n', + 'Fed/A.lean': a_lean, 'data/x.txt': 'payload\n'}) + self.pins['b'] = self.commit('b', {'lakefile.toml': 'name = "b"\n', 'lean-toolchain': 'v4.0.0\n', + 'Copy/A.lean': b_lean}) + payload = b'payload\n' + self.registry = { + 'repositories': {'A': {'full_name': 'fed/a'}}, + 'artifacts': [{'key': 'x', 'repository': 'A', 'commit': self.pins['a'], 'path': 'data/x.txt', + 'bytes': len(payload), 'sha256': hashlib.sha256(payload).hexdigest()}], + } + self.pins['reg'] = self.commit('reg', {'registry.json': json.dumps(self.registry)}) + self.members = ['a', 'b', 'reg'] + return self.write_seed() + + def write_seed(self, pins=None, gitlinks=None, listed=None, modules=None, extra=None, update=None): + pins = dict(self.pins if pins is None else pins) + gitlinks = dict(pins if gitlinks is None else gitlinks) + names = sorted(self.members) + modules = names if modules is None else modules + listed = names if listed is None else listed + gm = ''.join('[submodule "repos/%s"]\n\tpath = repos/%s\n\turl = %s\n%s' % ( + n, n, self.url(n), '\tupdate = none\n' if update == n else '') for n in modules) + pj = {'schema': 'ulw.pins.v1', 'repos': [ + {'name': n, 'path': 'repos/%s' % n, 'url': self.url(n), + 'pinned_sha': pins[n], 'opt_in': update == n} for n in names if n in pins]} + reg_blob = sh(self.repo('reg'), 'rev-parse', '%s:registry.json' % pins.get('reg', self.pins['reg'])) + wsj = {'repositories': [{'full_name': 'fed/ws'}] + [{'full_name': 'fed/%s' % n} for n in listed], + 'canonical_inputs': {'repository_registry': {'repository': 'fed/reg', 'path': 'registry.json', + 'observed_blob': reg_blob}}} + files = {'.gitmodules': gm, 'pins.json': json.dumps(pj), 'workspace/repositories.json': json.dumps(wsj)} + files.update(extra or {}) + d = self.repo('ws') + for path, text in files.items(): + p = d / path + p.parent.mkdir(parents=True, exist_ok=True) + p.write_text(text) + sh(d, 'add', path) + tracked = sh(d, 'ls-files', '-s', 'repos').splitlines() + for line in tracked: + sh(d, 'rm', '-q', '--cached', line.split('\t')[1]) + for n, sha in gitlinks.items(): + if n in modules: + sh(d, 'update-index', '--add', '--cacheinfo', '160000,%s,repos/%s' % (sha, n)) + sh(d, 'commit', '-q', '--allow-empty', '-m', 'seed') + sha = sh(d, 'rev-parse', 'HEAD') + sh(d, 'update-ref', 'refs/remotes/origin/main', sha) + return sha + + def crawl(self, **kw): + return crawl.run('fed/ws', [str(self.base)], **kw) + + +def codes(rep, level=None): + return sorted(f['code'] for f in rep['findings'] if level is None or f['level'] == level) + + +class FedCase(unittest.TestCase): + def setUp(self): + self.tmp = tempfile.TemporaryDirectory() + self.fed = Fed(self.tmp.name) + + def tearDown(self): + self.tmp.cleanup() + + +class CleanFederationTests(FedCase): + def test_clean_federation_has_no_block_and_is_not_vacuous(self): + self.fed.build() + rep = self.fed.crawl() + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertEqual(rep['blocking'], 0) + self.assertEqual({r['repository'] for r in rep['repositories'] if r['resolved']}, + {'fed/ws', 'fed/a', 'fed/b', 'fed/reg'}) + self.assertEqual(rep['stats']['registry_artifacts_verified'], 1) + self.assertEqual(rep['stats']['lean_shared_names'], 3) # Fed.t, Fed.f, Fed.S (private p excluded) + self.assertEqual(rep['stats']['lean_files'], 2) + + def test_cli_exit_status(self): + self.fed.build() + out = os.path.join(self.tmp.name, 'r.json') + r = subprocess.run([sys.executable, '-B', str(TOOL / 'crawl.py'), '--seed', 'fed/ws', '--search', self.tmp.name, + '--json', out], capture_output=True, env=ENV) + self.assertEqual(r.returncode, 0, r.stdout + r.stderr) + with open(out) as fh: + self.assertEqual(json.load(fh)['blocking'], 0) + self.fed.commit('b', {'Copy/A.lean': LEAN_A.replace('n + 0 = n', '0 + n = n')}) + self.fed.pins['b'] = sh(self.fed.repo('b'), 'rev-parse', 'HEAD') + self.fed.write_seed() + r = subprocess.run([sys.executable, '-B', str(TOOL / 'crawl.py'), '--seed', 'fed/ws', '--search', self.tmp.name], + capture_output=True, env=ENV) + self.assertEqual(r.returncode, 1, r.stdout + r.stderr) + self.assertIn(b'BLOCK LEAN-DRIFT', r.stdout) + r = subprocess.run([sys.executable, '-B', str(TOOL / 'crawl.py'), '--seed', 'fed/nope', '--search', self.tmp.name], + capture_output=True, env=ENV) + self.assertEqual(r.returncode, 2) + + +class LeanDriftTests(FedCase): + def drift(self, b_lean): + self.fed.build(b_lean=b_lean) + return self.fed.crawl() + + def test_changed_theorem_statement_blocks(self): + rep = self.drift(LEAN_A.replace('n + 0 = n', '0 + n = n')) + self.assertEqual(codes(rep, 'BLOCK'), ['LEAN-DRIFT']) + f = [f for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'][0] + self.assertEqual(f['name'], 'Fed.t') + self.assertEqual(len(f['variants']), 2) + + def test_evidence_copies_are_counted_not_compared(self): + self.fed.build() + stale = LEAN_A.replace('n + 0 = n', '0 + n = n') + self.fed.pins['b'] = self.fed.commit('b', {'cbz/evidence/run/Copy/A.lean': stale, + 'kernel/cbz-evidence/A.lean': stale}) + self.fed.write_seed() + rep = self.fed.crawl() + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertIn('LEAN-EVIDENCE', codes(rep, 'INFO')) + self.assertEqual(rep['stats']['lean_evidence_files'], 2) + # a live copy with the same change still blocks + self.fed.pins['b'] = self.fed.commit('b', {'Copy/A.lean': stale}) + self.fed.write_seed() + self.assertEqual(codes(self.fed.crawl(), 'BLOCK'), ['LEAN-DRIFT']) + + def test_evidence_paths_are_matched_by_segment(self): + for path in ('cbz/evidence/x/A.lean', 'a/kernel/cbz-evidence/A.lean', 'formal-evidence/A.lean', 'evidence/A.lean'): + self.assertTrue(crawl.EVIDENCE_SEGMENT.search(path), path) + for path in ('formal/Evidenced.lean', 'tools/evidence_check.lean', 'formal/UniversalLaw/A.lean'): + self.assertFalse(crawl.EVIDENCE_SEGMENT.search(path), path) + + def test_changed_definition_value_blocks(self): + rep = self.drift(LEAN_A.replace('def f : Nat := 3', 'def f : Nat := 4')) + self.assertEqual([f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'], ['Fed.f']) + + def test_changed_structure_field_blocks(self): + rep = self.drift(LEAN_A.replace(' y : Nat', ' y : Int')) + self.assertEqual([f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'], ['Fed.S']) + + def test_changed_kind_blocks(self): + rep = self.drift(LEAN_A.replace('def f : Nat := 3', 'abbrev f : Nat := 3')) + self.assertEqual([f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'], ['Fed.f']) + + def test_proof_comment_and_layout_changes_do_not_block(self): + b = LEAN_A.replace(':= by simp', ':= by\n omega -- different proof').replace( + 'theorem t (n : Nat)', 'theorem t -- the statement\n (n : Nat) /- note -/') + rep = self.drift(b) + self.assertEqual(codes(rep, 'BLOCK'), []) + + def test_private_names_are_not_compared(self): + rep = self.drift(LEAN_A.replace('private def p : Nat := 1', 'private def p : Nat := 2')) + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertEqual(rep['stats']['lean_shared_names'], 3) + + def test_differently_namespaced_names_are_not_compared(self): + rep = self.drift(LEAN_A.replace('namespace Fed', 'namespace Other').replace('end Fed', 'end Other') + .replace('def f : Nat := 3', 'def f : Nat := 9')) + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertEqual(rep['stats']['lean_shared_names'], 0) + + def test_changed_variable_in_scope_blocks(self): + # C1 end to end: the same statement text under a new `variable` is a different statement + rep = self.drift(LEAN_A.replace('namespace Fed\n', 'namespace Fed\nvariable (k : Nat)\n')) + self.assertEqual(sorted(f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'), ['Fed.S', 'Fed.f', 'Fed.t']) + + def test_lean_syntax_error_blocks(self): + rep = self.drift(LEAN_A + '\n/- never closed\n') + self.assertIn('LEAN-SYNTAX', codes(rep, 'BLOCK')) + + def test_override_tests_a_candidate_head(self): + self.fed.build() + cand = self.fed.commit('b', {'Copy/A.lean': LEAN_A.replace('def f : Nat := 3', 'def f : Nat := 5')}) + sh(self.fed.repo('b'), 'update-ref', 'refs/remotes/origin/main', self.fed.pins['b']) + self.assertEqual(codes(self.fed.crawl(), 'BLOCK'), []) + rep = self.fed.crawl(overrides={'fed/b': cand}) + self.assertEqual(codes(rep, 'BLOCK'), ['LEAN-DRIFT']) + + def test_tips_mode_reads_default_tips(self): + self.fed.build() + self.fed.commit('b', {'Copy/A.lean': LEAN_A.replace('def f : Nat := 3', 'def f : Nat := 5')}) + self.assertEqual(codes(self.fed.crawl(), 'BLOCK'), []) + self.assertEqual(codes(self.fed.crawl(at='tips'), 'BLOCK'), ['LEAN-DRIFT']) + + +class PinTests(FedCase): + def test_gitlink_disagreeing_with_pins_blocks(self): + self.fed.build() + other = self.fed.commit('b', {'z': 'z'}) + self.fed.write_seed(gitlinks=dict(self.fed.pins, b=other)) + self.assertIn('PIN-SOURCES', codes(self.fed.crawl(), 'BLOCK')) + + def test_submodule_without_pin_blocks(self): + self.fed.build() + self.fed.write_seed(pins={k: v for k, v in self.fed.pins.items() if k != 'b'}, gitlinks=self.fed.pins) + self.assertIn('PIN-SOURCES', codes(self.fed.crawl(), 'BLOCK')) + + def test_pinned_but_unlisted_blocks(self): + self.fed.build() + self.fed.write_seed(listed=['a', 'reg']) + self.assertIn('PIN-SOURCES', codes(self.fed.crawl(), 'BLOCK')) + + def test_gitlink_without_gitmodules_entry_blocks(self): + self.fed.build() + d = self.fed.repo('ws') + sh(d, 'update-index', '--add', '--cacheinfo', '160000,%s,vendor/stray' % self.fed.pins['b']) + sh(d, 'commit', '-q', '-m', 'stray') + sh(d, 'update-ref', 'refs/remotes/origin/main', sh(d, 'rev-parse', 'HEAD')) + rep = self.fed.crawl() + self.assertEqual([f['message'] for f in rep['findings'] if f['level'] == 'BLOCK'], + ['gitlink vendor/stray has no .gitmodules entry']) + + def test_missing_pin_blocks(self): + self.fed.build() + self.fed.write_seed(pins=dict(self.fed.pins, b='0' * 39 + '1')) + self.assertIn('PIN-MISSING', codes(self.fed.crawl(), 'BLOCK')) + + def test_pin_off_the_default_line_blocks(self): + self.fed.build() + d = self.fed.repo('b') + sh(d, 'checkout', '-q', '-b', 'side') + side = self.fed.commit('b', {'s': 's'}) + sh(d, 'checkout', '-q', 'main') + sh(d, 'update-ref', 'refs/remotes/origin/main', self.fed.pins['b']) + self.fed.write_seed(pins=dict(self.fed.pins, b=side)) + self.assertIn('PIN-OFFLINE', codes(self.fed.crawl(), 'BLOCK')) + + def test_stale_pin_is_info_only(self): + self.fed.build() + self.fed.commit('b', {'later': 'x'}) + rep = self.fed.crawl() + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertEqual(codes(rep, 'INFO'), ['PIN-STALE']) + + def test_shallow_clone_cannot_decide_ancestry(self): + self.fed.build() + self.fed.commit('b', {'later': 'x'}) + src = self.fed.repo('b') + shutil.move(str(src), str(self.fed.base / 'b-full')) + subprocess.run(['git', 'clone', '-q', '--depth', '1', '--no-local', 'file://%s' % (self.fed.base / 'b-full'), + str(src)], check=True, env=ENV, capture_output=True) + sh(src, 'remote', 'set-url', 'origin', 'https://github.com/fed/b.git') + sh(src, 'fetch', '-q', '--depth', '1', 'file://%s' % (self.fed.base / 'b-full'), self.fed.pins['b']) + sh(src, 'update-ref', 'refs/remotes/origin/main', sh(src, 'rev-parse', 'HEAD')) + shutil.move(str(self.fed.base / 'b-full'), self.tmp.name + '-unused') + try: + msgs = [f['message'] for f in self.fed.crawl()['findings'] if f['code'] == 'PIN-OFFLINE'] + # a shallow clone cannot show ancestry; saying "not an ancestor" would be untrue (A7) + self.assertEqual(len(msgs), 1) + self.assertIn('shallow clone', msgs[0]) + finally: + shutil.rmtree(self.tmp.name + '-unused') + + def test_unresolved_repository_blocks_unless_opt_in(self): + self.fed.build() + shutil.move(str(self.fed.repo('b')), self.tmp.name + '-moved') + try: + self.assertIn('UNRESOLVED', codes(self.fed.crawl(), 'BLOCK')) + # the seed itself still has b's gitlink; mark b opt-in + shutil.move(self.tmp.name + '-moved', str(self.fed.base / 'b')) + self.fed.write_seed(update='b') + shutil.move(str(self.fed.base / 'b'), self.tmp.name + '-moved') + rep = self.fed.crawl() + self.assertNotIn('UNRESOLVED', codes(rep, 'BLOCK')) + self.assertIn('UNRESOLVED', codes(rep, 'INFO')) + finally: + if os.path.exists(self.tmp.name + '-moved'): + shutil.rmtree(self.tmp.name + '-moved') + + def test_malformed_pins_json_blocks(self): + self.fed.build() + self.fed.write_seed(extra={'pins.json': '{"repos": ['}) + self.assertIn('MALFORMED', codes(self.fed.crawl(), 'BLOCK')) + + +class RegistryTests(FedCase): + def rebuild(self, **change): + self.fed.build() + self.fed.registry['artifacts'][0].update(change) + self.fed.pins['reg'] = self.fed.commit('reg', {'registry.json': json.dumps(self.fed.registry)}) + self.fed.write_seed() + return self.fed.crawl() + + def test_wrong_digest_blocks(self): + self.assertIn('REGISTRY-BYTES', codes(self.rebuild(sha256='0' * 64), 'BLOCK')) + + def test_wrong_size_blocks(self): + self.assertIn('REGISTRY-BYTES', codes(self.rebuild(bytes=9), 'BLOCK')) + + def test_absent_path_blocks(self): + self.assertIn('REGISTRY-BYTES', codes(self.rebuild(path='data/none.txt'), 'BLOCK')) + + def test_missing_commit_blocks(self): + self.assertIn('PIN-MISSING', codes(self.rebuild(commit='1' * 40), 'BLOCK')) + + def test_evolved_artifact_is_info_only(self): + self.fed.build() + self.fed.pins['a'] = self.fed.commit('a', {'data/x.txt': 'payload v2\n'}) + self.fed.write_seed() + rep = self.fed.crawl() + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertIn('REGISTRY-EVOLVED', codes(rep, 'INFO')) + + def test_observed_input_blob_difference_is_info(self): + self.fed.build() + self.fed.registry['note'] = 'changed' + self.fed.commit('reg', {'registry.json': json.dumps(self.fed.registry)}) + rep = self.fed.crawl(at='tips') + self.assertIn('INPUT-OBSERVED', codes(rep, 'INFO')) + self.assertEqual(codes(rep, 'BLOCK'), []) + + +class TopologyTests(FedCase): + def test_added_repository_is_crawled_without_code_change(self): + self.fed.build() + self.fed.pins['c'] = self.fed.commit('c', {'lakefile.toml': 'name = "c"\n', 'lean-toolchain': 'v4.0.0\n', + 'C.lean': LEAN_A.replace('def f : Nat := 3', 'def f : Nat := 7')}) + self.fed.members.append('c') + self.fed.write_seed() + rep = self.fed.crawl() + self.assertIn('fed/c', {r['repository'] for r in rep['repositories'] if r['resolved']}) + self.assertEqual([f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'], ['Fed.f']) + + def test_removed_repository_is_not_crawled(self): + self.fed.build() + self.fed.members.remove('b') + del self.fed.pins['b'] + self.fed.write_seed() + rep = self.fed.crawl() + self.assertNotIn('fed/b', {r['repository'] for r in rep['repositories']}) + self.assertEqual(codes(rep, 'BLOCK'), []) + + def test_registry_artifact_repositories_join_the_crawl(self): + self.fed.build() + self.fed.members.remove('a') + del self.fed.pins['a'] + self.fed.write_seed() + rep = self.fed.crawl() + self.assertIn('fed/a', {r['repository'] for r in rep['repositories'] if r['resolved']}) + self.assertEqual(rep['stats'].get('registry_artifacts_verified', 0), 1) + + def test_lake_dependency_on_a_crawled_repository_is_followed(self): + # A present historical revision is INFO. (This fixture used an absent revision until + # R2 at #712/6511043716 showed that an absent one must block; see the next test.) + self.fed.build() + old = self.fed.pins['a'] + self.fed.pins['a'] = self.fed.commit('a', {'later': 'x'}) + manifest = {'packages': [{'type': 'git', 'url': 'https://github.com/fed/a', 'rev': old, 'name': 'a'}]} + self.fed.pins['b'] = self.fed.commit('b', {'lake-manifest.json': json.dumps(manifest)}) + self.fed.write_seed() + rep = self.fed.crawl() + self.assertIn('LAKE-DEP', codes(rep, 'INFO')) + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertIn({'from': 'fed/b', 'to': 'fed/a', 'via': 'lake'}, rep['edges']) + + def add_lake_edge(self, holder, name, url, rev): + manifest = {'packages': [{'type': 'git', 'url': url, 'rev': rev, 'name': name}]} + self.fed.pins[holder] = self.fed.commit(holder, {'lake-manifest.json': json.dumps(manifest)}) + self.fed.write_seed() + + def lean_c(self): + return self.fed.commit('c', {'lakefile.toml': 'name = "c"\n', 'lean-toolchain': 'v4.0.0\n', + 'C.lean': LEAN_A.replace('def f : Nat := 3', 'def f : Nat := 7')}) + + def test_missing_lake_revision_blocks(self): + self.fed.build() + self.add_lake_edge('b', 'a', 'https://github.com/fed/a.git', '2' * 40) + rep = self.fed.crawl() + self.assertEqual(codes(rep, 'BLOCK'), ['PIN-MISSING']) + f = [f for f in rep['findings'] if f['code'] == 'PIN-MISSING'][0] + self.assertEqual((f.get('repo'), f.get('path'), f.get('target'), f.get('pin')), + ('fed/b', 'lake-manifest.json', 'fed/a', '2' * 40)) + + def test_lake_package_without_usable_revision_blocks(self): + for rev in (None, '', ' ', 123): + with self.subTest(rev=rev): + self.tearDown() + self.setUp() + self.fed.build() + manifest = {'packages': [{'type': 'git', 'url': 'https://github.com/fed/a.git', 'name': 'a'}]} + if rev is not None: + manifest['packages'][0]['rev'] = rev + self.fed.pins['b'] = self.fed.commit('b', {'lake-manifest.json': json.dumps(manifest)}) + self.fed.write_seed() + try: + rep = self.fed.crawl() + except Exception as exc: # a crash is not a finding (A8: fail closed, visibly) + self.fail('crawl raised %r instead of reporting PIN-MISSING' % exc) + self.assertEqual(codes(rep, 'BLOCK'), ['PIN-MISSING']) + f = [f for f in rep['findings'] if f['code'] == 'PIN-MISSING'][0] + self.assertEqual((f.get('repo'), f.get('path'), f.get('target'), f.get('pin')), + ('fed/b', 'lake-manifest.json', 'fed/a', rev)) + + def test_lake_git_package_without_url_blocks(self): + for url in (None, 7, 'not-a-repository'): + with self.subTest(url=url): + self.tearDown() + self.setUp() + self.fed.build() + manifest = {'packages': [{'type': 'git', 'url': url, 'rev': '2' * 40, 'name': 'x'}]} + self.fed.pins['b'] = self.fed.commit('b', {'lake-manifest.json': json.dumps(manifest)}) + self.fed.write_seed() + try: + rep = self.fed.crawl() + except Exception as exc: + self.fail('crawl raised %r instead of reporting MALFORMED' % exc) + self.assertEqual(codes(rep, 'BLOCK'), ['MALFORMED']) + + def test_lake_floating_revision_blocks(self): + # Only a full commit id pins: each of these resolves in fed/a, yet none pins a fixed commit. + for make_rev in (lambda pin: 'HEAD', lambda pin: 'main', lambda pin: 'origin/main', lambda pin: 'v1', + lambda pin: pin[:7], lambda pin: pin.upper(), lambda pin: pin + '~0'): + self.tearDown() + self.setUp() + self.fed.build() + sh(self.fed.repo('a'), 'tag', 'v1', self.fed.pins['a']) + rev = make_rev(self.fed.pins['a']) + with self.subTest(rev=rev): + self.add_lake_edge('b', 'a', 'https://github.com/fed/a.git', rev) + try: + rep = self.fed.crawl() + except Exception as exc: + self.fail('crawl raised %r instead of reporting PIN-MISSING' % exc) + self.assertEqual(codes(rep, 'BLOCK'), ['PIN-MISSING']) + f = [f for f in rep['findings'] if f['code'] == 'PIN-MISSING'][0] + self.assertEqual((f.get('repo'), f.get('path'), f.get('target'), f.get('pin')), + ('fed/b', 'lake-manifest.json', 'fed/a', rev)) + + def test_unreadable_lake_packages_block(self): + git_a = {'type': 'git', 'url': 'https://github.com/fed/a.git', 'rev': '2' * 40, 'name': 'a'} + nested = {k: v for k, v in git_a.items() if k != 'type'} + cases = { + 'packages object': {'packages': {'a': git_a}}, + 'top-level list': [git_a], + 'string entry': {'packages': ['https://github.com/fed/a.git']}, + 'unknown type': {'packages': [dict(git_a, type='Git')]}, + 'untyped entry': {'packages': [nested]}, + 'older nested format': {'version': 4, 'packages': [{'git': nested}]}, + } + for label, manifest in cases.items(): + with self.subTest(case=label): + self.tearDown() + self.setUp() + self.fed.build() + self.fed.pins['b'] = self.fed.commit('b', {'lake-manifest.json': json.dumps(manifest)}) + self.fed.write_seed() + try: + rep = self.fed.crawl() + except Exception as exc: + self.fail('crawl raised %r instead of reporting MALFORMED' % exc) + self.assertEqual(codes(rep, 'BLOCK'), ['MALFORMED']) + with self.subTest(case='path package control'): + self.tearDown() + self.setUp() + self.fed.build() + manifest = {'packages': [{'type': 'path', 'name': 'local', 'dir': './local'}]} + self.fed.pins['b'] = self.fed.commit('b', {'lake-manifest.json': json.dumps(manifest)}) + self.fed.write_seed() + self.assertEqual(codes(self.fed.crawl(), 'BLOCK'), []) + + def test_lake_dependency_reached_only_by_lake_is_scanned(self): + self.fed.build() + self.add_lake_edge('b', 'c', 'https://github.com/fed/c.git', self.lean_c()) + rep = self.fed.crawl() + self.assertIn('fed/c', {r['repository'] for r in rep['repositories'] if r['resolved']}) + self.assertEqual([f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'], ['Fed.f']) + + def test_unheld_lake_dependency_is_cloned(self): + self.fed.build() + sha = self.lean_c() + remote = pathlib.Path(self.tmp.name + '-lake') / 'fed' / 'c' + remote.parent.mkdir(parents=True) + shutil.move(str(self.fed.repo('c')), str(remote)) + try: + self.add_lake_edge('b', 'c', remote.as_uri(), sha) + clones = pathlib.Path(self.tmp.name + '-lake') / 'clones' + clones.mkdir() + rep = self.fed.crawl(clone_into=str(clones)) + self.assertIn('fed/c', {r['repository'] for r in rep['repositories'] if r['resolved']}) + self.assertEqual([f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'], ['Fed.f']) + finally: + shutil.rmtree(self.tmp.name + '-lake') + + def test_external_lake_dependency_is_not_crawled(self): + self.fed.build() + self.add_lake_edge('b', 'mathlib', 'https://github.com/leanprover-community/mathlib4', '3' * 40) + rep = self.fed.crawl() + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertEqual(rep['stats']['lake_external_edges'], 1) + + def test_child_records_extend_the_graph(self): + self.fed.build() + sha = self.lean_c() + child = self.fed.repo('a') + sh(child, 'update-index', '--add', '--cacheinfo', '160000,%s,repos/c' % sha) + self.fed.pins['a'] = self.fed.commit('a', { + '.gitmodules': '[submodule "c"]\npath = repos/c\nurl = https://github.com/fed/c.git\n', + 'pins.json': json.dumps({'repos': [{'url': 'https://github.com/fed/c.git', 'path': 'repos/c', 'pinned_sha': sha}]}), + 'workspace/repositories.json': json.dumps({'repositories': [{'full_name': 'fed/a'}, {'full_name': 'fed/c'}]}), + }) + self.fed.write_seed() + rep = self.fed.crawl() + self.assertIn({'from': 'fed/a', 'to': 'fed/c', 'via': 'gitmodules+pins+listed'}, rep['edges']) + self.assertEqual([f['name'] for f in rep['findings'] if f['code'] == 'LEAN-DRIFT'], ['Fed.f']) + + def test_registry_only_repository_is_expanded(self): + # fed/a is reached only through a registry artifact; its own lake edge must still be followed + self.fed.build() + sha = self.lean_c() + manifest = {'packages': [{'type': 'git', 'url': 'https://github.com/fed/c', 'rev': sha, 'name': 'c'}]} + self.fed.commit('a', {'lake-manifest.json': json.dumps(manifest)}) + self.fed.members.remove('a') + del self.fed.pins['a'] + self.fed.write_seed() + rep = self.fed.crawl() + self.assertIn({'from': 'fed/a', 'to': 'fed/c', 'via': 'lake'}, rep['edges']) + self.assertIn('fed/c', {r['repository'] for r in rep['repositories'] if r['resolved']}) + + def test_fetch_refreshes_the_default_tip(self): + self.fed.build() + with tempfile.TemporaryDirectory() as base: + cache = pathlib.Path(base) / 'cached' + subprocess.run(['git', 'clone', '-q', self.fed.repo('b').as_uri(), str(cache)], check=True, env=ENV, + capture_output=True) + advanced = self.fed.commit('b', {'tip': 'new\n'}) + self.assertNotEqual(crawl.Repo('fed/b', cache).default_tip(), advanced) + self.assertEqual(crawl.Repo('fed/b', cache, fetch=True).default_tip(), advanced) + + def test_failed_refresh_blocks(self): + self.fed.build() + sh(self.fed.repo('b'), 'remote', 'set-url', 'origin', 'file://%s/nowhere/fed/b' % self.tmp.name) + rep = self.fed.crawl(fetch=True) + self.assertIn('FETCH-FAILED', codes(rep, 'BLOCK')) + + def test_unheld_repository_is_cloned_from_its_recorded_url(self): + self.fed.build() + remote = pathlib.Path(self.tmp.name + '-remote') / 'fed' / 'b' + remote.parent.mkdir(parents=True) + shutil.move(str(self.fed.repo('b')), str(remote)) + try: + self.fed.urls['b'] = 'file://%s' % remote + self.fed.write_seed() + self.assertIn('UNRESOLVED', codes(self.fed.crawl(), 'BLOCK')) + clones = pathlib.Path(self.tmp.name + '-remote') / 'clones' + clones.mkdir() + rep = self.fed.crawl(clone_into=str(clones)) + self.assertEqual(codes(rep, 'BLOCK'), []) + self.assertEqual(rep['stats']['lean_shared_names'], 3) + self.assertTrue((clones / 'fed__b').is_dir()) + finally: + shutil.rmtree(self.tmp.name + '-remote') + + def test_identity_normalization(self): + for u in ('https://github.com/Fed/A.git', 'git@github.com:fed/a.git', 'fed/a', + 'http://proxy@127.0.0.1:9/git/fed/a', 'https://github.com/fed/a/'): + self.assertEqual(crawl.repo_key(u), 'fed/a') + + +class LeanDeclTests(unittest.TestCase): + def names(self, text): + return [(d['name'], d['kind']) for d in lean_decls.declarations(text)] + + def test_namespaces_sections_and_root(self): + text = 'namespace A.B\nsection S\ntheorem x : True := trivial\nend S\ndef _root_.y : Nat := 1\nend A.B\ndef z := 2\n' + self.assertEqual(self.names(text), [('A.B.x', 'theorem'), ('y', 'def'), ('z', 'def')]) + + def test_unbalanced_scopes_raise(self): + for text in ('namespace A\nend B\n', 'end A\n', 'section\nend X\n'): + with self.subTest(text=text), self.assertRaises(lean_decls.LeanSyntaxError): + lean_decls.declarations(text) + + def test_header_stops_at_top_level_assign_and_line_leading_bar(self): + ds = lean_decls.declarations('theorem a (h : |x| ≤ 1 := 2) : |x| ≤ 1 := by simp\n' + 'def g : Nat → Nat\n | 0 => 1\n | n+1 => n\n') + self.assertEqual(ds[0]['header'], '( h : | x | ≤ 1 := 2 ) : | x | ≤ 1') + self.assertEqual(ds[1]['header'], ': Nat → Nat') + self.assertIn('| 0 = > 1', ds[1]['interface']) + + def test_theorem_interface_excludes_proof_definition_includes_value(self): + t, d = lean_decls.declarations('theorem t : 1 = 1 := rfl\ndef d : Nat := 7\n') + self.assertEqual(t['interface'], ': 1 = 1') + self.assertEqual(d['interface'], ': Nat := 7') + + def test_comments_and_strings(self): + ds = lean_decls.declarations('-- theorem fake : False\n/- def fake2 := 1 -/\ndef s := "theorem fake3 : False"\n') + self.assertEqual([d['name'] for d in ds], ['s']) + + def test_modifiers_attributes_and_anonymous_instance(self): + ds = lean_decls.declarations('@[simp] protected noncomputable def a := 1\ninstance : Inhabited Nat := ⟨0⟩\n' + 'instance (priority := low) named : Inhabited Int := ⟨0⟩\nprivate theorem p : True := trivial\n') + self.assertEqual([(d['name'], d['private'], d['modifiers']) for d in ds], + [('a', False, ['noncomputable', 'protected']), ('named', False, []), ('p', True, [])]) + + def interfaces(self, text): + return {d['name']: d['interface'] for d in lean_decls.declarations(text)} + + def test_scope_context_is_part_of_the_interface(self): + # C1, C1b, C2: the same statement text under other variables or opens is drift + pairs = { + 'C1': ('variable (x : Nat)\ntheorem t : x = x := rfl\n', 'variable (x : Int)\ntheorem t : x = x := rfl\n'), + 'C1b': ('variable {O : Type*} [MeasurableSpace O]\ntheorem t (m : Measure O) : m = m := rfl\n', + 'variable {O : Type*} [MeasurableSpace O] [Fintype O]\ntheorem t (m : Measure O) : m = m := rfl\n'), + 'C2': ('open Real\ntheorem t : π = π := rfl\n', 'open NNReal\ntheorem t : π = π := rfl\n'), + } + for case, (a, b) in pairs.items(): + with self.subTest(case): + self.assertNotEqual(self.interfaces(a)['t'], self.interfaces(b)['t']) + # a context ends with its scope, and an `… in` prefix covers the next declaration only + text = ('namespace N\nopen Real\nsection\nvariable (x : Nat)\ntheorem t : x = x := rfl\nend\n' + 'theorem u : True := trivial\nopen Nat in\ntheorem v : True := trivial\ntheorem w : True := trivial\nend N\n' + 'theorem z : True := trivial\n') + self.assertEqual(self.interfaces(text), { + 'N.t': 'open Real ; variable ( x : Nat ) ⊢ : x = x', + 'N.u': 'open Real ⊢ : True', + 'N.v': 'open Real ; open Nat ⊢ : True', + 'N.w': 'open Real ⊢ : True', + 'z': ': True'}) + # `set_option … in` passes a pending prefix on to the declaration it introduces + self.assertEqual(self.interfaces('open Nat in\nset_option maxHeartbeats 400 in\ntheorem s : True := trivial\n'), + {'s': 'open Nat ⊢ : True'}) + + def test_combinators_inside_a_declaration_stay_in_its_value(self): + # C3, C3b: a tactic block's `set_option … in` or `open … in` is part of the value + for line in ('set_option maxRecDepth 100 in', 'open Nat in'): + with self.subTest(line): + one, two = (self.interfaces('def f : Nat := by\n %s\n exact %d\n' % (line, k))['f'] for k in (1, 2)) + self.assertNotEqual(one, two) + inline = [self.interfaces('def f : Nat := by set_option maxRecDepth 100 in exact %d\n' % k)['f'] for k in (1, 2)] + self.assertNotEqual(inline[0], inline[1]) + # at the declaration's own indentation it starts a new command, as before + self.assertEqual(self.interfaces('def f : Nat := 1\nopen Nat in\ntheorem t : True := trivial\n'), + {'f': ': Nat := 1', 't': 'open Nat ⊢ : True'}) + + def test_mutual_is_a_scope(self): + # C4: an anonymous `end` closes `mutual`, not the enclosing namespace + try: + names = self.names('namespace A\nmutual\ndef f : Nat := 1\ndef g : Nat := 2\nend\nend A\n') + except lean_decls.LeanSyntaxError as exc: + self.fail('mutual block rejected: %s' % exc) + self.assertEqual(names, [('A.f', 'def'), ('A.g', 'def')]) + + def test_malformed_raise(self): + for text in ('/- open', 'def s := "open', 'def «open := 1', 'theorem : True := trivial', 'namespace\n'): + with self.subTest(text=text), self.assertRaises(lean_decls.LeanSyntaxError): + lean_decls.declarations(text) + + +# Each mutant: (label, exact source substring, replacement, file, designated test). +MUTANTS = [ + ('theorem statement ignored', "'interface': header if dkind in STATEMENT_ONLY else", "'interface': '' if dkind in STATEMENT_ONLY else", + 'lean_decls.py', 'LeanDriftTests.test_changed_theorem_statement_blocks'), + ('definition value ignored', "else ' '.join(hdr + body)", "else header", 'lean_decls.py', + 'LeanDriftTests.test_changed_definition_value_blocks'), + ('kind ignored', "variants.setdefault((l['kind'], l['interface']), [])", "variants.setdefault(('', l['interface']), [])", + 'crawl.py', 'LeanDriftTests.test_changed_kind_blocks'), + ('drift downgraded', "self.add(BLOCK, 'LEAN-DRIFT'", "self.add(INFO, 'LEAN-DRIFT'", 'crawl.py', + 'LeanDriftTests.test_changed_theorem_statement_blocks'), + ('private compared', " if d['private']:\n continue\n", "", 'crawl.py', + 'LeanDriftTests.test_private_names_are_not_compared'), + ('namespace dropped', "'.'.join(current_ns() + [name])", "name", 'lean_decls.py', + 'LeanDriftTests.test_differently_namespaced_names_are_not_compared'), + ('comments kept', " fresh = first\n continue\n if text.startswith('/-', i):", + " yield 'sym', text[i:i + 2], start_line, first\n fresh = first\n continue\n if text.startswith('/-', i):", + 'lean_decls.py', 'LeanDriftTests.test_proof_comment_and_layout_changes_do_not_block'), + ('lean syntax swallowed', "self.add(BLOCK, 'LEAN-SYNTAX', str(exc)", "self.add(INFO, 'LEAN-SYNTAX', str(exc)", 'crawl.py', + 'LeanDriftTests.test_lean_syntax_error_blocks'), + ('unbalanced end accepted', " if sparts != parts:\n", " if False:\n", 'lean_decls.py', + 'LeanDeclTests.test_unbalanced_scopes_raise'), + ('bar ends every header', "(k == 'sym' and t == '|' and fst)", "(k == 'sym' and t == '|')", 'lean_decls.py', + 'LeanDeclTests.test_header_stops_at_top_level_assign_and_line_leading_bar'), + ('depth ignored', " if depth == 0 and not inner(j, indent):\n if k == 'ident' and t in COMMANDS and not", + " if not inner(j, indent):\n if k == 'ident' and t in COMMANDS and not", 'lean_decls.py', + 'LeanDeclTests.test_header_stops_at_top_level_assign_and_line_leading_bar'), + ('context not in the interface', " if out[-1]['context']:\n", " if False:\n", 'lean_decls.py', + 'LeanDriftTests.test_changed_variable_in_scope_blocks'), + ('variable not context', "CONTEXT = frozenset({'open', 'variable', 'universe'", "CONTEXT = frozenset({'open', 'universe'", + 'lean_decls.py', 'LeanDeclTests.test_scope_context_is_part_of_the_interface'), + ('open not context', "CONTEXT = frozenset({'open', 'variable'", "CONTEXT = frozenset({'variable'", + 'lean_decls.py', 'LeanDeclTests.test_scope_context_is_part_of_the_interface'), + ('scoped context ignored', " return root + [c for _, _, ctx in scopes for c in ctx] + prefix", " return root + prefix", + 'lean_decls.py', 'LeanDeclTests.test_scope_context_is_part_of_the_interface'), + ('context outlives its scope', "(scopes[-1][2] if scopes else root).append(' '.join(cmd))", "root.append(' '.join(cmd))", + 'lean_decls.py', 'LeanDeclTests.test_scope_context_is_part_of_the_interface'), + ('prefix dropped', " if tx in CONTEXT:\n prefix.append(' '.join(cmd[:-1]))", + " if False:\n prefix.append(' '.join(cmd[:-1]))", 'lean_decls.py', + 'LeanDeclTests.test_scope_context_is_part_of_the_interface'), + ('prefix outlives its declaration', " prefix.clear()\n i = j\n continue\n if kind == 'ident' and tx in COMMANDS:", + " i = j\n continue\n if kind == 'ident' and tx in COMMANDS:", 'lean_decls.py', + 'LeanDeclTests.test_scope_context_is_part_of_the_interface'), + ('set_option breaks a prefix chain', " if cmd[-1] == 'in':\n", " if cmd[-1] == 'in' and tx in CONTEXT:\n", 'lean_decls.py', + 'LeanDeclTests.test_scope_context_is_part_of_the_interface'), + ('combinators end declarations', " return k == 'ident' and t in COMBINATORS and not (fst and indents[ln - 1] <= indent)", + " return False", 'lean_decls.py', 'LeanDeclTests.test_combinators_inside_a_declaration_stay_in_its_value'), + ('combinators never end declarations', " return k == 'ident' and t in COMBINATORS and not (fst and indents[ln - 1] <= indent)", + " return k == 'ident' and t in COMBINATORS", 'lean_decls.py', 'LeanDeclTests.test_combinators_inside_a_declaration_stay_in_its_value'), + ('combinator at the same indentation kept', "and not (fst and indents[ln - 1] <= indent)", "and not (fst and indents[ln - 1] < indent)", + 'lean_decls.py', 'LeanDeclTests.test_combinators_inside_a_declaration_stay_in_its_value'), + ('mutual not a scope', " if kind == 'ident' and tx == 'mutual':\n", " if False:\n", 'lean_decls.py', + 'LeanDeclTests.test_mutual_is_a_scope'), + ('override ignored', " if key in self.overrides:\n", " if False:\n", 'crawl.py', + 'LeanDriftTests.test_override_tests_a_candidate_head'), + ('tips mode ignored', "elif self.at == 'pins' and key in self.pins", "elif key in self.pins", 'crawl.py', + 'LeanDriftTests.test_tips_mode_reads_default_tips'), + ('gitlink unchecked', "if 'gitlink' in rec and 'pins' in rec and rec['gitlink'] != rec['pins']:", + "if False:", 'crawl.py', 'PinTests.test_gitlink_disagreeing_with_pins_blocks'), + ('gitmodules/pins membership unchecked', "if gm is not None and pins is not None and ('gitmodules' in have) != ('pins' in have):", + "if False:", 'crawl.py', 'PinTests.test_submodule_without_pin_blocks'), + ('listing unchecked', "if reg is not None and (have & {'gitmodules', 'pins'}) and 'listed' not in have:", "if False:", + 'crawl.py', 'PinTests.test_pinned_but_unlisted_blocks'), + ('stray gitlink unchecked', " if typ == 'commit' and not any(", " if False and not any(", 'crawl.py', + 'PinTests.test_gitlink_without_gitmodules_entry_blocks'), + ('missing pin passes', "self.add(BLOCK, 'PIN-MISSING', 'pinned commit", "self.add(INFO, 'PIN-MISSING', 'pinned commit", 'crawl.py', + 'PinTests.test_missing_pin_blocks'), + ('ancestry unchecked', " elif not repo.is_ancestor(pin, tip):", " elif False:", 'crawl.py', + 'PinTests.test_pin_off_the_default_line_blocks'), + ('stale pin blocks', "self.add(INFO, 'PIN-STALE'", "self.add(BLOCK, 'PIN-STALE'", 'crawl.py', 'PinTests.test_stale_pin_is_info_only'), + ('shallow trusted', " if repo.shallow:\n", " if False:\n", 'crawl.py', + 'PinTests.test_shallow_clone_cannot_decide_ancestry'), + ('unresolved passes', "self.add(INFO if key in self.optional else BLOCK, 'UNRESOLVED'", "self.add(INFO, 'UNRESOLVED'", 'crawl.py', + 'PinTests.test_unresolved_repository_blocks_unless_opt_in'), + ('opt-in ignored', "self.add(INFO if key in self.optional else BLOCK, 'UNRESOLVED'", "self.add(BLOCK, 'UNRESOLVED'", 'crawl.py', + 'PinTests.test_unresolved_repository_blocks_unless_opt_in'), + ('malformed json passes', "self.add(BLOCK, 'MALFORMED', '%s is not valid JSON", "self.add(INFO, 'MALFORMED', '%s is not valid JSON", 'crawl.py', + 'PinTests.test_malformed_pins_json_blocks'), + ('digest unchecked', "if len(data) != size or hashlib.sha256(data).hexdigest() != digest:", "if len(data) != size:", 'crawl.py', + 'RegistryTests.test_wrong_digest_blocks'), + ('size unchecked', "if len(data) != size or hashlib.sha256(data).hexdigest() != digest:", "if hashlib.sha256(data).hexdigest() != digest:", 'crawl.py', + 'RegistryTests.test_wrong_size_blocks'), + ('absent artifact passes', " if data is None:\n self.add(BLOCK, 'REGISTRY-BYTES'", " if data is None:\n self.add(INFO, 'REGISTRY-BYTES'", 'crawl.py', + 'RegistryTests.test_absent_path_blocks'), + ('artifact commit unchecked', "self.add(BLOCK, 'PIN-MISSING', 'artifact %s", "self.add(INFO, 'PIN-MISSING', 'artifact %s", 'crawl.py', + 'RegistryTests.test_missing_commit_blocks'), + ('evolution blocks', "self.add(INFO, 'REGISTRY-EVOLVED'", "self.add(BLOCK, 'REGISTRY-EVOLVED'", 'crawl.py', + 'RegistryTests.test_evolved_artifact_is_info_only'), + ('observed blob unchecked', "if spec.get('observed_blob') and (ent is None or ent[2] != spec['observed_blob']):", "if False:", 'crawl.py', + 'RegistryTests.test_observed_input_blob_difference_is_info'), + ('registry not followed', " self.check_artifacts(repo, ref, spec['path'], doc)", " pass", 'crawl.py', + 'TopologyTests.test_registry_artifact_repositories_join_the_crawl'), + ('lake records dropped', " self.lake_records.append((key, ref, lm, pkg, dep))\n", "", 'crawl.py', + 'TopologyTests.test_lake_dependency_on_a_crawled_repository_is_followed'), + ('clone ignored', " if gitdir is None and self.clone_into:\n", " if False:\n", 'crawl.py', + 'TopologyTests.test_unheld_repository_is_cloned_from_its_recorded_url'), + ('lake revision unchecked', " if not drepo.has_commit(pkg['rev']):", " if False:", 'crawl.py', + 'TopologyTests.test_missing_lake_revision_blocks'), + ('lake identity dropped', "key, lm, dep, pkg['rev'], drepo.where()), repo=key, path=lm, target=dep, pin=pkg['rev'])", + "key, lm, dep, pkg['rev'], drepo.where()), repo=key)", 'crawl.py', 'TopologyTests.test_missing_lake_revision_blocks'), + ('revisionless package skipped', " if not (isinstance(rev, str) and re.fullmatch(r'[0-9a-f]{40}', rev)):", + " if not (isinstance(rev, str) and re.fullmatch(r'[0-9a-f]{40}', rev)) and False:", 'crawl.py', + 'TopologyTests.test_lake_package_without_usable_revision_blocks'), + ('floating revision accepted', " if not (isinstance(rev, str) and re.fullmatch(r'[0-9a-f]{40}', rev)):", + " if not (isinstance(rev, str) and rev.strip()):", 'crawl.py', + 'TopologyTests.test_lake_floating_revision_blocks'), + ('unknown package shape skipped', " self.add(BLOCK, 'MALFORMED', '%s:%s has a package that is neither git nor path", + " (lambda *a, **k: None)(BLOCK, 'MALFORMED', '%s:%s has a package that is neither git nor path", 'crawl.py', + 'TopologyTests.test_unreadable_lake_packages_block'), + ('unreadable packages list skipped', " self.add(BLOCK, 'MALFORMED', '%s:%s has no readable packages list'", + " (lambda *a, **k: None)(BLOCK, 'MALFORMED', '%s:%s has no readable packages list'", 'crawl.py', + 'TopologyTests.test_unreadable_lake_packages_block'), + ('url-less package skipped', " self.add(BLOCK, 'MALFORMED', '%s:%s has a git package", " (lambda *a, **k: None)(BLOCK, 'MALFORMED', '%s:%s has a git package", 'crawl.py', + 'TopologyTests.test_lake_git_package_without_url_blocks'), + ('lake targets not queued', " out.append(dep)\n", "", 'crawl.py', + 'TopologyTests.test_lake_dependency_reached_only_by_lake_is_scanned'), + ('lake url not recorded', " self.urls.setdefault(dep, pkg['url'])\n", "", 'crawl.py', + 'TopologyTests.test_unheld_lake_dependency_is_cloned'), + ('federation boundary ignored', " if dep.split('/')[0] not in self.owners:", " if False:", 'crawl.py', + 'TopologyTests.test_external_lake_dependency_is_not_crawled'), + ('children not expanded', " for new in self.expand(key, repo):", " for new in (self.expand(key, repo) if key == self.seed_key else []):", 'crawl.py', + 'TopologyTests.test_child_records_extend_the_graph'), + ('registry repositories not queued', " out.append(repo_key(ent['full_name']))", " pass", 'crawl.py', + 'TopologyTests.test_registry_only_repository_is_expanded'), + ('no refresh', " r = git(gitdir, *args, check=False)", " r = git(gitdir, 'status', check=False)", 'crawl.py', + 'TopologyTests.test_fetch_refreshes_the_default_tip'), + ('failed refresh passes', " if self.repos[key].fetch_failed:", " if False:", 'crawl.py', + 'TopologyTests.test_failed_refresh_blocks'), + ('case-sensitive identity', " return ('%s/%s' % (m.group(1), m.group(2))).lower()", " return '%s/%s' % (m.group(1), m.group(2))", 'crawl.py', + 'TopologyTests.test_identity_normalization'), + ('exit ignores blocks', " return 1 if rep['blocking'] else 0", " return 0", 'crawl.py', 'CleanFederationTests.test_cli_exit_status'), + ('evidence copies compared', " if EVIDENCE_SEGMENT.search(path):", " if False:", 'crawl.py', + 'LeanDriftTests.test_evidence_copies_are_counted_not_compared'), + ('every evidence-like name skipped', "EVIDENCE_SEGMENT = re.compile(r'(^|/)([^/]*-)?evidence(/|$)')", + "EVIDENCE_SEGMENT = re.compile(r'evidence')", 'crawl.py', 'LeanDriftTests.test_evidence_paths_are_matched_by_segment'), +] + + +class ScannerMutationTests(unittest.TestCase): + """A8: each mutant must make its designated test fail by assertion, nothing else.""" + + def run_designated(self, tool_dir, test): + env = dict(ENV, CBZ_DRIFT_DIR=str(tool_dir), PYTHONDONTWRITEBYTECODE='1') + mode = ['-O'] if sys.flags.optimize else [] # children run in the parent's interpreter mode + return subprocess.run([sys.executable, '-B', *mode, '-m', 'unittest', 'test_cbz_drift.%s' % test], + cwd=str(pathlib.Path(__file__).parent), capture_output=True, env=env, timeout=600) + + def copy_tool(self, base): + dst = pathlib.Path(base) / 'cbz_drift' + shutil.copytree(TOOL, dst, ignore=shutil.ignore_patterns('__pycache__')) + return dst + + def test_harness_control_every_designated_test_passes_unmutated(self): + with tempfile.TemporaryDirectory() as tmp: + dst = self.copy_tool(tmp) + for test in sorted({m[4] for m in MUTANTS}): + r = self.run_designated(dst, test) + self.assertEqual(r.returncode, 0, '%s: %s' % (test, r.stderr.decode()[-2000:])) + self.assertRegex(r.stderr.decode(), r'Ran 1 test') + + def test_every_mutant_is_killed_by_its_designated_assertion(self): + survivors = [] + for label, old, new, fname, test in MUTANTS: + with self.subTest(mutant=label), tempfile.TemporaryDirectory() as tmp: + dst = self.copy_tool(tmp) + src = (dst / fname).read_text() + self.assertEqual(src.count(old), 1, 'mutant %r does not apply exactly once' % label) + (dst / fname).write_text(src.replace(old, new)) + py_compile.compile(str(dst / fname), doraise=True) # a syntax error cannot count as a kill + r = self.run_designated(dst, test) + err = r.stderr.decode() + # failures=1 with no errors: the designated assertion failed; an exception would count as an error + killed = r.returncode != 0 and re.search(r'FAILED \(failures=\d+\)\s*$', err) + if not killed: + survivors.append((label, err[-1500:])) + self.assertEqual(survivors, [], 'mutants survived or failed for the wrong reason: %s' % survivors) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_cbz_drift_adversarial_01a103c8.py b/tests/test_cbz_drift_adversarial_01a103c8.py new file mode 100644 index 000000000..c8894d8ef --- /dev/null +++ b/tests/test_cbz_drift_adversarial_01a103c8.py @@ -0,0 +1,110 @@ +"""Additional CBZ intent cases against the delivered drift crawler. + +Real Git repositories, local remotes and public behavior; no production mocks. +These cases neither execute Lean nor establish mathematical closure. +""" +import json +import pathlib +import shutil +import subprocess +import tempfile + +from test_cbz_drift import ENV, FedCase, LEAN_A, codes, crawl, sh + + +class IntentGraphClosureTests(FedCase): + def add_lake_edge(self, name, url, rev): + manifest = {"packages": [{"type": "git", "url": url, "rev": rev, "name": name}]} + self.fed.pins["b"] = self.fed.commit( + "b", {"lake-manifest.json": json.dumps(manifest)} + ) + self.fed.write_seed() + + def test_unheld_reachable_lake_dependency_is_discovered_and_cloned(self): + self.fed.build() + sha = self.fed.commit("c", { + "lakefile.toml": 'name = "c"\n', + "lean-toolchain": "v4.0.0\n", + "C.lean": LEAN_A.replace("def f : Nat := 3", "def f : Nat := 7"), + }) + with tempfile.TemporaryDirectory() as remote_base: + remote = pathlib.Path(remote_base) / "fed" / "c" + remote.parent.mkdir() + shutil.move(str(self.fed.repo("c")), str(remote)) + self.add_lake_edge("c", remote.as_uri(), sha) + clones = pathlib.Path(remote_base) / "clones" + clones.mkdir() + report = self.fed.crawl(clone_into=str(clones)) + resolved = {r["repository"] for r in report["repositories"] if r["resolved"]} + self.assertIn("fed/c", resolved) + self.assertIn("LEAN-DRIFT", codes(report, "BLOCK")) + + def test_newly_opened_local_lake_dependency_is_actually_scanned(self): + self.fed.build() + sha = self.fed.commit("c", { + "lakefile.toml": 'name = "c"\n', + "lean-toolchain": "v4.0.0\n", + "C.lean": LEAN_A.replace("def f : Nat := 3", "def f : Nat := 7"), + }) + self.add_lake_edge("c", "https://github.com/fed/c.git", sha) + report = self.fed.crawl() + self.assertIn("fed/c", {r["repository"] for r in report["repositories"] if r["resolved"]}) + self.assertIn("LEAN-DRIFT", codes(report, "BLOCK")) + + def test_child_workspace_pins_extend_the_graph(self): + self.fed.build() + sha = self.fed.commit("c", { + "lakefile.toml": 'name = "c"\n', + "C.lean": LEAN_A.replace("def f : Nat := 3", "def f : Nat := 7"), + }) + child = self.fed.repo("a") + sh(child, "update-index", "--add", "--cacheinfo", "160000,%s,repos/c" % sha) + self.fed.pins["a"] = self.fed.commit("a", { + ".gitmodules": '[submodule "c"]\npath = repos/c\nurl = https://github.com/fed/c.git\n', + "pins.json": json.dumps({"repos": [{ + "url": "https://github.com/fed/c.git", "path": "repos/c", "pinned_sha": sha, + }]}), + "workspace/repositories.json": json.dumps({ + "repositories": [{"full_name": "fed/a"}, {"full_name": "fed/c"}], + }), + }) + self.fed.write_seed() + report = self.fed.crawl() + self.assertIn("fed/c", {r["repository"] for r in report["repositories"] if r["resolved"]}) + self.assertIn("LEAN-DRIFT", codes(report, "BLOCK")) + + def test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage(self): + self.fed.build() + registry = { + "repositories": [{"full_name": "fed/" + n} for n in ("ws", "a", "b", "reg")], + "canonical_inputs": {"repository_registry": { + "repository": "fed/reg", "path": "absent-registry.json", + "observed_blob": "0" * 40, + }}, + } + self.fed.write_seed(extra={"workspace/repositories.json": json.dumps(registry)}) + report = self.fed.crawl() + self.assertGreater(report["blocking"], 0, "Declared registry disappeared without blocking the gate") + + def test_missing_lake_revision_blocks_pin_synchronization(self): + self.fed.build() + self.add_lake_edge("a", "https://github.com/fed/a.git", "2" * 40) + report = self.fed.crawl() + self.assertIn("PIN-MISSING", codes(report, "BLOCK")) + + +class CurrentTipContractTests(FedCase): + def test_fetch_tips_contract_observes_advanced_local_remote(self): + self.fed.build() + with tempfile.TemporaryDirectory() as cache_base: + cache = pathlib.Path(cache_base) / "cached" + subprocess.run( + ["git", "clone", "-q", self.fed.repo("b").as_uri(), str(cache)], + check=True, env=ENV, capture_output=True, + ) + advanced = self.fed.commit("b", {"current-tip-witness": "new commit\n"}) + repository = crawl.Repo("fed/b", cache, fetch=True) + self.assertEqual( + repository.default_tip(), advanced, + "A missing-object-only fetch is insufficient to certify current tips", + ) diff --git a/tests/test_cbz_drift_canonical_input.py b/tests/test_cbz_drift_canonical_input.py new file mode 100644 index 000000000..df3fa09a8 --- /dev/null +++ b/tests/test_cbz_drift_canonical_input.py @@ -0,0 +1,117 @@ +"""R3 canonical-input regression controls using real local Git repositories. + +The original missing-registry witness method below is retained verbatim from +OpenAI/Codex chat 01a103c8's test_cbz_drift_adversarial_01a103c8.py, lines 76-87, +commit 9a5d313bc3a2fc880044498b8e48288d53437ad4 (blob c8894d8ef40cd1b9a6ea7ebfb2a18f08e3183a81). +The complete original six-case qualification suite remains at that commit. +Additional controls cover diagnostics, explicit historical refs and the real CLI. +These fixtures establish engineering behavior only, not federation/G7 closure. +""" +import json +import pathlib +import subprocess +import sys + +from test_cbz_drift import ENV, TOOL, FedCase, codes + + +class CanonicalInputTests(FedCase): + def declare(self, path, **extra): + spec = dict(repository='fed/reg', path=path, **extra) + workspace = { + 'repositories': [{'full_name': 'fed/' + n} for n in ('ws', 'a', 'b', 'reg')], + 'canonical_inputs': {'repository_registry': spec}, + } + self.fed.write_seed(extra={'workspace/repositories.json': json.dumps(workspace)}) + + def assert_missing(self, report, ref, path): + matches = [f for f in report['findings'] if f['level'] == 'BLOCK' and f['code'] == 'INPUT-MISSING'] + self.assertEqual(len(matches), 1, report['findings']) + finding = matches[0] + self.assertEqual(finding['label'], 'repository_registry') + self.assertEqual(finding['repo'], 'fed/reg') + self.assertEqual(finding['ref'], ref) + self.assertEqual(finding['path'], path) + for identity in ('repository_registry', 'fed/reg', ref, path): + self.assertIn(identity, finding['message']) + self.assertEqual(report['blocking'], 1) + + def cli(self): + out = pathlib.Path(self.tmp.name) / 'report.json' + mode = ['-O'] if sys.flags.optimize else [] + proc = subprocess.run( + [sys.executable, '-B', *mode, str(TOOL / 'crawl.py'), '--seed', 'fed/ws', + '--search', self.tmp.name, '--json', str(out)], capture_output=True, env=ENV) + self.assertEqual(proc.stderr, b'', proc.stderr) + return proc, json.loads(out.read_text()) + + def test_absent_declared_canonical_registry_blocks_instead_of_zero_coverage(self): + self.fed.build() + registry = { + "repositories": [{"full_name": "fed/" + n} for n in ("ws", "a", "b", "reg")], + "canonical_inputs": {"repository_registry": { + "repository": "fed/reg", "path": "absent-registry.json", + "observed_blob": "0" * 40, + }}, + } + self.fed.write_seed(extra={"workspace/repositories.json": json.dumps(registry)}) + report = self.fed.crawl() + self.assertGreater(report["blocking"], 0, "Declared registry disappeared without blocking the gate") + + def test_missing_declared_input_without_observed_blob_identifies_selected_ref(self): + self.fed.build() + self.declare('absent-registry.json') + self.assert_missing(self.fed.crawl(), self.fed.pins['reg'], 'absent-registry.json') + + def test_missing_input_at_tip_uses_tip_identity(self): + self.fed.build() + tip = self.fed.commit('reg', {}, remove=('registry.json',)) + self.assert_missing(self.fed.crawl(at='tips'), tip, 'registry.json') + + def test_missing_input_at_override_uses_override_identity(self): + self.fed.build() + candidate = self.fed.commit('reg', {}, remove=('registry.json',)) + self.assert_missing(self.fed.crawl(overrides={'fed/reg': candidate}), candidate, 'registry.json') + + def test_explicit_missing_historical_input_is_not_rebound_to_present_tip(self): + self.fed.build() + historical = self.fed.commit('reg', {}, remove=('registry.json',)) + self.fed.commit('reg', {'registry.json': json.dumps(self.fed.registry)}) + self.declare('registry.json', ref=historical) + self.assert_missing(self.fed.crawl(at='tips'), historical, 'registry.json') + + def test_present_historical_input_is_checked_after_current_path_disappears(self): + self.fed.build() + historical = self.fed.pins['reg'] + current = self.fed.commit('reg', {}, remove=('registry.json',)) + self.declare('registry.json', ref=historical) + report = self.fed.crawl(at='tips') + self.assertEqual(codes(report, 'BLOCK'), []) + self.assertEqual(report['stats']['registry_artifacts_verified'], 1) + self.assertEqual(next(r['ref'] for r in report['repositories'] if r['repository'] == 'fed/reg'), current) + + def test_present_declared_registry_cli_preserves_artifact_coverage(self): + self.fed.build() + proc, report = self.cli() + self.assertEqual(proc.returncode, 0, proc.stdout) + self.assertEqual(report['blocking'], 0) + self.assertEqual(report['stats']['registry_artifacts_verified'], 1) + self.assertEqual(report['stats']['lean_files'], 2) + + def test_missing_declared_registry_cli_returns_one_with_identity(self): + self.fed.build() + self.declare('absent-registry.json') + proc, report = self.cli() + self.assertEqual(proc.returncode, 1, proc.stdout) + self.assert_missing(report, self.fed.pins['reg'], 'absent-registry.json') + self.assertIn(b'BLOCK INPUT-MISSING', proc.stdout) + for identity in ('repository_registry', 'fed/reg', self.fed.pins['reg'], 'absent-registry.json'): + self.assertIn(identity.encode(), proc.stdout) + + def test_never_declared_optional_discovery_files_remain_optional(self): + self.fed.commit('ws', {'README.md': 'No optional discovery manifests declared.\n'}) + report = self.fed.crawl() + self.assertEqual(codes(report, 'BLOCK'), []) + self.assertEqual(report['blocking'], 0) + self.assertEqual(report['stats'].get('registry_artifacts_verified', 0), 0) + self.assertEqual([r['repository'] for r in report['repositories']], ['fed/ws']) diff --git a/tests/test_cbz_drift_pr_trigger_01a11c48.py b/tests/test_cbz_drift_pr_trigger_01a11c48.py new file mode 100644 index 000000000..f48dc71fd --- /dev/null +++ b/tests/test_cbz_drift_pr_trigger_01a11c48.py @@ -0,0 +1,77 @@ +"""PR admission contract: arbitrary future topology inputs must reach the crawl. + +This reuses the existing restricted event-contract reader. It is a source +subscription guard, not a general YAML parser or proof of hosted execution. +""" +import importlib.util +from pathlib import Path +import re +import unittest + + +ROOT = Path(__file__).resolve().parents[1] +WORKFLOW = ROOT / '.github/workflows/cbz-federation-drift.yml' +SPEC = importlib.util.spec_from_file_location( + 'navigation_event_contract', ROOT / 'tests/test_navigation_workflow.py') +EVENTS = importlib.util.module_from_spec(SPEC) +SPEC.loader.exec_module(EVENTS) + + +def require_unfiltered_pr(text): + """Read only the actual PR subscription, rejecting unsupported syntax.""" + # YAML full-line comments do not close the on/event mappings. Strip them + # before either boundary reader can mistake one for a new top-level key. + lines = [line for line in text.splitlines() + if not line.lstrip().startswith('#')] + start = lines.index("'on':") + 1 + end = next((i for i in range(start, len(lines)) + if lines[i] and not lines[i].startswith(' ')), len(lines)) + starts = [i for i in range(start, end) + if re.fullmatch(r' pull_request:\s*', lines[i])] + if len(starts) != 1: + raise AssertionError('exactly one bare pull_request subscription required') + begin = starts[0] + stop = next((i for i in range(begin + 1, end) + if re.match(r' \S', lines[i])), end) + event = EVENTS.parse_event_contract( + "'on':\n" + '\n'.join(lines[begin:stop]) + '\n')['pull_request'] + if event: + raise AssertionError('PR eligibility must not depend on paths, bases or actions') + + +class DriftPullRequestAdmissionTests(unittest.TestCase): + def test_future_topology_inputs_cannot_be_excluded_before_discovery(self): + # An unconditional subscription is the admission contract: today's + # registry filenames cannot enumerate tomorrow's federation inputs. + require_unfiltered_pr(WORKFLOW.read_text(encoding='utf-8')) + + def test_guard_rejects_path_base_and_activity_restrictions(self): + restrictions = ( + "paths: ['formal/**']", + "paths-ignore: ['**/*.json']", + 'branches: [main]', + 'types: [opened]', + ) + for restriction in restrictions: + with self.subTest(restriction=restriction): + with self.assertRaises(AssertionError): + require_unfiltered_pr( + "'on':\n pull_request:\n " + restriction + '\n') + + def test_comments_cannot_hide_a_restriction(self): + for restriction in ("paths: ['formal/**']", "paths-ignore: ['**/*.json']", + 'branches: [main]', 'types: [opened]'): + with self.subTest(restriction=restriction): + with self.assertRaises(AssertionError): + require_unfiltered_pr( + "'on':\n pull_request:\n# a YAML comment is not a mapping boundary\n " + + restriction + '\n') + + def test_comments_preserve_an_unfiltered_subscription(self): + require_unfiltered_pr( + "'on':\n# event documentation\n pull_request:\n# still inside on\n" + " push:\n branches: [main]\n") + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_cbz_node_regression.py b/tests/test_cbz_node_regression.py new file mode 100644 index 000000000..19db62e8f --- /dev/null +++ b/tests/test_cbz_node_regression.py @@ -0,0 +1,1071 @@ +"""Real Git/subprocess contracts for the bounded prepared Node runner.""" +import hashlib +import importlib.util +import importlib._bootstrap_external +import io +import inspect +import secrets +import json +import os +import re +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import textwrap +import types +import unittest +from unittest.mock import patch + +ROOT = Path(__file__).resolve().parents[1] +SOURCE = Path(os.environ.get("CBZ_NODE_RUNNER_SOURCE", ROOT / "tools/cbz_node_regression.py")) + + +def runner(): + if not SOURCE.is_file(): + raise AssertionError("prepared Node runner is missing") + sys.path.insert(0, str(ROOT / "tools")) + module = types.ModuleType("cbz_node_regression_tested") + module.__file__ = str(SOURCE) + exec(compile(SOURCE.read_bytes(), str(SOURCE), "exec"), module.__dict__) + return module + + +class _ObservedRegex: + def __init__(self, inner, case, pattern, frame): + self.inner, self.case, self.pattern, self.frame = inner, case, pattern, frame + + def __enter__(self): + return self.inner.__enter__() + + def __exit__(self, exc_type, exc, traceback): + if exc_type is None: + self.case.observe_missing_rejection(self.pattern, self.frame.f_locals) + return self.inner.__exit__(exc_type, exc, traceback) + + +class NodeRunnerTests(unittest.TestCase): + def mark_bypass(self, event): + nonce = os.environ.get("CBZ_NODE_MUTANT_NONCE") + path = os.environ.get("CBZ_NODE_MUTANT_RECEIPT") + wanted = os.environ.get("CBZ_NODE_MUTANT_NAME") + if nonce and path and wanted == event: + with open(path, "x", encoding="utf-8") as output: + json.dump({"nonce": nonce, "mutation": event, + "test": self._testMethodName, + "observation": "intended_bypass_observed"}, output) + + def assertRaisesRegex(self, expected_exception, expected_regex, *args, **kwargs): + inner = super().assertRaisesRegex(expected_exception, expected_regex, *args, **kwargs) + if args or kwargs or not os.environ.get("CBZ_NODE_MUTANT_RECEIPT"): + return inner + return _ObservedRegex(inner, self, expected_regex, inspect.currentframe().f_back) + + def observe_missing_rejection(self, pattern, variables): + mutation = os.environ.get("CBZ_NODE_MUTANT_NAME") + allowed = { + "loaded-root": ("test_loaded_sources_must_belong_to_selected_main", "loaded source"), + "selected-symlink": ("test_selected_node_test_symlink_is_rejected", "regular.*Node"), + "external-source-symlink": ("test_tracked_source_symlink_cannot_bind_an_external_dependency", "unsupported tracked Git entry"), + "fixture-domain": ("test_child_fixture_mutation_is_a_failed_postflight", "fixture"), + "fixture-postflight": ("test_child_fixture_mutation_is_a_failed_postflight", "fixture"), + "length": ("test_all_byte_identities_are_required", "source identity mismatch"), + "sha256": ("test_all_byte_identities_are_required", "source identity mismatch"), + "declared-blob": ("test_all_byte_identities_are_required", "source identity mismatch"), + "regular-blob": ("test_symlink_is_not_admitted_as_a_regular_fixture", "not a regular Git blob"), + "url": ("test_url_alias_is_rejected", "URL/identity"), + "skip-inputs": ("test_materialization_checks_every_input_before_writing", "source identity mismatch"), + "hidden-bytes": ("test_snapshot_detects_assume_unchanged_source_changes", "tracked bytes differ"), + "hidden-mode": ("test_snapshot_detects_hidden_executable_mode_changes", "executable mode changed"), + "zero-tests": ("test_tap_requires_nonzero_complete_all_passed_summary", "failed.*skipped/todo"), + "skip-summary": ("test_real_node_skips_are_not_a_green_suite", "skipped/todo"), + "duplicate-summary": ("test_tap_missing_or_duplicate_fields_refuse", "missing or ambiguous"), + "empty-discovery": ("test_zero_tracked_node_tests_refuses", "no tracked Node tests"), + } + if allowed.get(mutation) != (self._testMethodName, pattern): + return + fields = {"length": "bytes", "sha256": "sha256", "declared-blob": "blob"} + if mutation in fields and variables.get("field") != fields[mutation]: + return + if mutation == "zero-tests" and ("# tests 0" not in variables.get("value", "") or "# pass 0" not in variables.get("value", "")): + return + if mutation == "duplicate-summary" and (variables.get("field") != "tests" or variables.get("text", "").count("# tests ") != 2): + return + if mutation == "skip-summary": + text = variables["path"].read_text() + if "# tests 1" not in text or "# skipped 1" not in text: + return + if mutation == "skip-inputs": + fixture = variables["output"] / "main/data.txt" + if not fixture.is_file() or fixture.read_bytes() != b"exact input\n": + return + if mutation in ("fixture-domain", "fixture-postflight"): + if variables.get("observed_exit") != 0: + return + fixture = variables["output"] / "shop/Math-/data.txt" + transcript = variables["path"] + if fixture.read_bytes() != b"mutated\n" or not one_pass_tap(transcript.read_text()): + return + self.mark_bypass(mutation) + + def setUp(self): + self.module = runner() + self.temporary = tempfile.TemporaryDirectory(prefix="cbz-node-test-") + self.addCleanup(self.temporary.cleanup) + self.directory = Path(self.temporary.name) + self.repo = self.directory / "main" + self.repo.mkdir() + self.git("init", "-q") + self.git("config", "user.name", "CBZ fixture") + self.git("config", "user.email", "fixture@example.invalid") + (self.repo / "data.txt").write_bytes(b"exact input\n") + self.commit() + self.head = self.git("rev-parse", "HEAD").strip() + self.roots = {"d6g8k5htny-coder/main": self.repo} + + def git(self, *args): + return subprocess.check_output( + ["git", "-C", str(self.repo), *args], + stderr=subprocess.STDOUT, text=True) + + def commit(self): + self.git("add", ".") + self.git("commit", "-qm", "fixture") + + def descriptor(self, raw=b"exact input\n"): + return dict(repository="d6g8k5htny-coder/main", commit=self.head, + path="data.txt", bytes=len(raw), + sha256=hashlib.sha256(raw).hexdigest(), + blob=hashlib.sha1(b"blob " + str(len(raw)).encode() + + b"\0" + raw).hexdigest()) + + def test_ambient_git_redirect_cannot_select_another_object_database(self): + before = os.environ.get("GIT_DIR") + os.environ["GIT_DIR"] = str(self.directory / "absent.git") + try: + try: + raw = self.module.read_pinned(self.roots, self.descriptor()) + except ValueError as error: + if str(error).startswith("Git command failed: ls-tree -z "): + self.mark_bypass("ambient-git") + self.fail("ambient Git redirection affected pinned read: " + str(error)) + self.assertEqual(raw, b"exact input\n") + finally: + if before is None: + os.environ.pop("GIT_DIR", None) + else: + os.environ["GIT_DIR"] = before + + def test_poisoned_runner_bytecode_cannot_execute_in_test_loader(self): + tools = self.repo / "tools" + tools.mkdir() + runner_path = tools / "cbz_node_regression.py" + runner_path.write_bytes(SOURCE.read_bytes()) + (tools / "museum_data.py").write_bytes((ROOT / "tools/museum_data.py").read_bytes()) + stat = runner_path.stat() + cache = Path(importlib.util.cache_from_source( + str(runner_path), optimization=str(sys.flags.optimize) if sys.flags.optimize else "")) + cache.parent.mkdir(parents=True, exist_ok=True) + forged = compile("POISON_RUNNER = True\n", str(runner_path), "exec") + cache.write_bytes(importlib._bootstrap_external._code_to_timestamp_pyc( + forged, int(stat.st_mtime), stat.st_size)) + old_source = SOURCE + try: + globals()["SOURCE"] = runner_path + module = runner() + finally: + globals()["SOURCE"] = old_source + self.assertFalse(getattr(module, "POISON_RUNNER", False)) + + def test_poisoned_museum_bytecode_cannot_pass_source_binding(self): + tools = self.repo / "tools" + tools.mkdir() + runner_path = tools / "cbz_node_regression.py" + museum_path = tools / "museum_data.py" + runner_path.write_bytes(SOURCE.read_bytes()) + museum_path.write_bytes((ROOT / "tools/museum_data.py").read_bytes()) + stat = museum_path.stat() + suffix = ".opt-" + str(sys.flags.optimize) if sys.flags.optimize else "" + cache = tools / "__pycache__" / ("museum_data." + sys.implementation.cache_tag + suffix + ".pyc") + cache.parent.mkdir() + forged = compile("POISON_EXECUTED = True\n", str(museum_path), "exec") + cache.write_bytes(importlib._bootstrap_external._code_to_timestamp_pyc( + forged, int(stat.st_mtime), stat.st_size)) + script = ( + "import sys\nfrom pathlib import Path\n" + "sys.path.insert(0, sys.argv[1])\n" + "import cbz_node_regression as recorder\n" + "recorder.assert_loaded_sources(Path(sys.argv[1]).parent)\n" + "print('CBZ_POISONED' if getattr(recorder.museum_data, 'POISON_EXECUTED', False) else 'CBZ_SOURCE_ONLY')\n") + environment = {key: value for key, value in os.environ.items() + if key not in ("PYTHONPATH", "PYTHONHOME", "PYTHONPYCACHEPREFIX")} + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-B", "-S", + "-c", script, str(tools)], env=environment, capture_output=True, text=True, timeout=30) + if result.returncode == 0 and "CBZ_POISONED" in result.stdout: + self.mark_bypass("museum-bytecode") + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + self.assertIn("CBZ_SOURCE_ONLY", result.stdout) + + def test_loaded_sources_must_belong_to_selected_main(self): + self.assertTrue(hasattr(self.module, "assert_loaded_sources"), + "loaded helper identity guard is missing") + with self.assertRaisesRegex(ValueError, "loaded source"): + self.module.assert_loaded_sources(self.repo) + + def test_loaded_source_and_imported_helper_cannot_drift(self): + self.assertTrue(hasattr(self.module, "assert_loaded_sources"), + "loaded helper identity guard is missing") + tools = self.repo / "tools" + tools.mkdir() + (tools / "cbz_node_regression.py").write_bytes(SOURCE.read_bytes()) + (tools / "museum_data.py").write_bytes((ROOT / "tools/museum_data.py").read_bytes()) + for name in ("cbz_node_regression.py", "museum_data.py"): + script = ( + "import sys\nfrom pathlib import Path\n" + "sys.path.insert(0, sys.argv[1])\n" + "import cbz_node_regression as recorder\n" + "root=Path(sys.argv[1]).parent\n" + "recorder.assert_loaded_sources(root)\n" + "print('CONTROL_IMPORT_PASS')\n" + "path=Path(sys.argv[1])/sys.argv[2]\n" + "path.write_bytes(path.read_bytes()+b'\\n# changed after import\\n')\n" + "try:\n recorder.assert_loaded_sources(root)\n" + "except ValueError:\n print('EXPECTED_SOURCE_REJECTION')\n" + "else:\n raise AssertionError('changed loaded source was accepted')\n") + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-B", "-S", + "-c", script, str(tools), name], + capture_output=True, text=True, timeout=30) + if loaded_bypass_observed(result): + self.mark_bypass("loaded-bytes") + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + self.assertIn("CONTROL_IMPORT_PASS", result.stdout) + self.assertIn("EXPECTED_SOURCE_REJECTION", result.stdout) + + def test_tracked_source_symlink_cannot_bind_an_external_dependency(self): + external = self.directory / "outside.txt" + external.write_text("unbound external source\n") + (self.repo / "dependency").symlink_to(external) + self.commit() + with self.assertRaisesRegex(ValueError, "unsupported tracked Git entry"): + self.module.source_snapshot(self.repo) + + def test_selected_node_test_symlink_is_rejected(self): + (self.repo / "tests").mkdir() + external = self.directory / "outside.mjs" + external.write_text("/* external test code */") + (self.repo / "tests/external.mjs").symlink_to(external) + self.commit() + with self.assertRaisesRegex(ValueError, "regular.*Node"): + self.module.node_command(self.repo, "node") + + def make_fixtures(self): + output = self.directory / "finite-fixtures" + paths = {"shop/Math-/data.txt": b"original\n", + "museum/verified-inputs.json": b"{}\n"} + expected = {} + for relative, raw in paths.items(): + path = output / relative + path.parent.mkdir(parents=True, exist_ok=True) + path.write_bytes(raw) + expected[relative] = dict(bytes=len(raw), + sha256=hashlib.sha256(raw).hexdigest()) + return output, expected + + def test_child_fixture_mutation_is_a_failed_postflight(self): + self.assertTrue(hasattr(self.module, "verify_fixture_tree"), + "fixture postflight guard is missing") + self.assertIsNotNone(shutil.which("node"), "Node is required for this suite") + output, expected = self.make_fixtures() + self.module.verify_fixture_tree(output, expected) + (self.repo / "tests").mkdir() + (self.repo / "tests/mutate.mjs").write_text( + "import test from 'node:test'; import fs from 'node:fs';" + "test('mutation',()=>fs.writeFileSync(" + "process.env.SHOP_MATH_FIXTURE+'/data.txt','mutated\\n'));") + self.commit() + environment = dict(os.environ, SHOP_MATH_FIXTURE=str(output / "shop/Math-")) + path = self.directory / "mutation.tap" + with path.open("wb") as log: + with self.assertRaisesRegex(ValueError, "fixture") as failure: + observed_exit = self.module.execute_node( + self.repo, self.module.node_command(self.repo, "node"), + environment, log, output, expected) + self.assertEqual(failure.exception.exit_code, 0) + self.assertEqual(self.module.tap_summary(path.read_text())["pass"], 1) + self.assertEqual((output / "shop/Math-/data.txt").read_bytes(), b"mutated\n") + + def test_fixture_file_directory_and_type_set_is_exact(self): + self.assertTrue(hasattr(self.module, "verify_fixture_tree"), + "fixture postflight guard is missing") + output, expected = self.make_fixtures() + self.module.verify_fixture_tree(output, expected) + path = output / "shop/Math-/data.txt" + path.unlink() + with self.assertRaisesRegex(ValueError, "fixture"): + self.module.verify_fixture_tree(output, expected) + path.write_bytes(b"original\n") + extra = output / "shop/extra.txt" + extra.write_text("new input") + with self.assertRaisesRegex(ValueError, "fixture"): + self.module.verify_fixture_tree(output, expected) + extra.unlink() + extra.mkdir() + with self.assertRaisesRegex(ValueError, "fixture"): + self.module.verify_fixture_tree(output, expected) + extra.rmdir() + path.unlink() + external = self.directory / "outside-fixture" + external.write_bytes(b"original\n") + path.symlink_to(external) + with self.assertRaisesRegex(ValueError, "fixture"): + self.module.verify_fixture_tree(output, expected) + + def test_reads_immutable_blob_instead_of_dirty_working_copy(self): + (self.repo / "data.txt").write_bytes(b"changed") + self.assertEqual(self.module.read_pinned(self.roots, self.descriptor()), + b"exact input\n") + + def test_missing_historical_object_does_not_fall_back_to_worktree(self): + descriptor = self.descriptor() + descriptor["commit"] = "0" * 40 + with self.assertRaisesRegex(ValueError, "Git command failed"): + self.module.read_pinned(self.roots, descriptor) + + def test_all_byte_identities_are_required(self): + for field, wrong in (("bytes", 7), ("sha256", "0" * 64), + ("blob", "0" * 40)): + with self.subTest(field=field): + descriptor = self.descriptor() + descriptor[field] = wrong + with self.assertRaisesRegex(ValueError, "source identity mismatch"): + self.module.read_pinned(self.roots, descriptor) + + def test_invalid_descriptor_domains_refuse(self): + for field, wrong in ( + ("repository", "attacker/main"), ("commit", "main"), + ("path", "../data.txt"), ("path", "/data.txt"), + ("path", "a//b"), ("path", "a/./b"), ("path", "a\\b"), + ("bytes", True), ("bytes", 0), ("sha256", 9), + ("blob", True)): + with self.subTest(field=field, wrong=wrong): + descriptor = self.descriptor() + descriptor[field] = wrong + with self.assertRaises(ValueError): + self.module.read_pinned(self.roots, descriptor) + + def test_url_alias_is_rejected(self): + descriptor = self.descriptor() + descriptor["url"] = "https://example.invalid/latest/data.txt" + with self.assertRaisesRegex(ValueError, "URL/identity"): + self.module.read_pinned(self.roots, descriptor) + + def test_symlink_is_not_admitted_as_a_regular_fixture(self): + (self.repo / "link").symlink_to("data.txt") + self.commit() + descriptor = self.descriptor(b"data.txt") + descriptor.update(path="link", commit=self.git("rev-parse", "HEAD").strip()) + with self.assertRaisesRegex(ValueError, "not a regular Git blob"): + self.module.read_pinned(self.roots, descriptor) + + def test_materialization_checks_every_input_before_writing(self): + good = self.descriptor() + bad = dict(good, sha256="0" * 64) + output = self.directory / "fixtures" + with self.assertRaisesRegex(ValueError, "source identity mismatch"): + self.module.materialize([good, bad], self.roots, output) + self.assertFalse(output.exists()) + + def test_materialization_preserves_exact_bytes(self): + output = self.directory / "fixtures" + verified = self.module.materialize([self.descriptor()], self.roots, output) + self.assertEqual(len(verified), 1) + self.assertEqual((output / "main/data.txt").read_bytes(), b"exact input\n") + + def test_duplicate_config_keys_refuse(self): + with self.assertRaisesRegex(ValueError, "duplicate JSON key"): + json.loads('{"pin": 1, "pin": 2}', + object_pairs_hook=self.module.no_duplicates) + + def test_snapshot_detects_assume_unchanged_source_changes(self): + self.git("update-index", "--assume-unchanged", "data.txt") + (self.repo / "data.txt").write_bytes(b"hidden mutation\n") + self.assertEqual(self.git("status", "--porcelain"), "") + with self.assertRaisesRegex(ValueError, "tracked bytes differ"): + self.module.source_snapshot(self.repo) + + def test_snapshot_detects_index_and_untracked_changes(self): + (self.repo / "untracked").write_text("unexpected source") + with self.assertRaisesRegex(ValueError, "not clean"): + self.module.source_snapshot(self.repo) + (self.repo / "untracked").unlink() + (self.repo / "data.txt").write_text("changed") + self.git("add", "data.txt") + with self.assertRaisesRegex(ValueError, "not clean"): + self.module.source_snapshot(self.repo) + + def test_snapshot_detects_hidden_executable_mode_changes(self): + self.git("config", "core.fileMode", "false") + (self.repo / "data.txt").chmod(0o755) + with self.assertRaisesRegex(ValueError, "executable mode changed"): + self.module.source_snapshot(self.repo) + + def test_clean_snapshot_binds_head(self): + self.assertEqual(self.module.source_snapshot(self.repo), self.head) + + def test_node_command_enumerates_every_tracked_test(self): + (self.repo / "tests/nested").mkdir(parents=True) + for path in ("tests/a.mjs", "tests/z.mjs", "tests/nested/b.mjs"): + (self.repo / path).write_text("/* fixture */") + self.commit() + command = self.module.node_command(self.repo, "node") + self.assertEqual(command[:3], ["node", "--test", "--test-reporter=tap"]) + self.assertEqual(command[3:], + ["tests/a.mjs", "tests/nested/b.mjs", "tests/z.mjs"]) + + def test_zero_tracked_node_tests_refuses(self): + with self.assertRaisesRegex(ValueError, "no tracked Node tests"): + self.module.node_command(self.repo, "node") + + def test_tap_requires_nonzero_complete_all_passed_summary(self): + good = "# tests 3\n# pass 3\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n" + self.assertEqual(self.module.tap_summary(good)["tests"], 3) + cases = [good.replace("# tests 3", "# tests 0").replace("# pass 3", "# pass 0"), + good.replace("# pass 3", "# pass 2")] + for field in ("fail", "cancelled", "skipped", "todo"): + cases.append(good.replace("# " + field + " 0", "# " + field + " 1")) + for value in cases: + with self.subTest(value=value): + with self.assertRaisesRegex(ValueError, "failed.*skipped/todo"): + self.module.tap_summary(value) + + def test_tap_missing_or_duplicate_fields_refuse(self): + good = "# tests 1\n# pass 1\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n" + for field in ("tests", "pass", "fail", "cancelled", "skipped", "todo"): + line = next(line for line in good.splitlines() + if line.startswith("# " + field + " ")) + for text in (good.replace(line + "\n", ""), good + line + "\n"): + with self.subTest(field=field, text=text): + with self.assertRaisesRegex(ValueError, "missing or ambiguous"): + self.module.tap_summary(text) + + def test_subprocess_exit_and_output_are_preserved(self): + log_path = self.directory / "process.log" + with log_path.open("wb") as log: + code = self.module.execute_node( + self.repo, [sys.executable, "-c", + "print('real stdout'); raise SystemExit(7)"], + dict(os.environ), log, *self.make_fixtures()) + if code == 0 and log_path.read_bytes() == b"real stdout\n": + self.mark_bypass("exit") + self.assertEqual(code, 7) + self.assertEqual(log_path.read_text(), "real stdout\n") + + def test_missing_executable_is_an_execution_error(self): + with (self.directory / "missing.log").open("wb") as log: + with self.assertRaises(FileNotFoundError): + self.module.execute_node( + self.repo, [str(self.directory / "absent")], + dict(os.environ), log, *self.make_fixtures()) + + def test_real_node_skips_are_not_a_green_suite(self): + self.assertIsNotNone(shutil.which("node"), "Node is required for this suite") + (self.repo / "tests").mkdir() + (self.repo / "tests/skip.mjs").write_text( + "import test from 'node:test'; test('retained skip', {skip:true}, ()=>{});") + self.commit() + path = self.directory / "node.tap" + with path.open("wb") as log: + code = self.module.execute_node( + self.repo, self.module.node_command(self.repo, "node"), + dict(os.environ), log, *self.make_fixtures()) + self.assertEqual(code, 0) + with self.assertRaisesRegex(ValueError, "skipped/todo"): + self.module.tap_summary(path.read_text()) + + def test_report_is_atomic_and_keeps_running_distinct_from_pass(self): + path = self.directory / "result.json" + self.module.write_report(path, {"status": "RUNNING"}) + self.assertEqual(json.loads(path.read_text()), {"status": "RUNNING"}) + self.assertFalse(path.with_suffix(".tmp").exists()) + + def test_output_in_any_source_root_refuses(self): + for root in (self.repo, self.directory / "Math-", self.directory / "query-"): + root.mkdir(exist_ok=True) + with self.subTest(root=root): + with self.assertRaisesRegex(ValueError, "outside every source root"): + self.module.run( + self.repo, self.directory / "Math-", + self.directory / "query-", root / "evidence") + + def test_preflight_failure_produces_fail_report(self): + result = self.module.run( + self.repo, self.directory / "Math-", self.directory / "query-", + self.directory / "report") + if (result["status"] == "PASS" and result.get("error") == "loaded source root identity mismatch" + and not result["mathematical_certification"] and not result["final_cbz_certification"]): + self.mark_bypass("false-green-report") + self.assertEqual(result["status"], "FAIL") + self.assertFalse(result["mathematical_certification"]) + self.assertFalse(result["final_cbz_certification"]) + self.assertEqual(json.loads( + (self.directory / "report/result.json").read_text())["status"], "FAIL") + + def test_existing_output_is_never_overwritten(self): + output = self.directory / "report" + output.mkdir() + (output / "retained.txt").write_text("old failure") + with self.assertRaises(FileExistsError): + self.module.run( + self.repo, self.directory / "Math-", self.directory / "query-", output) + self.assertEqual((output / "retained.txt").read_text(), "old failure") + + +def one_pass_tap(text): + expected = {"tests": 1, "pass": 1, "fail": 0, "cancelled": 0, "skipped": 0, "todo": 0} + lines = text.splitlines() + for field, value in expected.items(): + matching = [line for line in lines if line.startswith("# " + field)] + if matching != [f"# {field} {value}"]: + return False + return True + + +def loaded_bypass_observed(result): + return (result.returncode == 1 + and result.stdout.splitlines().count("CONTROL_IMPORT_PASS") == 1 + and result.stderr.splitlines().count( + "AssertionError: changed loaded source was accepted") == 1) + + +def nested(output): + """Quote a child run's output so its summary and trace lines are not read as this run's.""" + return textwrap.indent(output, " | ") + + +def assertion_kill(process, expected): + text = process.stdout + process.stderr + summary = re.search(r"^FAILED \(([^)]*)\)$", text, re.MULTILINE) + if re.search(r"(?m)^(?:ImportError|ModuleNotFoundError|SyntaxError|IndentationError|FileNotFoundError):", text): + return False + if process.returncode != 1 or not summary or not re.fullmatch(r"failures=[1-9][0-9]*", summary.group(1)): + return False + runs = re.findall(r"^Ran [^\n]*$", text, re.MULTILINE) + if len(runs) != 1 or not re.fullmatch(r"Ran 1 test in [0-9]+(?:\.[0-9]+)?s", runs[0]): + return False + failures = re.findall(r"^FAIL: (test_[a-zA-Z0-9_]+) \(", text, re.MULTILINE) + count = int(re.match(r"failures=([0-9]+)", summary.group(1)).group(1)) + return len(failures) == count and all(name == expected for name in failures) + + +def receipt_kill(process, expected, receipt, nonce, mutation): + required = {"nonce": nonce, "mutation": mutation, "test": expected, + "observation": "intended_bypass_observed"} + return process.returncode == 1 and assertion_kill(process, expected) and receipt == required + + +class MutationHarnessTests(unittest.TestCase): + def result(self, code=1, expected="test_expected", summary="failures=1"): + return subprocess.CompletedProcess( + [], code, "", + "FAIL: " + expected + " (fixture.Contract)\n" + "AssertionError: intended mutation\nRan 1 test in 0.001s\n" + "FAILED (" + summary + ")\n") + + def test_intended_assertion_counts(self): + self.assertTrue(assertion_kill(self.result(), "test_expected")) + + def test_success_exit_cannot_kill(self): + self.assertFalse(assertion_kill(self.result(code=0), "test_expected")) + + def test_errors_cannot_kill(self): + self.assertFalse(assertion_kill( + self.result(summary="failures=1, errors=1"), "test_expected")) + + def test_foreign_assertion_cannot_kill(self): + self.assertFalse(assertion_kill(self.result(expected="test_foreign"), + "test_expected")) + + def test_expected_and_foreign_failures_cannot_kill(self): + result = self.result(summary="failures=2") + result.stderr += "\nFAIL: test_foreign (fixture.Contract)\n" + self.assertFalse(assertion_kill(result, "test_expected")) + + def test_skips_and_expected_failures_cannot_kill(self): + for summary in ("failures=1, skipped=1", + "failures=1, expected failures=1", + "failures=1, unexpected successes=1"): + with self.subTest(summary=summary): + self.assertFalse(assertion_kill(self.result(summary=summary), "test_expected")) + + def test_abnormal_test_process_exit_cannot_kill(self): + self.assertFalse(assertion_kill(self.result(code=86), "test_expected")) + + def test_mismatched_failure_count_cannot_kill(self): + self.assertFalse(assertion_kill(self.result(summary="failures=2"), "test_expected")) + + def test_no_tests_cannot_kill(self): + result = self.result() + result.stderr = result.stderr.replace("Ran 1 test", "Ran 0 tests") + self.assertFalse(assertion_kill(result, "test_expected")) + + def test_import_trace_inside_assertion_cannot_kill(self): + result = self.result() + result.stderr += "\nImportError: child module could not load\n" + self.assertFalse(assertion_kill(result, "test_expected")) + + def test_receipt_accepts_only_the_matching_observation(self): + receipt = {"nonce": "fresh", "mutation": "m", "test": "test_expected", + "observation": "intended_bypass_observed"} + self.assertTrue(receipt_kill(self.result(), "test_expected", receipt, "fresh", "m")) + for change in (None, {}, dict(receipt, nonce="old"), + dict(receipt, mutation="other"), + dict(receipt, test="test_foreign"), + dict(receipt, observation="wrong_refusal")): + self.assertFalse(receipt_kill(self.result(), "test_expected", change, "fresh", "m")) + self.assertFalse(receipt_kill(self.result(code=86), "test_expected", None, "fresh", "m")) + self.assertFalse(receipt_kill(self.result(code=86), "test_expected", receipt, "fresh", "m")) + self.assertFalse(receipt_kill(self.result(expected="test_foreign"), "test_expected", receipt, "fresh", "m")) + + def test_control_receipt_requires_the_exact_subject(self): + with tempfile.TemporaryDirectory(prefix="cbz-receipt-control-") as directory: + receipt = Path(directory) / "receipt.json" + names = ("CBZ_NODE_MUTANT_NONCE", "CBZ_NODE_MUTANT_RECEIPT", "CBZ_NODE_MUTANT_NAME") + previous = {name: os.environ.get(name) for name in names} + def restore(): + for name, value in previous.items(): + if value is None: + os.environ.pop(name, None) + else: + os.environ[name] = value + self.addCleanup(restore) + os.environ.update(CBZ_NODE_MUTANT_NONCE="fresh", + CBZ_NODE_MUTANT_RECEIPT=str(receipt), + CBZ_NODE_MUTANT_NAME="length") + case = NodeRunnerTests("test_all_byte_identities_are_required") + case.mark_bypass("foreign-event") + self.assertFalse(receipt.exists()) + case.observe_missing_rejection("source identity mismatch", {"field": "sha256"}) + case.observe_missing_rejection("wrong refusal", {"field": "bytes"}) + self.assertFalse(receipt.exists()) + os.environ.pop("CBZ_NODE_MUTANT_NONCE") + case.observe_missing_rejection("source identity mismatch", {"field": "bytes"}) + self.assertFalse(receipt.exists()) + os.environ["CBZ_NODE_MUTANT_NONCE"] = "fresh" + case.observe_missing_rejection("source identity mismatch", {"field": "bytes"}) + self.assertEqual(json.loads(receipt.read_text()), { + "nonce": "fresh", "mutation": "length", + "test": "test_all_byte_identities_are_required", + "observation": "intended_bypass_observed"}) + + def test_fixture_receipt_requires_successful_node_exit(self): + with tempfile.TemporaryDirectory(prefix="cbz-fixture-observation-") as directory: + root = Path(directory) + fixture = root / "shop/Math-/data.txt" + fixture.parent.mkdir(parents=True) + fixture.write_bytes(b"mutated\n") + transcript = root / "node.tap" + transcript.write_text("# tests 1\n# pass 1\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n") + names = ("CBZ_NODE_MUTANT_NONCE", "CBZ_NODE_MUTANT_RECEIPT", "CBZ_NODE_MUTANT_NAME") + previous = {name: os.environ.get(name) for name in names} + def restore(): + for name, value in previous.items(): + if value is None: + os.environ.pop(name, None) + else: + os.environ[name] = value + self.addCleanup(restore) + case = NodeRunnerTests("test_child_fixture_mutation_is_a_failed_postflight") + for mutation in ("fixture-domain", "fixture-postflight"): + receipt = root / (mutation + ".json") + os.environ.update(CBZ_NODE_MUTANT_NONCE="fresh", + CBZ_NODE_MUTANT_RECEIPT=str(receipt), + CBZ_NODE_MUTANT_NAME=mutation) + inputs = {"output": root, "path": transcript, "observed_exit": 1} + case.observe_missing_rejection("fixture", inputs) + self.assertFalse(receipt.exists(), mutation) + inputs["observed_exit"] = 0 + case.observe_missing_rejection("fixture", inputs) + self.assertTrue(receipt.exists(), mutation) + + def test_selected_control_must_run_exactly_one_test(self): + for kind in ("two-tests", "duplicate-summary"): + with self.subTest(kind=kind): + result = self.result() + if kind == "two-tests": + result.stderr = result.stderr.replace("Ran 1 test", "Ran 2 tests") + else: + result.stderr += "Ran 1 test in 0.002s\n" + self.assertFalse(assertion_kill(result, "test_expected")) + + def test_fixture_receipt_rejects_ambiguous_or_incomplete_tap(self): + with tempfile.TemporaryDirectory(prefix="cbz-fixture-tap-control-") as directory: + root = Path(directory) + fixture = root / "shop/Math-/data.txt" + fixture.parent.mkdir(parents=True) + fixture.write_bytes(b"mutated\n") + transcript = root / "node.tap" + case = NodeRunnerTests("test_child_fixture_mutation_is_a_failed_postflight") + valid = "# tests 1\n# pass 1\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n" + examples = ("# pass 10\n", "# pass 1\n", + valid + "# pass 1\n", + valid.replace("# fail 0\n", "# fail 1\n"), + valid.replace("# skipped 0\n", "# skipped 1\n"), + valid.replace("# cancelled 0\n", "# cancelled 1\n"), + valid.replace("# pass 1\n", "# pass 10\n")) + for mutation in ("fixture-domain", "fixture-postflight"): + for index, value in enumerate(examples): + with self.subTest(mutation=mutation, index=index): + receipt = root / (mutation + str(index) + ".json") + transcript.write_text(value) + with patch.dict(os.environ, {"CBZ_NODE_MUTANT_NONCE": "fresh", + "CBZ_NODE_MUTANT_RECEIPT": str(receipt), + "CBZ_NODE_MUTANT_NAME": mutation}): + case.observe_missing_rejection("fixture", + {"output": root, "path": transcript, "observed_exit": 0}) + self.assertFalse(receipt.exists(), (mutation, value)) + + def test_loaded_bytes_observation_requires_exact_failure(self): + observer = globals().get("loaded_bypass_observed") + self.assertTrue(callable(observer), "loaded-source observation must be explicit and testable") + good = subprocess.CompletedProcess([], 1, "CONTROL_IMPORT_PASS\n", + "Traceback (most recent call last):\n File \"\", line 9, in \nAssertionError: changed loaded source was accepted\n") + self.assertTrue(observer(good)) + for candidate in ( + subprocess.CompletedProcess([], 86, good.stdout, good.stderr), + subprocess.CompletedProcess([], 0, good.stdout, good.stderr), + subprocess.CompletedProcess([], 1, "CONTROL_IMPORT_PASS_EXTRA\n", good.stderr), + subprocess.CompletedProcess([], 1, good.stdout, "crash: changed loaded source was accepted\n"), + subprocess.CompletedProcess([], 1, good.stdout, good.stderr + good.stderr), + ): + with self.subTest(candidate=candidate): + self.assertFalse(observer(candidate)) + + def test_mutant_child_does_not_execute_poisoned_test_cache(self): + for use_prefix in (False, True): + with self.subTest(inherited_prefix=use_prefix), tempfile.TemporaryDirectory(prefix="cbz-node-child-cache-") as directory: + root = Path(directory) / "workspace" + package = root / "tests" + package.mkdir(parents=True) + (package / "__init__.py").write_text("") + source = package / "test_cbz_node_regression.py" + source.write_text("import unittest\nclass NodeRunnerTests(unittest.TestCase):\n def test_child(self): print('CBZ_CHILD_SOURCE')\n") + stat = source.stat() + prefix = str(Path(directory) / "inherited") if use_prefix else None + with patch.object(sys, "pycache_prefix", prefix): + cache = Path(importlib.util.cache_from_source( + str(source), optimization=str(sys.flags.optimize) if sys.flags.optimize else "")) + cache.parent.mkdir(parents=True) + poisoned = compile("print('CBZ_CHILD_POISON'); raise RuntimeError('poison')\n", str(source), "exec") + cache.write_bytes(importlib._bootstrap_external._code_to_timestamp_pyc( + poisoned, int(stat.st_mtime), stat.st_size)) + (root / "tools").mkdir() + (root / "tools/museum_data.py").write_text("") + target = root / "mutant.py" + target.write_text("") + original = ROOT + globals()["ROOT"] = root + try: + with patch.dict(os.environ): + if prefix is None: + os.environ.pop("PYTHONPYCACHEPREFIX", None) + else: + os.environ["PYTHONPYCACHEPREFIX"] = prefix + result = SourceMutationTests("test_unmodified_copied_source_passes").invoke(target, "test_child") + finally: + globals()["ROOT"] = original + self.assertEqual(result.returncode, 0, nested(result.stdout + result.stderr)) + self.assertIn("CBZ_CHILD_SOURCE", result.stdout) + self.assertNotIn("CBZ_CHILD_POISON", result.stdout + result.stderr) + + def test_outer_control_launcher_ignores_poisoned_test_cache(self): + launcher = Path(os.environ.get("CBZ_NODE_CONTROL_LAUNCHER", ROOT / "tools/cbz_node_controls.py")) + self.assertTrue(launcher.is_file(), "source-only control launcher is required") + with tempfile.TemporaryDirectory(prefix="cbz-node-outer-cache-") as directory: + root = Path(directory) / "workspace" + package = root / "tests" + package.mkdir(parents=True) + (package / "__init__.py").write_text("") + source = package / "test_cbz_node_regression.py" + source.write_text("import unittest\nclass TestOuter(unittest.TestCase):\n def test_source(self): print('CBZ_OUTER_SOURCE')\n") + stat = source.stat() + inherited = Path(directory) / "inherited" + cache_paths = [] + for prefix in (None, str(inherited)): + with patch.object(sys, "pycache_prefix", prefix): + cache_paths.append(Path(importlib.util.cache_from_source( + str(source), optimization=str(sys.flags.optimize) if sys.flags.optimize else ""))) + for cache in cache_paths: + cache.parent.mkdir(parents=True, exist_ok=True) + poisoned = compile("print('CBZ_OUTER_POISON'); raise RuntimeError('poison')\n", str(source), "exec") + cache.write_bytes(importlib._bootstrap_external._code_to_timestamp_pyc( + poisoned, int(stat.st_mtime), stat.st_size)) + for prefix in (None, str(inherited)): + with self.subTest(prefix=prefix), patch.dict(os.environ): + if prefix is None: + os.environ.pop("PYTHONPYCACHEPREFIX", None) + else: + os.environ["PYTHONPYCACHEPREFIX"] = prefix + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-I", "-B", "-S", + str(launcher), "--root", str(root)], + capture_output=True, text=True, env=dict(os.environ), timeout=30) + self.assertEqual(result.returncode, 0, nested(result.stdout + result.stderr)) + self.assertIn("CBZ_OUTER_SOURCE", result.stdout) + self.assertNotIn("CBZ_OUTER_POISON", result.stdout + result.stderr) + + def test_outer_control_launcher_refuses_empty_and_skipped_suites(self): + launcher = Path(os.environ.get("CBZ_NODE_CONTROL_LAUNCHER", ROOT / "tools/cbz_node_controls.py")) + self.assertTrue(launcher.is_file(), "source-only control launcher is required") + with tempfile.TemporaryDirectory(prefix="cbz-node-empty-controls-") as directory: + root = Path(directory) + package = root / "tests" + package.mkdir() + (package / "__init__.py").write_text("") + source = package / "test_cbz_node_regression.py" + examples = ("", "import unittest\n@unittest.skip('not exercised')\nclass TestSkipped(unittest.TestCase):\n def test_skipped(self): pass\n") + for text in examples: + with self.subTest(source=text): + source.write_text(text) + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-I", "-B", "-S", + str(launcher), "--root", str(root)], + capture_output=True, text=True, timeout=30) + self.assertNotEqual(result.returncode, 0, nested(result.stdout + result.stderr)) + + def test_source_loader_ignores_poisoned_bytecode(self): + with tempfile.TemporaryDirectory(prefix="cbz-loader-control-") as directory: + path = Path(directory) / "probe.py" + path.write_text("GOOD_SOURCE = True\n") + stat = path.stat() + cache = Path(importlib.util.cache_from_source( + str(path), optimization=str(sys.flags.optimize) if sys.flags.optimize else "")) + cache.parent.mkdir(parents=True, exist_ok=True) + forged = compile("POISON_RUNNER = True\n", str(path), "exec") + cache.write_bytes(importlib._bootstrap_external._code_to_timestamp_pyc( + forged, int(stat.st_mtime), stat.st_size)) + old_source = SOURCE + try: + globals()["SOURCE"] = path + module = runner() + finally: + globals()["SOURCE"] = old_source + self.assertFalse(getattr(module, "POISON_RUNNER", False)) + self.assertTrue(getattr(module, "GOOD_SOURCE", False)) + + def test_launch_failure_cannot_kill(self): + result = subprocess.CompletedProcess([], 1, "", "SyntaxError: broken module") + self.assertFalse(assertion_kill(result, "test_expected")) + + +class SourceMutationTests(unittest.TestCase): + MUTATIONS = [ + ("museum-bytecode", "_MUSEUM_PATH = Path(__file__).resolve().with_name(\"museum_data.py\")\n_MUSEUM_SOURCE = _MUSEUM_PATH.read_bytes()\nmuseum_data = types.ModuleType(\"_cbz_museum_data\")\nmuseum_data.__file__ = str(_MUSEUM_PATH)\nexec(compile(_MUSEUM_SOURCE, str(_MUSEUM_PATH), \"exec\"), museum_data.__dict__)\n", "import museum_data\n_MUSEUM_PATH = Path(museum_data.__file__).resolve()\n_MUSEUM_SOURCE = _MUSEUM_PATH.read_bytes()\n", + "test_poisoned_museum_bytecode_cannot_pass_source_binding"), + ("loaded-root", "set(_LOADED_SOURCES) != expected", "False", + "test_loaded_sources_must_belong_to_selected_main"), + ("loaded-bytes", "path.read_bytes() != raw", "False", + "test_loaded_source_and_imported_helper_cannot_drift"), + ("selected-symlink", 'mode not in (b"100644", b"100755") or stage != b"0"', + "False", "test_selected_node_test_symlink_is_rejected"), + ("external-source-symlink", + ' else:\n raise ValueError("main contains an unsupported tracked Git entry")', + ' elif mode == b"120000" and kind == b"blob":\n raw = os.fsencode(os.readlink(path))\n else:\n raise ValueError("main contains an unsupported tracked Git entry")', + "test_tracked_source_symlink_cannot_bind_an_external_dependency"), + ("fixture-domain", "if actual_files != expected or actual_dirs != expected_dirs:", + "if False:", "test_child_fixture_mutation_is_a_failed_postflight"), + ("fixture-postflight", + " try:\n verify_fixture_tree(fixture_root, expected_fixtures)\n except (OSError, ValueError) as error:\n raise FixturePostflightError(error, process.returncode) from error\n return process.returncode", + " return process.returncode", + "test_child_fixture_mutation_is_a_failed_postflight"), + + ("ambient-git", 'if not key.startswith("GIT_")', "if True", + "test_ambient_git_redirect_cannot_select_another_object_database"), + ("length", "len(raw) != length or ", "", + "test_all_byte_identities_are_required"), + ("sha256", "hashlib.sha256(raw).hexdigest() != digest", "False", + "test_all_byte_identities_are_required"), + ("declared-blob", "(blob is not None and actual_blob != blob)", "False", + "test_all_byte_identities_are_required"), + ("regular-blob", 'mode not in (b"100644", b"100755") or kind != b"blob"', 'False or kind != b"blob"', + "test_symlink_is_not_admitted_as_a_regular_fixture"), + ("url", 'descriptor["url"] != expected_url', "False", + "test_url_alias_is_rejected"), + ("skip-inputs", "for descriptor in descriptors]", "for descriptor in descriptors[:1]]", + "test_materialization_checks_every_input_before_writing"), + ("hidden-bytes", 'if actual.encode("ascii") != oid:', "if False:", + "test_snapshot_detects_assume_unchanged_source_changes"), + ("hidden-mode", 'if executable != (mode == b"100755"):', "if False:", + "test_snapshot_detects_hidden_executable_mode_changes"), + ("zero-tests", 'values["tests"] > 0', 'values["tests"] >= 0', + "test_tap_requires_nonzero_complete_all_passed_summary"), + ("skip-summary", + 'values["pass"] == values["tests"]\n and all(values[name] == 0 for name in _SUMMARY_FIELDS[2:])', + 'values["pass"] <= values["tests"]\n and all(values[name] == 0 for name in _SUMMARY_FIELDS[2:4])', + "test_real_node_skips_are_not_a_green_suite"), + ("duplicate-summary", "if len(matches) != 1:", "if not matches:", + "test_tap_missing_or_duplicate_fields_refuse"), + ("exit", "return process.returncode", "return 0", + "test_subprocess_exit_and_output_are_preserved"), + ("empty-discovery", "if not paths:", "if False:", + "test_zero_tracked_node_tests_refuses"), + ("false-green-report", 'record["status"] = "FAIL"', 'record["status"] = "PASS"', + "test_preflight_failure_produces_fail_report"), + ] + + def invoke(self, path, name, receipt=None, nonce=None, mutation=None): + path.with_name("museum_data.py").write_bytes((ROOT / "tools/museum_data.py").read_bytes()) + environment = {key: value for key, value in os.environ.items() + if not key.startswith("PYTHON")} + environment["CBZ_NODE_RUNNER_SOURCE"] = str(path) + if receipt is not None: + environment.update(CBZ_NODE_MUTANT_RECEIPT=str(receipt), CBZ_NODE_MUTANT_NONCE=nonce, CBZ_NODE_MUTANT_NAME=mutation) + target = "tests.test_cbz_node_regression.NodeRunnerTests" + ("." + name if name else "") + bootstrap = ("import sys, unittest\n" + "sys.path.insert(0, sys.argv[1])\n" + "unittest.main(module=None, argv=['unittest', '-v', sys.argv[2]])\n") + with tempfile.TemporaryDirectory(prefix="cbz-node-child-pycache-") as cache: + return subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-I", "-B", "-S", + "-X", f"pycache_prefix={cache}", "-c", bootstrap, str(ROOT), target], + cwd=ROOT, env=environment, capture_output=True, text=True, timeout=120) + + def test_unmodified_copied_source_passes(self): + with tempfile.TemporaryDirectory(prefix="cbz-node-baseline-") as directory: + path = Path(directory) / "runner.py" + path.write_bytes(SOURCE.read_bytes()) + result = self.invoke(path, None) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + + def test_every_source_mutation_has_its_intended_assertion(self): + source = SOURCE.read_text() + with tempfile.TemporaryDirectory(prefix="cbz-node-mutants-") as directory: + for name, old, new, expected in self.MUTATIONS: + with self.subTest(name=name): + self.assertEqual(source.count(old), 1, "mutation anchor drift: " + name) + path = Path(directory) / (name + ".py") + path.write_text(source.replace(old, new)) + receipt_path = Path(directory) / (name + ".receipt.json") + nonce = secrets.token_hex(16) + result = self.invoke(path, expected, receipt_path, nonce, name) + try: + receipt = json.loads(receipt_path.read_text()) + except (FileNotFoundError, ValueError): + receipt = None + self.assertTrue(receipt_kill(result, expected, receipt, nonce, name), + name + "\n" + result.stdout + result.stderr) + + def test_harness_mutations_are_rejected_by_named_controls(self): + full_source = Path(__file__).read_text() + source, suffix = full_source.split("\nclass SourceMutationTests", 1) + mutations = [ + ("runner-loader", " module = types.ModuleType(\"cbz_node_regression_tested\")\n module.__file__ = str(SOURCE)\n exec(compile(SOURCE.read_bytes(), str(SOURCE), \"exec\"), module.__dict__)\n", " spec = importlib.util.spec_from_file_location(\"cbz_node_regression_tested\", SOURCE)\n module = importlib.util.module_from_spec(spec)\n spec.loader.exec_module(module)\n", + "test_source_loader_ignores_poisoned_bytecode"), + ("fixture-exit", 'if variables.get("observed_exit") != 0:', "if False:", + "test_fixture_receipt_requires_successful_node_exit"), + ("selected-test-count", + 'len(runs) != 1 or not re.fullmatch(r"Ran 1 test in [0-9]+(?:\.[0-9]+)?s", runs[0])', + "False", "test_selected_control_must_run_exactly_one_test"), + ("fixture-tap", "not one_pass_tap(transcript.read_text())", "False", + "test_fixture_receipt_rejects_ambiguous_or_incomplete_tap"), + ("loaded-exit", "result.returncode == 1", "result.returncode != 0", + "test_loaded_bytes_observation_requires_exact_failure"), + ("loaded-exact", 'result.stderr.splitlines().count(\n "AssertionError: changed loaded source was accepted") == 1', + '"changed loaded source was accepted" in result.stderr', + "test_loaded_bytes_observation_requires_exact_failure"), + ("count", "len(failures) == count", "True", + "test_mismatched_failure_count_cannot_kill"), + ("receipt", "receipt == required", "True", + "test_receipt_accepts_only_the_matching_observation"), + ("subject", 'if mutation in fields and variables.get("field") != fields[mutation]:', + "if False:", "test_control_receipt_requires_the_exact_subject"), + ("nonce", "if nonce and path and wanted == event:", + "if path and wanted == event:", "test_control_receipt_requires_the_exact_subject"), + ("event", "if nonce and path and wanted == event:", + "if nonce and path:", "test_control_receipt_requires_the_exact_subject"), + ("import", + ' if re.search(r"(?m)^(?:ImportError|ModuleNotFoundError|SyntaxError|IndentationError|FileNotFoundError):", text):\n return False\n', + "", "test_import_trace_inside_assertion_cannot_kill"), + + ("exit", "process.returncode != 1 or not summary", "not summary", + "test_success_exit_cannot_kill"), + ("errors", ' or not re.fullmatch(r"failures=[1-9][0-9]*", summary.group(1))', "", + "test_errors_cannot_kill"), + ("foreign", "all(name == expected for name in failures)", "bool(failures)", + "test_foreign_assertion_cannot_kill"), + ] + with tempfile.TemporaryDirectory(prefix="cbz-node-harness-mutants-") as directory: + for name, old, new, expected in mutations: + with self.subTest(name=name): + self.assertEqual(source.count(old), 1, "harness anchor drift") + path = Path(directory) / ("test-" + name + ".py") + path.write_text(source.replace(old, new) + "\nclass SourceMutationTests" + suffix) + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-B", "-S", + str(path), "MutationHarnessTests." + expected, "-v"], + env=dict(os.environ), capture_output=True, text=True, timeout=120) + self.assertTrue(assertion_kill(result, expected), + result.stdout + result.stderr) + + + def test_child_cache_guard_mutation_is_rejected(self): + full_source = Path(__file__).read_text() + prefix, suffix = full_source.split("\nclass SourceMutationTests", 1) + old = '"-X", f"pycache_prefix={cache}",' + before, after = suffix.split("\n def test_child_cache_guard_mutation_is_rejected", 1) + self.assertEqual(before.count(old), 1) + with tempfile.TemporaryDirectory(prefix="cbz-node-child-mutant-") as directory: + test_path = Path(directory) / "test-child-mutant.py" + test_path.write_text(prefix + "\nclass SourceMutationTests" + before.replace(old, "", 1) + + "\n def test_child_cache_guard_mutation_is_rejected" + after) + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-I", "-B", "-S", + str(test_path), "MutationHarnessTests.test_mutant_child_does_not_execute_poisoned_test_cache", "-v"], + capture_output=True, text=True, timeout=120) + self.assertTrue(assertion_kill(result, "test_mutant_child_does_not_execute_poisoned_test_cache"), + result.stdout + result.stderr) + self.assertIn("CBZ_CHILD_POISON", result.stdout + result.stderr) + self.assertIn("RuntimeError: poison", result.stdout + result.stderr) + + def test_outer_empty_guard_mutation_is_rejected(self): + launcher = ROOT / "tools/cbz_node_controls.py" + source = launcher.read_text() + old = 'not re.fullmatch(r"Ran [1-9][0-9]* tests? in [0-9]+(?:\.[0-9]+)?s", runs[0])' + self.assertEqual(source.count(old), 1) + with tempfile.TemporaryDirectory(prefix="cbz-node-empty-mutant-") as directory: + mutant = Path(directory) / "controls-mutant.py" + mutant.write_text(source.replace(old, "False", 1)) + environment = dict(os.environ, CBZ_NODE_CONTROL_LAUNCHER=str(mutant)) + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-I", "-B", "-S", + str(Path(__file__).resolve()), + "MutationHarnessTests.test_outer_control_launcher_refuses_empty_and_skipped_suites", "-v"], + env=environment, cwd=ROOT, capture_output=True, text=True, timeout=120) + self.assertTrue(assertion_kill(result, "test_outer_control_launcher_refuses_empty_and_skipped_suites"), + result.stdout + result.stderr) + self.assertIn("Ran 0 tests", result.stdout + result.stderr) + + def test_outer_cache_guard_mutation_is_rejected(self): + launcher = ROOT / "tools/cbz_node_controls.py" + source = launcher.read_text() + old = '"-X", f"pycache_prefix={cache}",' + self.assertEqual(source.count(old), 1) + with tempfile.TemporaryDirectory(prefix="cbz-node-outer-mutant-") as directory: + mutant = Path(directory) / "controls-mutant.py" + mutant.write_text(source.replace(old, "", 1)) + environment = dict(os.environ, CBZ_NODE_CONTROL_LAUNCHER=str(mutant)) + result = subprocess.run( + [sys.executable, *(["-O"] if sys.flags.optimize else []), "-I", "-B", "-S", + str(Path(__file__).resolve()), + "MutationHarnessTests.test_outer_control_launcher_ignores_poisoned_test_cache", "-v"], + env=environment, cwd=ROOT, capture_output=True, text=True, timeout=120) + self.assertTrue(assertion_kill(result, "test_outer_control_launcher_ignores_poisoned_test_cache"), + result.stdout + result.stderr) + self.assertIn("CBZ_OUTER_POISON", result.stdout + result.stderr) + self.assertIn("RuntimeError: poison", result.stdout + result.stderr) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_cbz_statement_fuzz.py b/tests/test_cbz_statement_fuzz.py new file mode 100644 index 000000000..d5b1435fa --- /dev/null +++ b/tests/test_cbz_statement_fuzz.py @@ -0,0 +1,743 @@ +"""Tests for tools/cbz/statement_fuzz.py — the CBZ-0 G12 empirical statement check. + +The harness evaluates core-Lean arithmetic *statements* independently of Lean, in exact arithmetic +(Python integers and fractions, never floats), with Lean's Nat/Int semantics. Run: + + python3 -B -S -m unittest tests.test_cbz_statement_fuzz -v (and with -O) +""" +import json +import os +import pathlib +import sys +import tempfile +import unittest + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'tools' / 'cbz')) + +import statement_fuzz as sf # noqa: E402 + + +LEDGER = ''' +namespace Demo + +/-- doc comment with a tempting 1 + 1 = 3 inside, which is text, not a statement -/ +def fact : Nat → Nat + | 0 => 1 + | n + 1 => (n + 1) * fact n + +def pairingSum (q : Nat) : Nat := + (List.range (q / 2 + 1)).foldl + (fun acc j => acc + fact q / (2 ^ j * fact j * fact (q - 2 * j))) 0 + +def sixA (d : Nat) : Nat := 6 * (d - 1) + 4 + 3 * ((d - 1) * d / 2) +def sixB (d : Nat) : Nat := 6 * d + 3 * ((d - 1) * d / 2) +def imageConstant : Nat := 1458 * (76 * 24 ^ 6 + 15) + +theorem pairing_sum_six : pairingSum 6 = 76 := by decide + +theorem pairing_sum_le_six : ∀ q, q ∈ [0, 1, 2, 3, 4, 5, 6] → pairingSum q ≤ 76 := by + decide + +theorem odd_block_eigenvalues : + (1 : Int) + 15 = 2 * 8 ∧ (1 : Int) * 15 - (-3) * (-3) = 6 ∧ (8 : Int) ^ 2 - 58 = 6 := by + decide + +theorem exponent_bounds : + ∀ d, d ∈ [2, 3] → sixA d + 2 * sixB d < 84 ∧ 2 * sixA d + sixB d < 78 := by + decide + +theorem image_constant_value : imageConstant = 21175738586478 := by decide + +end Demo +''' + + +class TokenizerTests(unittest.TestCase): + def test_tokens_cover_unicode_operators_and_ascriptions(self): + toks = [t.value for t in sf.tokenize('(15 : Int) - (-3) * (-3) / 1 = 6 ∧ ∀ q, q ∈ [0, 1] → q ≤ 1')] + self.assertEqual(toks[:9], ['(', '15', ':', 'Int', ')', '-', '(', '-', '3']) + self.assertIn('∧', toks) + self.assertIn('∀', toks) + self.assertIn('∈', toks) + self.assertIn('→', toks) + self.assertIn('≤', toks) + + def test_comments_are_stripped(self): + toks = [t.value for t in sf.tokenize('1 -- trailing\n+ /- block 2 -/ 3')] + self.assertEqual(toks, ['1', '+', '3']) + + +class EvaluationTests(unittest.TestCase): + def ev(self, text, defs=''): + module = sf.parse_module(defs + f'\ntheorem t : {text} := by decide\n') + return sf.evaluate_theorem(module, module.theorems[-1]) # the appended theorem + + def test_true_and_false_closed_identities(self): + self.assertEqual(self.ev('1 * 3 * 5 = 15').status, 'PASS') + self.assertEqual(self.ev('1 * 3 * 5 = 16').status, 'FAIL') + + def test_a_bound_gives_a_finite_domain_only_for_a_nat_binder(self): + # x : Int with only an upper bound ranges over all negative integers; x = -4 falsifies these + for text in ('∀ x : Int, x ≤ 3 → x * x ≤ 9', '∀ x : ℤ, x < 3 → x + 10 > 0', + '∀ x, x ≤ 3 → x * x ≤ (9 : Int)'): + with self.subTest(text=text): + self.assertEqual(self.ev(text).status, 'UNSUPPORTED') + self.assertEqual(self.ev('∀ x : Nat, x ≤ 3 → x * x ≤ 9').status, 'PASS') + self.assertEqual(self.ev('∀ x : ℕ, x < 4 → x * x ≤ 8').status, 'FAIL') + + def test_nat_subtraction_truncates_and_int_does_not(self): + self.assertEqual(self.ev('2 - 5 + 5 = 5').status, 'PASS') # Nat: (2 - 5) = 0 + self.assertEqual(self.ev('(2 : Int) - 5 + 5 = 2').status, 'PASS') + self.assertEqual(self.ev('(2 : Int) - 5 + 5 = 5').status, 'FAIL') + + def test_nat_division_floors_and_exponent_binds_tightest(self): + self.assertEqual(self.ev('24 ^ 2 / 2 = 288').status, 'PASS') + self.assertEqual(self.ev('7 / 2 = 3 ∧ 7 % 2 = 1').status, 'PASS') + self.assertEqual(self.ev('2 ^ 3 * 2 = 16').status, 'PASS') + + def test_int_division_and_modulus_follow_lean_core_euclidean_convention(self): + # Lean 4 core: `/` on Int is Int.ediv and `%` is Int.emod (Euclidean: 0 ≤ r < |b|), and both are + # totalized at b = 0 (q = 0, r = a). Golden controls from main#684/6511137449; the two cases with a + # negative divisor are exactly where Python's floor division disagrees. + goldens = [((5, -2), (-2, 1)), ((-5, -2), (3, 1)), ((-5, 2), (-3, 1)), + ((5, 2), (2, 1)), ((5, 0), (0, 5)), ((-5, 0), (0, -5))] + for (a, b), (q, r) in goldens: + with self.subTest(a=a, b=b): + self.assertEqual(self.ev(f'({a} : Int) / {b} = {q} ∧ ({a} : Int) % {b} = {r}').status, 'PASS') + self.assertEqual(self.ev(f'({a} : Int) / {b} = {q + 1}').status, 'FAIL') + # Python semantics would read (5, -2) as (-3, -1): that reading must be reported FAIL, not PASS + self.assertEqual(self.ev('(5 : Int) / -2 = -3').status, 'FAIL') + self.assertEqual(self.ev('(5 : Int) % -2 = -1').status, 'FAIL') + # T-division (toward zero) would read (-5, 2) as (-2, -1): also FAIL + self.assertEqual(self.ev('(-5 : Int) / 2 = -2').status, 'FAIL') + + def test_nat_division_and_modulus_are_totalized_at_zero(self): + self.assertEqual(self.ev('7 / 0 = 0 ∧ 7 % 0 = 7').status, 'PASS') + + def test_recursive_def_with_patterns(self): + self.assertEqual(self.ev('fact 6 = 720', LEDGER).status, 'PASS') + self.assertEqual(self.ev('fact 6 = 721', LEDGER).status, 'FAIL') + + def test_list_range_foldl_lambda(self): + self.assertEqual(self.ev('pairingSum 6 = 76', LEDGER).status, 'PASS') + self.assertEqual(self.ev('imageConstant = 21175738586478', LEDGER).status, 'PASS') + + def test_finite_quantifier_is_enumerated_exhaustively(self): + r = self.ev('∀ q, q ∈ [0, 1, 2, 3, 4, 5, 6] → pairingSum q ≤ 76', LEDGER) + self.assertEqual(r.status, 'PASS') + self.assertEqual(r.instances, 7) + self.assertFalse(r.vacuous) + r2 = self.ev('∀ d, d ∈ [2, 3] → sixA d + 2 * sixB d < 84 ∧ 2 * sixA d + sixB d < 78', LEDGER) + self.assertEqual(r2.status, 'PASS') + self.assertEqual(r2.instances, 2) + + def test_quantifier_failure_names_the_witness(self): + r = self.ev('∀ q, q ∈ [0, 1, 2, 3, 4, 5, 6] → pairingSum q ≤ 75', LEDGER) + self.assertEqual(r.status, 'FAIL') + self.assertIn('q = 6', r.detail) + + def test_empty_domain_is_flagged_vacuous(self): + r = self.ev('∀ q, q ∈ [] → 1 = 2', LEDGER) + self.assertEqual(r.status, 'PASS') + self.assertTrue(r.vacuous) + + def test_boundary_probe_reports_tightness_outside_the_domain(self): + # 2a+b < 78 is 77 < 78 at d = 3 and fails at d = 4: the probe records that, as information only + r = self.ev('∀ d, d ∈ [2, 3] → 2 * sixA d + sixB d < 78', LEDGER) + self.assertEqual(r.status, 'PASS') + self.assertTrue(any(p['holds'] is False for p in r.probes)) + + def test_unsupported_constructs_fail_closed(self): + self.assertEqual(self.ev('Real.exp 1 < 3').status, 'UNSUPPORTED') + self.assertEqual(self.ev('∀ x : Nat, x + 0 = x').status, 'UNSUPPORTED') # unbounded domain + self.assertEqual(self.ev('undefinedName 3 = 4').status, 'UNSUPPORTED') + + def test_ascription_inside_conjunction(self): + r = self.ev('(1 : Int) + 15 = 2 * 8 ∧ (1 : Int) * 15 - (-3) * (-3) = 6 ∧ (8 : Int) ^ 2 - 58 = 6') + self.assertEqual(r.status, 'PASS') + + def test_no_float_is_ever_produced(self): + r = self.ev('10 * (125 ^ 20 * 2432902008176640000) < 10 ^ 62') + self.assertEqual(r.status, 'PASS') + for v in r.values: + self.assertNotIsInstance(v, float) + + +P15 = ''' +namespace P +def subsets2 : List (Bool × Bool) := [(false, false), (true, false), (false, true), (true, true)] +def good (U : Bool × Bool) : Bool := !(U.1 && U.2) +def weightNum (U : Bool × Bool) : Nat := (if U.1 then 1 else 2 - 1) * (if U.2 then 1 else 2 - 1) +def priceNum (U : Bool × Bool) : Nat := (if U.1 then 2 else 3) * (if U.2 then 2 else 3) +def totalMassNum : Nat := subsets2.foldl (fun acc U => acc + weightNum U) 0 +def goodMassNum : Nat := (subsets2.filter good).foldl (fun acc U => acc + weightNum U) 0 +def choose (n : Nat) : Nat → Nat + | 0 => 1 + | k + 1 => choose n k * (n - k) / (k + 1) +def ceilDiv (a b : Nat) : Nat := (a + b - 1) / b +end P +''' + + +class P15ConstructTests(unittest.TestCase): + def ev(self, text): + module = sf.parse_module(P15 + f'\ntheorem t : {text} := by decide\n') + return sf.evaluate_theorem(module, module.theorems[-1]) + + def test_bool_pairs_filter_and_list_equality(self): + self.assertEqual(self.ev('subsets2.filter good = [(false, false), (true, false), (false, true)]').status, 'PASS') + self.assertEqual(self.ev('subsets2.filter (fun U => !good U) = [(true, true)]').status, 'PASS') + self.assertEqual(self.ev('subsets2.filter good = [(false, false)]').status, 'FAIL') + + def test_if_then_else_and_folds_over_pairs(self): + self.assertEqual(self.ev('totalMassNum = 2 ^ 2 ∧ goodMassNum * 4 = 3 * 2 ^ 2').status, 'PASS') + self.assertEqual(self.ev('3 * 3 = 9 ∧ subsets2.map priceNum = [9, 6, 6, 4]').status, 'PASS') + + def test_builtin_function_as_higher_order_argument(self): + self.assertEqual(self.ev('(subsets2.map priceNum).foldl min 9 = 4 ∧ 1 * 9 < 4 * 3').status, 'PASS') + self.assertEqual(self.ev('(subsets2.map priceNum).foldl max 0 = 9').status, 'PASS') + self.assertEqual(self.ev('(subsets2.map priceNum).foldl Nat.add 0 = 25').status, 'PASS') + + def test_pattern_def_with_leading_parameters(self): + self.assertEqual(self.ev('choose 6 4 = 15').status, 'PASS') + self.assertEqual(self.ev('6 * choose 409 2 = 500616 ∧ 15 * 409 ^ 4 = 419743994415').status, 'PASS') + + def test_tuple_domains_with_projections(self): + r = self.ev('∀ p, p ∈ [(1, 1), (1, 408), (2, 3), (3, 5), (5, 2)] → ceilDiv (p.1 * p.2 + 1) p.1 = p.2 + 1') + self.assertEqual(r.status, 'PASS') + self.assertEqual(r.instances, 5) + + def test_quantifiers_inside_a_conjunction(self): + r = self.ev('(∀ p, p ∈ [(1, 3), (1, 4), (2, 5)] → 4 ^ (p.1 + 1) * 27 ≤ 16 * 3 ^ p.2) ∧ ' + '(∀ a, a ∈ [1, 2, 3, 4, 5, 6] → 4 * 4 ^ a * 27 ≤ 16 * (3 * 9 ^ a))') + self.assertEqual(r.status, 'PASS') + self.assertEqual(r.instances, 9) + r2 = self.ev('1 * 2 + 1 = 3 ∧ ∀ p, p ∈ [(1, 2), (1, 3), (2, 2), (3, 5), (4, 2)] → 2 * p.1 + 1 ≤ p.1 * p.2 + 1') + self.assertEqual(r2.status, 'PASS') + r3 = self.ev('(∀ a, a ∈ [1, 2, 3] → a < 3)') + self.assertEqual(r3.status, 'FAIL') + self.assertIn('a = 3', r3.detail) + + +class ModuleTests(unittest.TestCase): + def test_module_lists_defs_and_theorems_in_order_and_ignores_doc_text(self): + m = sf.parse_module(LEDGER) + self.assertEqual([t.name for t in m.theorems], + ['Demo.pairing_sum_six', 'Demo.pairing_sum_le_six', 'Demo.odd_block_eigenvalues', + 'Demo.exponent_bounds', 'Demo.image_constant_value']) + self.assertEqual(sorted(m.defs), ['fact', 'imageConstant', 'pairingSum', 'sixA', 'sixB']) + self.assertEqual(m.namespace, 'Demo') + + def test_check_module_evaluates_every_theorem(self): + results = sf.check_module(LEDGER) + self.assertEqual({r.status for r in results}, {'PASS'}) + self.assertEqual(len(results), 5) + + +class MutationSelfTests(unittest.TestCase): + def test_every_mutant_of_a_true_statement_is_detected(self): + m = sf.parse_module(LEDGER) + report = sf.mutation_selftest(m) + self.assertGreaterEqual(report['mutants'], 10) + self.assertEqual(report['survivors'], []) + self.assertTrue(report['control_passed']) + + def test_truth_preserving_weakenings_must_pass_not_fail(self): + # Codex finding 684/6510829073: 522 < 529 is true and so is 522 ≤ 529; a harness that rejects the + # weakening has an evaluator defect. Weakenings are a separate class that must PASS. + m = sf.parse_module('theorem t : 58 * 9 < 23 ^ 2 := by decide\n') + report = sf.mutation_selftest(m) + self.assertEqual(report['weakenings'], 1) + self.assertEqual(report['weakenings_rejected'], []) + self.assertEqual(report['mutants'], 1) # the one guaranteed-false mutant: 58 * 9 ≥ 23 ^ 2 + self.assertTrue(report['harness_ok']) + + def test_declared_manifest_controls_must_fail(self): + src = 'namespace D\ntheorem s : 58 * 9 < 23 ^ 2 := by decide\ntheorem u : 1 + 1 = 2 := by decide\nend D\n' + controls = { + 'false_eigenvalue_third': {'module': 'D.lean', 'replace': '23 ^ 2', 'with': '22 ^ 2'}, + 'sorry_injection': {'module': 'D.lean', 'replace': ':= by decide\ntheorem u', 'with': ':= by sorry\ntheorem u'}, + 'not_applicable': {'module': 'E.lean', 'replace': 'x', 'with': 'y'}, + } + report = sf.declared_controls(src, 'D.lean', controls) + self.assertEqual(report['false_eigenvalue_third']['class'], 'statement') + self.assertEqual(report['false_eigenvalue_third']['status'], 'FAIL') + self.assertEqual(report['false_eigenvalue_third']['theorem'], 'D.s') + self.assertEqual(report['sorry_injection']['class'], 'non-statement') # proof text, not a statement edit + self.assertNotIn('not_applicable', report) # another module + self.assertTrue(report['_summary']['all_statement_controls_fail']) + + def test_unsupported_mutant_is_a_survivor_not_a_kill(self): + m = sf.parse_module('theorem t : 1 + 1 = 2 := by decide\n') + def evaluate(module, thm): + if thm.name == 't' and isinstance(thm.statement, sf.BinOp) and thm.statement.op == '=': + return sf.EvalResult('PASS', 'baseline', 1, False, [], []) + return sf.EvalResult('UNSUPPORTED', 'cannot read the mutant', 0, False, [], []) + report = sf.mutation_selftest(m, evaluate=evaluate) + self.assertEqual(report['killed'], 0) + self.assertIn('UNSUPPORTED', [x['status'] for x in report['survivors']]) # recorded, never a kill + self.assertFalse(report['harness_ok']) + + def test_a_broken_evaluator_is_caught_by_the_control(self): + m = sf.parse_module(LEDGER) + report = sf.mutation_selftest(m, evaluate=lambda module, thm: sf.EvalResult('PASS', 'stub', 0, False, [], [])) + self.assertFalse(report['harness_ok']) + + +class PackageTests(unittest.TestCase): + def test_main_formal_package_declared_controls_all_fail(self): + report = sf.check_package(ROOT / 'formal', selftest=True) + dc = report['declared_controls'] + statement_controls = {k: v for k, v in dc.items() if v['class'] == 'statement'} + self.assertGreaterEqual(len(statement_controls), 4) + self.assertEqual({v['status'] for v in statement_controls.values()}, {'FAIL'}) + self.assertEqual(report['exit_code'], 0) + + def test_main_formal_package_targets_all_pass(self): + report = sf.check_package(ROOT / 'formal') + registered = len(json.loads((ROOT / 'formal' / 'manifest.json').read_text())['targets']) + self.assertGreaterEqual(registered, 31) + self.assertEqual(report['targets'], registered) + self.assertEqual(report['status_counts'].get('PASS'), registered) + self.assertEqual(report['status_counts'].get('FAIL', 0), 0) + self.assertEqual(report['status_counts'].get('UNSUPPORTED', 0), 0) + self.assertEqual(sorted(report['per_target']), sorted(t['name'] for t in report['manifest_targets'])) + + def test_mathlib_syntax_anywhere_in_a_module_does_not_crash_the_package_check(self): + with tempfile.TemporaryDirectory() as d: + root = pathlib.Path(d) + (root / 'Y').mkdir() + (root / 'Y' / 'Core.lean').write_text( + 'import Mathlib\nnamespace Y\n' + 'theorem a : ∑ i ∈ Finset.range 3, (i : ℝ) = 3 := by\n rw [← Finset.sum_range_succ]\n norm_num\n' + 'theorem b : (2 : Nat) + 2 = 4 := by decide\n' + 'lemma c (x : ℝ) : x ^ 2 ≥ 0 := by positivity\nend Y\n') + (root / 'manifest.json').write_text(json.dumps({'source_modules': ['Y/Core.lean'], 'targets': [ + {'name': 'Y.a', 'module': 'Y/Core.lean'}, {'name': 'Y.b', 'module': 'Y/Core.lean'}, + {'name': 'Y.c', 'module': 'Y/Core.lean'}]})) + report = sf.check_package(root) + self.assertEqual(report['per_target']['Y.a']['status'], 'UNSUPPORTED') + self.assertEqual(report['per_target']['Y.b']['status'], 'PASS') + # `(x : ℝ)` before the colon is sampled, never PASS: the package still fails on Y.a + self.assertEqual(report['per_target']['Y.c']['status'], 'CORROBORATED') + self.assertEqual(report['exit_code'], 1) + + def test_manifest_targets_may_be_bare_names(self): + # Math-'s formal/manifest.json lists targets as qualified names without a module field + with tempfile.TemporaryDirectory() as d: + root = pathlib.Path(d) + (root / 'Z').mkdir() + (root / 'Z' / 'A.lean').write_text('namespace Z\ntheorem t : 2 + 2 = 4 := by decide\nend Z\n') + (root / 'manifest.json').write_text(json.dumps({'source_modules': ['Z/A.lean'], 'targets': ['Z.t', 'Z.missing']})) + report = sf.check_package(root) + self.assertEqual(report['per_target']['Z.t']['status'], 'PASS') + self.assertEqual(report['per_target']['Z.t']['module'], 'Z/A.lean') + self.assertEqual(report['per_target']['Z.missing']['status'], 'UNSUPPORTED') + + def test_mathlib_statement_is_reported_unsupported_not_skipped(self): + with tempfile.TemporaryDirectory() as d: + root = pathlib.Path(d) + (root / 'X').mkdir() + (root / 'X' / 'Real.lean').write_text('import Mathlib\nnamespace X\ntheorem r : ∀ x : ℝ, x ^ 2 ≥ 0 := by positivity\nend X\n') + (root / 'manifest.json').write_text('{"source_modules": ["X/Real.lean"], "targets": [{"name": "X.r", "module": "X/Real.lean"}]}') + report = sf.check_package(root) + self.assertEqual(report['status_counts'], {'UNSUPPORTED': 1}) + self.assertEqual(report['exit_code'], 1) + + + +D2 = ''' +namespace Demo +def d2DetV (m2 m4 q : ℝ) : ℝ := (1 - 4 * q) * (m2 ^ 2 * m4) + 4 * q * ((m4 - m2 ^ 2) * (m4 + 3 * m2 ^ 2) / 4) +def d2Numerator (m2 m4 : ℝ) : ℝ := m2 ^ 2 * (m4 - m2 ^ 2) +def d2Schur (m2 m4 q : ℝ) : ℝ := d2Numerator m2 m4 / d2DetV m2 m4 q +end Demo +''' + + +class RealBinderTests(unittest.TestCase): + """Sampled falsification of statements with real binders: exact rationals, Lean's totalized + division and sqrt, hypothesis filtering, pathological boundary values, interval-decided sqrt.""" + + def ev(self, binders, text, defs='', seed=1, samples=64): + module = sf.parse_module(defs + f'\ntheorem t {binders} : {text} := by sorry\n') + return sf.evaluate_theorem(module, module.theorems[-1], seed=seed, samples=samples) + + def test_true_real_identity_is_corroborated_with_sample_counts(self): + r = self.ev('(a b : ℝ)', '(a + b) ^ 2 = a ^ 2 + 2 * a * b + b ^ 2') + self.assertEqual(r.status, 'CORROBORATED') + self.assertGreaterEqual(r.instances, 64) + self.assertIn('admitted', r.detail) + + def test_false_real_identity_is_refuted_with_an_exact_witness(self): + r = self.ev('(a b : ℝ)', '(a + b) ^ 2 = a ^ 2 + b ^ 2') + self.assertEqual(r.status, 'FAIL') + self.assertIn('a =', r.detail) + self.assertIn('b =', r.detail) + self.assertTrue(all(not isinstance(v, float) for v in r.values)) + + def test_hypotheses_filter_samples(self): + self.assertEqual(self.ev('(r : ℝ) (hr0 : 0 ≤ r) (hr1 : r ≤ 1)', 'r ^ 4 ≤ r ^ 3').status, 'CORROBORATED') + self.assertEqual(self.ev('(r : ℝ) (hr0 : 0 ≤ r)', 'r ^ 4 ≤ r ^ 3').status, 'FAIL') # r = 2 + + def test_lean_real_division_is_totalized(self): + self.assertEqual(self.ev('(x : ℝ)', 'x / 0 = 0').status, 'CORROBORATED') + self.assertEqual(self.ev('(x : ℝ) (hx : x ≠ 0)', 'x / x = 1').status, 'CORROBORATED') + r = self.ev('(x : ℝ)', 'x / x = 1') + self.assertEqual(r.status, 'FAIL') + self.assertIn('x = 0', r.detail) # 0 / 0 = 0 ≠ 1 + + def test_unsatisfiable_hypotheses_are_not_a_pass(self): + r = self.ev('(x : ℝ) (h1 : x < 0) (h2 : 0 < x)', 'x = 1') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('no sample', r.detail) + + def test_sqrt_is_exact_on_squares_and_totalized_on_negatives(self): + self.assertEqual(self.ev('', '(1 : ℝ) = Real.sqrt 4 * Real.sqrt (1 / 4 : ℝ)').status, 'PASS') + self.assertEqual(self.ev('', 'Real.sqrt (-1 : ℝ) = 0').status, 'PASS') + self.assertEqual(self.ev('', '¬ (1 : ℝ) ≤ Real.sqrt 4 * (1 / 4 : ℝ)').status, 'PASS') + + def test_sqrt_of_a_non_square_is_decided_by_outward_rounded_intervals(self): + self.assertEqual(self.ev('', 'Real.sqrt 2 < 3 / 2').status, 'PASS') + self.assertEqual(self.ev('', 'Real.sqrt 2 = 3 / 2').status, 'FAIL') + self.assertEqual(self.ev('', '(7 : ℝ) / 5 < Real.sqrt 2 ∧ Real.sqrt 2 < 141422 / 100000').status, 'PASS') + + def test_sqrt_identity_with_sampled_arguments_is_corroborated(self): + r = self.ev('(r cW cZ q : ℝ) (hr : r ≠ 0) (hcZ : cZ ≠ 0)', + '(Real.sqrt cW * r ^ 2 * Real.sqrt q) / (cZ * r ^ 2) = (Real.sqrt cW / cZ) * Real.sqrt q') + self.assertEqual(r.status, 'CORROBORATED') + r2 = self.ev('(cW : ℝ)', 'Real.sqrt cW * Real.sqrt cW = cW') + self.assertEqual(r2.status, 'FAIL') # cW < 0: 0 ≠ cW + + def test_abs_max_and_ne(self): + self.assertEqual(self.ev('', '|(-3 : ℝ)| = 3 ∧ max (1 : ℝ) 2 = 2').status, 'PASS') + self.assertEqual(self.ev('(a b z t δ : ℝ) (hz : 0 < z) (ht : 0 < t) (ha : 0 ≤ a) (haz : a ≤ z) (hab : |a - b| ≤ δ) (hzt : |z - t| ≤ δ)', + '|a / z - b / t| ≤ 2 * δ / t').status, 'CORROBORATED') + + def test_local_real_defs_with_parameters(self): + self.assertEqual(self.ev('(m2 m4 : ℝ)', 'd2DetV m2 m4 0 = m2 ^ 2 * m4', D2).status, 'CORROBORATED') + self.assertEqual(self.ev('', 'd2DetV 1 1 (1 / 4) = 0 ∧ d2Schur 1 1 (1 / 4) = 0 ∧ d2Numerator 1 1 / d2DetV 1 1 (1 / 4) = 0', D2).status, 'PASS') + self.assertEqual(self.ev('(m2 m4 q : ℝ) (hm2 : 0 < m2) (hm4 : m2 ^ 2 < m4) (hq0 : 0 ≤ q) (hq1 : q ≤ 1 / 4)', + '0 < d2DetV m2 m4 q', D2).status, 'CORROBORATED') + + def test_non_numeric_binders_stay_unsupported(self): + for b in ('(μ : Measure Ω)', '(f : Ω → ℝ)', '[IsProbabilityMeasure μ] (μ : Measure Ω)', '(A : Set Ω)'): + with self.subTest(b=b): + self.assertEqual(self.ev(b, '(1 : ℝ) = 1').status, 'UNSUPPORTED') + + def test_boundary_values_from_hypotheses_are_sampled(self): + # true only strictly inside (0, 1): fails at the boundary r = 1 exactly, which the sampler must try + r = self.ev('(r : ℝ) (hr0 : 0 ≤ r) (hr1 : r ≤ 1)', 'r ^ 4 < r ^ 3') + self.assertEqual(r.status, 'FAIL') + self.assertTrue('r = 1' in r.detail or 'r = 0' in r.detail) + + def test_sampling_is_deterministic_for_a_seed(self): + a = self.ev('(a b : ℝ)', '(a + b) ^ 2 = a ^ 2 + 2 * a * b + b ^ 2', seed=7) + b = self.ev('(a b : ℝ)', '(a + b) ^ 2 = a ^ 2 + 2 * a * b + b ^ 2', seed=7) + self.assertEqual((a.status, a.instances, a.detail), (b.status, b.instances, b.detail)) + + def test_mutation_contract_applies_to_sampled_statements(self): + module = sf.parse_module(D2 + '\ntheorem t (m2 m4 : ℝ) : d2DetV m2 m4 0 = m2 ^ 2 * m4 := by ring\n' + '\ntheorem u (r : ℝ) (hr0 : 0 ≤ r) (hr1 : r ≤ 1) : r ^ 4 ≤ r ^ 3 := by nlinarith\n') + report = sf.mutation_selftest(module) + self.assertTrue(report['control_passed']) + self.assertEqual(report['killed'], report['mutants']) + self.assertGreaterEqual(report['mutants'], 2) + self.assertEqual(report['weakenings_rejected'], []) + self.assertTrue(report['harness_ok']) + + +class ExactRealAlgebraTests(unittest.TestCase): + """Closed statements over ℝ are decided exactly in ℚ(√d₁, …, √dₖ): never a float, never an approximation.""" + + def ev(self, text, defs=''): + module = sf.parse_module(defs + f'\ntheorem t : {text} := by norm_num\n') + return sf.evaluate_theorem(module, module.theorems[-1]) + + def test_quadratic_identities_and_inverses_are_exact(self): + for text in ('Real.sqrt 2 * Real.sqrt 2 = 2', 'Real.sqrt 2 + Real.sqrt 8 = 3 * Real.sqrt 2', + '1 / (Real.sqrt 2 + Real.sqrt 3) = Real.sqrt 3 - Real.sqrt 2', + '(Real.sqrt 2 + Real.sqrt 3) ^ 2 = 5 + 2 * Real.sqrt 6', + '(Real.sqrt 2 + Real.sqrt 3 + Real.sqrt 5 + Real.sqrt 30)⁻¹ * (Real.sqrt 2 + Real.sqrt 3 + Real.sqrt 5 + Real.sqrt 30) = 1', + 'Real.sqrt (Real.sqrt 2 * Real.sqrt 2) = Real.sqrt 2', '√2 * √2 = 2 ∧ √(2 : ℝ) ^ 2 = 2', + 'Real.sqrt (1 / 2) = Real.sqrt 2 / 2', 'Real.sqrt 12 * Real.sqrt 3 = 6'): + with self.subTest(text=text): + r = self.ev(text) + self.assertEqual(r.status, 'PASS', r.detail) + self.assertFalse(any(isinstance(v, float) for v in r.values)) + + def test_orderings_near_zero_are_decided_by_refinement_not_floats(self): + self.assertEqual(self.ev('Real.sqrt 2 + Real.sqrt 3 < Real.sqrt 10').status, 'PASS') # 3.1462… < 3.1622… + self.assertEqual(self.ev('Real.sqrt 2 + Real.sqrt 3 > Real.sqrt 10').status, 'FAIL') + self.assertEqual(self.ev('Real.sqrt 2 > 1.41421356 ∧ Real.sqrt 2 < 1.41421357').status, 'PASS') + self.assertEqual(self.ev('Real.sqrt 1000001 - 1000 > 1 / 2001 ∧ Real.sqrt 1000001 - 1000 < 1 / 2000').status, 'PASS') + + def test_scientific_literals_need_a_field_context(self): + self.assertEqual(self.ev('(0.5 : ℝ) = 1 / 2').status, 'PASS') + self.assertEqual(self.ev('(1 : ℝ) / 3 = 0.3333').status, 'FAIL') + self.assertEqual(self.ev('0.5 = 1 / 2').status, 'UNSUPPORTED') # Lean would default 0.5 to Float + + def test_exponent_typing_follows_lean(self): + self.assertEqual(self.ev('(2 : ℝ) ^ (-2 : ℤ) = 1 / 4 ∧ (0 : ℝ) ^ (-2 : ℤ) = 0').status, 'PASS') # zpow, 0⁻¹ = 0 + self.assertEqual(self.ev('(9 : ℝ) ^ (1 / 2) = 1').status, 'PASS') # the exponent 1/2 is a Nat: 0 + self.assertEqual(self.ev('(9 : ℝ) ^ (1 / 2 : ℝ) = 3').status, 'UNSUPPORTED') # rpow + + def test_transcendental_and_nested_radicals_stay_unsupported(self): + self.assertEqual(self.ev('Real.exp 0 = 1').status, 'UNSUPPORTED') + self.assertEqual(self.ev('Real.sqrt (Real.sqrt 2) < 2').status, 'UNSUPPORTED') + self.assertIn('nested radical', self.ev('Real.sqrt (Real.sqrt 2) < 2').detail) + + def test_roots_of_radicands_beyond_exact_factoring_stay_exact_but_never_guess_zero(self): + # 10^47 + 3 cannot be split into square and squarefree parts within the deterministic primality range; + # its root is kept exactly, orderings are decided by enclosures, and an exact zero is refused + big = '(10 ^ 47 + 3 : ℝ)' + self.assertEqual(self.ev(f'Real.sqrt {big} > 316227766016837933199889 ∧ Real.sqrt {big} < 316227766016837933199890').status, 'PASS') + self.assertEqual(self.ev(f'Real.sqrt {big} = Real.sqrt {big}').status, 'PASS') + self.assertEqual(self.ev(f'Real.sqrt (2 * {big}) = Real.sqrt 2 * Real.sqrt {big}').status, 'PASS') + self.assertEqual(self.ev(f'Real.sqrt {big} = 316227766016837933199889').status, 'FAIL') + r = self.ev(f'Real.sqrt ((10 ^ 6 + 3) ^ 2 * {big}) = (10 ^ 6 + 3) * Real.sqrt {big}') # true, but not recognisable + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('unsplit radicand', r.detail) + + def test_ascription_scopes_the_elaboration_type(self): + # binop% pushes the cast to the leaves: `((7 : ℕ) / 2 : ℝ)` is `↑7 / 2 = 7/2`; only an inner ascription + # on the quotient keeps Nat division + self.assertEqual(self.ev('((7 : ℕ) / 2 : ℝ) = 7 / 2 ∧ (7 / 2 : ℝ) = 7 / 2 ∧ ((7 / 2 : ℕ) : ℝ) = 3').status, 'PASS') + self.assertEqual(self.ev('((7 : ℕ) / 2 : ℝ) = 3').status, 'FAIL') + + +class SampledBinderSemanticsTests(unittest.TestCase): + def ev(self, binders, text, defs='', seed=1, samples=64): + module = sf.parse_module(defs + f'\ntheorem t {binders} : {text} := by sorry\n') + return sf.evaluate_theorem(module, module.theorems[-1], seed=seed, samples=samples) + + def test_nat_and_int_binders_are_sampled_with_lean_semantics(self): + self.assertEqual(self.ev('(n : ℕ)', 'n * (n + 1) % 2 = 0').status, 'CORROBORATED') + self.assertEqual(self.ev('(n : ℤ)', 'n ^ 2 ≥ n').status, 'CORROBORATED') + r = self.ev('(n : ℤ)', 'n ^ 3 ≥ n') + self.assertEqual(r.status, 'FAIL') + self.assertIn('n = -', r.detail) + self.assertEqual(self.ev('(a b : ℤ) (hb : b ≠ 0)', 'a = b * (a / b) + a % b ∧ 0 ≤ a % b ∧ a % b < |b|').status, 'CORROBORATED') + self.assertEqual(self.ev('(n : ℕ)', '((n - 1 : ℕ) : ℝ) = (n : ℝ) - 1').status, 'FAIL') # truncation at n = 0 + self.assertEqual(self.ev('(n : ℕ)', '(n - 1 : ℝ) = (n : ℝ) - 1').status, 'CORROBORATED') + + def test_infeasible_instances_are_skipped_and_counted_not_approximated(self): + r = self.ev('(n : ℕ)', '2 ^ n > n') + self.assertEqual(r.status, 'CORROBORATED') + self.assertGreater(r.sampling['infeasible'], 0) # n = 2^63 and friends: no 2^(2^63) is attempted + self.assertEqual(self.ev('(n : ℕ)', 'Nat.factorial n ≥ 1').status, 'CORROBORATED') + self.assertEqual(self.ev('', '2 ^ (2 ^ 40) > 0').status, 'UNSUPPORTED') # closed: infeasible is fail-closed + + def test_interval_membership_hypotheses_desugar(self): + self.assertEqual(self.ev('(x : ℝ) (hx : x ∈ Set.Icc (0 : ℝ) 1)', 'x ^ 2 ≤ x').status, 'CORROBORATED') + self.assertEqual(self.ev('(x : ℝ) (hx : x ∈ Set.Icc (0 : ℝ) 1)', 'x ^ 2 < x').status, 'FAIL') + self.assertEqual(self.ev('(x : ℝ) (hx : x ∈ Set.Ioo (0 : ℝ) 1)', 'x ^ 2 < x').status, 'CORROBORATED') + + def test_hypothesis_boundaries_between_variables_are_found(self): + self.assertEqual(self.ev('(x y : ℝ) (h : x < y)', 'x < (x + y) / 2 ∧ (x + y) / 2 < y').status, 'CORROBORATED') + r = self.ev('(x y : ℝ) (h : x ≤ y)', 'x < (x + y) / 2') + self.assertEqual(r.status, 'FAIL') # x = y + + def test_inner_finite_quantifier_under_a_sampled_binder(self): + self.assertEqual(self.ev('(n : ℕ)', '∀ k, k ∈ [0, 1, 2] → k ≤ n + 2').status, 'CORROBORATED') + self.assertEqual(self.ev('(n : ℕ)', '∀ k : ℕ, k ≤ 3 → k ≤ n + 3').status, 'CORROBORATED') + r = self.ev('(n : ℕ)', '∀ k : ℕ, k ≤ 3 → k ≤ n + 2') + self.assertEqual(r.status, 'FAIL') # n = 0, k = 3 + self.assertIn('n = 0', r.detail) + self.assertEqual(self.ev('(ε : ℝ) (hε : 0 < ε)', '∃ n, 1 / n < ε').status, 'UNSUPPORTED') + + def test_undefined_predicates_in_hypotheses_name_the_binder(self): + r = self.ev('(p : ℕ) (hp : Nat.Prime p)', 'p ≥ 2') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('hp', r.detail) + r = self.ev('(x : ℝ) (hx : Real.exp x > 0)', 'x = x') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('Real.exp', r.detail) + + def test_type_tokens_inside_a_binder_type_are_types_not_hypotheses(self): + for b in ('(x : ℝ≥0)', '(n : ℕ+)', '(v : Fin 3 → ℝ)'): + with self.subTest(b=b): + r = self.ev(b, '(1 : ℝ) = 1') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('neither a sampled numeric type', r.detail) + + def test_a_comparison_of_scientific_literals_alone_has_no_exact_type(self): + # `1.5 = 1.5` elaborates at Float in Lean; the interpreter refuses rather than reading it as ℝ + r = self.ev('', '1.5 = 1.5') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('Float', r.detail) + self.assertEqual(self.ev('(x : ℝ)', 'x * 1.5 = 3 * x / 2').status, 'CORROBORATED') + + def test_abs_is_an_application_argument_only_without_whitespace(self): + self.assertEqual(self.ev('(x : ℝ)', 'max |x| 0 = |x|').status, 'CORROBORATED') + self.assertEqual(self.ev('(x y : ℝ)', '|x * y| = |x| * |y| ∧ |x + y| ≤ |x| + |y|').status, 'CORROBORATED') + + def test_sampled_witness_is_exact_and_hypotheses_hold_at_it(self): + r = self.ev('(x : ℝ) (hx : 0 < x)', 'x ^ 2 ≤ x') + self.assertEqual(r.status, 'FAIL') + self.assertEqual(r.sampling['witness']['x'], '2') + self.assertFalse(any(isinstance(v, float) for v in r.values)) + + +class AdmitCorroboratedPackageTests(unittest.TestCase): + def test_exit_code_is_strict_by_default_and_admits_sampled_verdicts_on_request(self): + with tempfile.TemporaryDirectory() as d: + root = pathlib.Path(d) + (root / 'W').mkdir() + (root / 'W' / 'R.lean').write_text('import Mathlib\nnamespace W\n' + 'theorem a (x : ℝ) : x ^ 2 ≥ 0 := by positivity\n' + 'theorem b : (2 : ℝ) + 2 = 4 := by norm_num\nend W\n') + (root / 'manifest.json').write_text(json.dumps({'source_modules': ['W/R.lean'], 'targets': ['W.a', 'W.b']})) + strict = sf.check_package(root) + self.assertEqual(strict['status_counts'], {'CORROBORATED': 1, 'PASS': 1}) + self.assertEqual(strict['exit_code'], 1) # the registered contract: PASS only + self.assertEqual(strict['per_target']['W.a']['sampling']['accepted'], 64) + admitting = sf.check_package(root, admit_corroborated=True) + self.assertEqual(admitting['exit_code'], 0) + self.assertTrue(admitting['sampling']['admit_corroborated']) + totals = admitting['sampling_totals'] # a8's #742 nit: infeasible draws are reported, per package + self.assertEqual(totals['sampled_targets'], 1) + self.assertEqual(totals['accepted_total'], 64) + self.assertEqual(totals['infeasible_total'], 0) + self.assertEqual(totals['targets_with_infeasible_draws'], []) + self.assertEqual(sf.main(['--package', str(root)]), 1) + self.assertEqual(sf.main(['--package', str(root), '--admit-corroborated', '--seed', '3', '--samples', '16']), 0) + + +FM = ''' +import Mathlib +namespace FM +open MeasureTheory +open scoped ENNReal +variable {Ω : Type*} [MeasurableSpace Ω] + +noncomputable def weightedLaw (μ : Measure Ω) (W : Ω → ℝ) : Measure Ω := + (ENNReal.ofReal (∫ x, W x ∂μ))⁻¹ • + μ.withDensity (fun x => ENNReal.ofReal (W x)) + +def badJetEvent (R : Ω → ℝ) (r ε : ℝ) : Set Ω := + {x | ε < r * R x ^ 5} +end FM +''' + + +class FiniteModelTests(unittest.TestCase): + """Measure-theoretic statements are tested on finite discrete models: Ω = Fin n, nonnegative rational + weights, functions as tables, sets as subsets. Integrals are finite sums; a.e. relations hold off the + null points; measurability and integrability are automatic; measure equality and ≪ are pointwise.""" + + def ev(self, binders, text, seed=1, samples=64): + module = sf.parse_module(FM + f'\ntheorem t {binders} : {text} := by sorry\n') + return sf.evaluate_theorem(module, module.theorems[-1], seed=seed, samples=samples) + + MARKOV = ('(μ : Measure Ω) [IsFiniteMeasure μ] (Y : Ω → ℝ) (A : Set Ω) (hY : Integrable Y μ) (hY0 : 0 ≤ᵐ[μ] Y) ' + '(a : ℝ) (ha : 0 < a) (hsub : A ⊆ {x | a ≤ Y x})') + + def test_markov_event_is_corroborated_and_its_misstatements_refuted(self): + r = self.ev(self.MARKOV, '(μ A).toReal ≤ (∫ x, Y x ∂μ) / a') + self.assertEqual(r.status, 'CORROBORATED', r.detail) + self.assertGreaterEqual(r.instances, 64) + self.assertEqual(self.ev(self.MARKOV, '(μ A).toReal ≤ (∫ x, Y x ∂μ) / (2 * a)').status, 'FAIL') + r = self.ev('(μ : Measure Ω) [IsFiniteMeasure μ] (Y : Ω → ℝ) (A : Set Ω) (hY0 : 0 ≤ᵐ[μ] Y) (a : ℝ) (ha : 0 < a)', + '(μ A).toReal ≤ (∫ x, Y x ∂μ) / a') # without A ⊆ {a ≤ Y}: false + self.assertEqual(r.status, 'FAIL') + self.assertIn('μ =', r.detail) + self.assertIn('A =', r.detail) + self.assertIn('Fin', r.detail) + + def test_integral_cauchy_schwarz_with_exact_square_roots(self): + cs = '(μ : Measure Ω) (f g : Ω → ℝ) (hf : MemLp f 2 μ) (hg : MemLp g 2 μ) (hf0 : 0 ≤ᵐ[μ] f) (hg0 : 0 ≤ᵐ[μ] g)' + self.assertEqual(self.ev(cs, '(∫ x, f x * g x ∂μ) ≤ Real.sqrt (∫ x, f x ^ 2 ∂μ) * Real.sqrt (∫ x, g x ^ 2 ∂μ)').status, + 'CORROBORATED') + self.assertEqual(self.ev(cs, '(∫ x, f x * g x ∂μ) < Real.sqrt (∫ x, f x ^ 2 ∂μ) * Real.sqrt (∫ x, g x ^ 2 ∂μ)').status, + 'FAIL') # equality at f = g, or on one point + + def test_set_integral_and_event_mass(self): + ev_cs = ('(μ : Measure Ω) [IsProbabilityMeasure μ] (W : Ω → ℝ) (A : Set Ω) (hW : MemLp W 2 μ) (hW0 : 0 ≤ᵐ[μ] W) ' + '(hA : MeasurableSet A)') + self.assertEqual(self.ev(ev_cs, '(∫ x in A, W x ∂μ) ≤ Real.sqrt (∫ x, W x ^ 2 ∂μ) * Real.sqrt ((μ A).toReal)').status, + 'CORROBORATED') + self.assertEqual(self.ev(ev_cs, '0 ≤ (∫ x in A, W x ∂μ) ∧ (∫ x in A, W x ∂μ) ≤ ∫ x, W x ∂μ').status, 'CORROBORATED') + self.assertEqual(self.ev('(μ : Measure Ω) [IsProbabilityMeasure μ] (W : Ω → ℝ) (A : Set Ω)', + '(∫ x in A, W x ∂μ) ≤ ∫ x, W x ∂μ').status, 'FAIL') # W may be negative off A + + def test_weighted_law_apply_needs_the_ae_nonnegativity_and_ennreal_semantics(self): + apply = 'weightedLaw μ W A = (ENNReal.ofReal (∫ x, W x ∂μ))⁻¹ * ENNReal.ofReal (∫ x in A, W x ∂μ)' + self.assertEqual(self.ev('(μ : Measure Ω) (W : Ω → ℝ) (A : Set Ω) (hW : Integrable W μ) (hW0 : 0 ≤ᵐ[μ] W) (hA : MeasurableSet A)', + apply).status, 'CORROBORATED') + # `ofReal` clips negative values: with a signed W the two sides differ (∞ · 0 = 0 on one side only) + self.assertEqual(self.ev('(μ : Measure Ω) (W : Ω → ℝ) (A : Set Ω) (hW : Integrable W μ) (hA : MeasurableSet A)', + apply).status, 'FAIL') + + def test_weighted_law_is_a_probability_measure_zero_one_and_absolute_continuity(self): + self.assertEqual(self.ev('(μ : Measure Ω) (W : Ω → ℝ) (hW : Integrable W μ) (hW0 : 0 ≤ᵐ[μ] W) (hz : 0 < ∫ x, W x ∂μ)', + 'IsProbabilityMeasure (weightedLaw μ W)').status, 'CORROBORATED') + self.assertEqual(self.ev('(μ : Measure Ω) (W : Ω → ℝ) (hW : Integrable W μ) (hW0 : 0 ≤ᵐ[μ] W)', + 'IsProbabilityMeasure (weightedLaw μ W)').status, 'FAIL') # ∫ W = 0 + self.assertEqual(self.ev('(μ : Measure Ω)', 'weightedLaw μ (fun _ : Ω => (0 : ℝ)) = 0').status, 'CORROBORATED') + self.assertEqual(self.ev('(μ : Measure Ω) [IsProbabilityMeasure μ]', 'weightedLaw μ (fun _ : Ω => (1 : ℝ)) = μ').status, + 'CORROBORATED') + self.assertEqual(self.ev('(μ : Measure Ω)', 'weightedLaw μ (fun _ : Ω => (1 : ℝ)) = μ').status, 'FAIL') + self.assertEqual(self.ev('(μ : Measure Ω) (W : Ω → ℝ)', 'weightedLaw μ W ≪ μ').status, 'CORROBORATED') + self.assertEqual(self.ev('(μ : Measure Ω) (W V : Ω → ℝ) (h : W =ᵐ[μ] V)', 'weightedLaw μ W = weightedLaw μ V').status, + 'CORROBORATED') + self.assertEqual(self.ev('(μ : Measure Ω) (W V : Ω → ℝ)', 'weightedLaw μ W = weightedLaw μ V').status, 'FAIL') + + def test_set_builder_events_and_subsets(self): + self.assertEqual(self.ev('(R : Ω → ℝ) (r ε : ℝ) (hr : 0 < r) (hε : 0 < ε)', + 'badJetEvent R r ε ⊆ {x | (ε / r) ^ 8 ≤ R x ^ 40}').status, 'CORROBORATED') + self.assertEqual(self.ev('(R : Ω → ℝ) (r ε : ℝ) (hr : 0 < r) (hε : 0 < ε)', + 'badJetEvent R r ε ⊆ {x | 1 ≤ R x}').status, 'FAIL') + tail = ('(μ : Measure Ω) [IsProbabilityMeasure μ] (R : Ω → ℝ) (r ε M : ℝ) (hr : 0 < r) (hε : 0 < ε) ' + '(hRi : Integrable (fun x => R x ^ 40) μ) (hMbound : (∫ x, R x ^ 40 ∂μ) ≤ M)') + self.assertEqual(self.ev(tail, '(μ (badJetEvent R r ε)).toReal ≤ (M / ε ^ 8) * r ^ 8').status, 'CORROBORATED') + # without the moment bound on M the tail bound is false (M = 0 under a nonempty event) + no_bound = ('(μ : Measure Ω) [IsProbabilityMeasure μ] (R : Ω → ℝ) (r ε M : ℝ) (hr : 0 < r) (hε : 0 < ε) ' + '(hRi : Integrable (fun x => R x ^ 40) μ)') + self.assertEqual(self.ev(no_bound, '(μ (badJetEvent R r ε)).toReal ≤ (M / ε ^ 8) * r ^ 8').status, 'FAIL') + + def test_structural_hypotheses_are_not_assumed_on_infinite_mass_measures(self): + # `(ENNReal.ofReal 0)⁻¹ • μ` has infinite mass wherever μ does not vanish: finiteness is decided false and + # integrability is not taken for granted (a8, 743/5729046258 N2) + self.assertEqual(self.ev('(μ : Measure Ω) [IsProbabilityMeasure μ]', + 'IsFiniteMeasure ((ENNReal.ofReal 0)⁻¹ • μ)').status, 'FAIL') + self.assertEqual(self.ev('(μ : Measure Ω) [IsProbabilityMeasure μ]', 'IsFiniteMeasure ((2 : ENNReal) • μ)').status, + 'CORROBORATED') + r = self.ev('(μ : Measure Ω) [IsProbabilityMeasure μ] (W : Ω → ℝ) (h : Integrable W ((ENNReal.ofReal 0)⁻¹ • μ))', + '0 ≤ ∫ x, W x ∂μ') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('infinite mass', r.detail) + + def test_quantifier_over_all_subsets_is_enumerated(self): + r = self.ev('(μ : Measure Ω)', '∀ A : Set Ω, MeasurableSet A → (μ A).toReal ≤ (μ Set.univ).toReal') + self.assertEqual(r.status, 'CORROBORATED') + self.assertEqual(self.ev('(μ : Measure Ω)', '∀ A : Set Ω, MeasurableSet A → (μ A).toReal < (μ Set.univ).toReal').status, 'FAIL') + + def test_structural_conclusions_and_real_indexed_families_stay_unsupported(self): + r = self.ev('(R : Ω → ℝ) (hR : Measurable R) (r ε : ℝ)', 'MeasurableSet (badJetEvent R r ε)') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('trivial on finite discrete models', r.detail) + r = self.ev('(μ : ℝ → Measure Ω) [∀ r, IsProbabilityMeasure (μ r)] (W : ℝ → Ω → ℝ) (M : ℝ)', '0 ≤ M') + self.assertEqual(r.status, 'UNSUPPORTED') + self.assertIn('μ : ℝ → Measure Ω', r.detail) + + def test_model_witness_is_exact_and_sampling_is_seeded(self): + a = self.ev('(μ : Measure Ω) (W : Ω → ℝ)', '0 ≤ ∫ x, W x ∂μ', seed=5) + b = self.ev('(μ : Measure Ω) (W : Ω → ℝ)', '0 ≤ ∫ x, W x ∂μ', seed=5) + self.assertEqual(a.status, 'FAIL') + self.assertEqual((a.detail, a.instances), (b.detail, b.instances)) + self.assertIn('W = [', a.detail) + self.assertFalse(any(isinstance(v, float) for v in a.values)) + + def test_mutation_contract_holds_on_finite_model_statements(self): + module = sf.parse_module(FM + '\ntheorem t ' + self.MARKOV + ' : (μ A).toReal ≤ (∫ x, Y x ∂μ) / a := by sorry\n') + report = sf.mutation_selftest(module) + self.assertTrue(report['control_passed']) + self.assertEqual(report['killed'], report['mutants']) + self.assertGreaterEqual(report['mutants'], 1) + self.assertTrue(report['harness_ok']) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_formal_compiled_inventory.py b/tests/test_formal_compiled_inventory.py index 91aa1d8c8..ce3b77beb 100644 --- a/tests/test_formal_compiled_inventory.py +++ b/tests/test_formal_compiled_inventory.py @@ -881,8 +881,8 @@ def run(args): transcript = run(['env','lean',str(audit)]) if not expected: report = gate.audit_inventory(transcript, targets, modules, bound=bound, codegen=gate.bound_codegen(manifest['codegen_inventory'], modules)) - self.assertEqual(report['declarations'],45) - self.assertEqual(len(report['public_theorems']),31) + self.assertEqual(report['declarations'],93) # 59 targets + 34 bound non-target constants + self.assertEqual(len(report['public_theorems']),59) self.assertEqual(report['axioms'],[]) else: with self.assertRaises(gate.InventoryRejected) as caught: diff --git a/tests/test_formal_gate.py b/tests/test_formal_gate.py index 8f18f8129..aa8acd866 100644 --- a/tests/test_formal_gate.py +++ b/tests/test_formal_gate.py @@ -529,7 +529,7 @@ def test_real_manifest_source_check(self): self.assertEqual(m["formalization_status"], "proved") self.assertEqual(m["alignment_status"], "PENDING_INDEPENDENT_REVIEW") self.assertIs(m["scientific_status_authority"], False) - self.assertEqual(len(m["targets"]), 31) + self.assertEqual(len(m["targets"]), 59) self.assertEqual(m["dependency_revisions"], {}) self.assertEqual((ROOT / "formal/ALIGNMENT.md").read_text(), gate.render_alignment(m)) diff --git a/tools/cbz/statement_fuzz.py b/tools/cbz/statement_fuzz.py new file mode 100644 index 000000000..cf53ddf6f --- /dev/null +++ b/tools/cbz/statement_fuzz.py @@ -0,0 +1,3086 @@ +#!/usr/bin/env python3 +"""CBZ-0 G12 — empirical statement check for core-Lean arithmetic skeletons (stdlib only). + +The owner's directive addendum of 2026-10-29 requires an empirical validation layer before a proof +obligation may be marked CLOSED. Kernel verification is not strengthened by sampling, so this harness +tests the *statements*, not the proofs: for every theorem of a formal package it parses the Lean +statement and the package's own definitions in a small interpreter for the core-Lean arithmetic subset +these skeletons use, evaluates the statement independently of Lean in exact arithmetic (Python +integers and fractions, never floats — Layer A3), enumerates finite quantifier domains exhaustively, +probes boundary values outside a hypothesis domain (information: tightness and vacuity, A6), and +reports PASS / FAIL / UNSUPPORTED per target. + +A FAIL is a misstatement or a transcription defect in the Lean text; it is never evidence about the +kernel. UNSUPPORTED is fail-closed: the construct is outside the interpreter (Mathlib structures, +measures and functions, transcendental functions, unbounded quantifiers inside a statement, notation +the subset does not define) and the target cannot count as fuzz-validated. + +Statements with binders before the colon — `theorem t (x y : ℝ) (hx : 0 < x) : …` — are *sampled*: the +numeric binders (ℕ ℤ ℚ ℝ) are drawn from exact pathological values (0, ±1, ±tiny, ±huge, squares and +non-squares, the boundary values the hypotheses name) and seeded random rationals, in declaration order +with every hypothesis checked as soon as its variables are assigned; the conclusion is evaluated exactly +at each instance that satisfies the hypotheses. The verdict is FAIL with the exact witness, or +CORROBORATED when no instance refutes it — admitted evidence of the statement, never PASS and never a +proof — or UNSUPPORTED when a binder is not a sampled numeric type or decidable hypothesis, or no +sample satisfies the hypotheses (possibly vacuous). + +Real arithmetic is exact: rationals as Fractions, and `Real.sqrt` of a rational as an element of the +multi-quadratic field ℚ(√d₁, …, √dₖ) (canonical form over squarefree radicands, so equality is decided +exactly; the sign of a nonzero element is decided by refining integer-square-root enclosures). Nested +radicals, `Real.exp`/`log`/`pi` and real exponents are UNSUPPORTED (an interval backend may admit them). + +Measure-theoretic statements — binders `(μ : Measure Ω)`, `(W : Ω → ℝ)`, `(A : Set Ω)` over a carrier +declared by `variable {Ω : Type*}`, instance hypotheses `[IsProbabilityMeasure μ]`, integrals `∫ x, f x ∂μ` +and `∫ x in A, …`, event masses `(μ A).toReal`, a.e. relations `0 ≤ᵐ[μ] W`, set-builders `{x | p x}`, +`⊆`, `≪`, `μ.withDensity`, `c • μ`, `ENNReal.ofReal`/`⁻¹`/`.toReal` — are sampled on *finite discrete +models*: Ω = Fin n (n ≤ 4) with the discrete σ-algebra, non-negative rational weights (normalised when the +measure is hypothesised to be a probability measure), functions as tables, sets as subsets. Every such +model is an instance of the Lean statement: integrals are finite sums, measurability and integrability are +automatic, a.e. relations hold off the null points, measure equality and `≪` are pointwise. A conclusion +that is only a structural predicate (`MeasurableSet …`) is UNSUPPORTED, since it is trivial there; a +real-indexed family `(μ : ℝ → Measure Ω)` is UNSUPPORTED. The mutation contract applies unchanged. + +Lean semantics implemented: Nat subtraction truncates at 0; Nat and Int division by zero is 0 and +x % 0 = x (totalized); Nat division floors; Int `/` and `%` are Euclidean (`Int.ediv`/`Int.emod`: +0 ≤ r < |b|), which is Lean 4 core's convention — not Python's floor division and not T-rounding; +field division and inverse are totalized (`x / 0 = 0`, `0⁻¹ = 0`); `Real.sqrt x = 0` for `x ≤ 0`; +`a ^ n` types its exponent on its own (`x ^ (1/2)` is `x ^ 0`, as in Lean), an `ℤ` exponent is `zpow`; +numerals default to Nat unless an ascription, a binder or a definition's result type makes the +arithmetic Int/Rat/Real, following the maximal-type rule of Lean's `binop%` elaborator, and an ascription +`(e : T)` elaborates `e` at `T` (`(n - 1 : ℝ)` is `↑n - 1`; `((n - 1 : ℕ) : ℝ)` casts a truncated Nat). + +Usage: + python3 tools/cbz/statement_fuzz.py --package formal [--json report.json] [--selftest] + [--seed 1] [--samples 64] [--admit-corroborated] +Exit 0 only when every registered target is PASS — or PASS/CORROBORATED with --admit-corroborated — +(and, with --selftest, every required mutant is killed and the harness control passes). +""" +from __future__ import annotations + +import argparse +import dataclasses +import hashlib +import json +import pathlib +import random +import re +import sys +from fractions import Fraction + +sys.setrecursionlimit(10000) + +# -------------------------------------------------------------------------------------------- +# Tokenizer +# -------------------------------------------------------------------------------------------- + +@dataclasses.dataclass +class Token: + kind: str # 'num', 'ident', 'op', 'punct' + value: str + line: int + col: int + + +_MULTI_OPS = ('<=', '>=', '!=', '->', ':=', '=>', '/\\', '\\/', '<->', '||', '&&', '..', '⁻¹') +_SINGLE = set('+-*/%^=<>()[],:|.{}!∀∃∧∨¬→↔≤≥≠∈∉λ√∫∂ᵐ•⊆≪∩∪ᶜ∅') +_IDENT_START = re.compile(r'[A-Za-z_α-ωΑ-Ωℕℤℚℝℂ«]') +_IDENT_CHAR = re.compile(r'[A-Za-z0-9_\'!?α-ωΑ-Ωℕℤℚℝℂ₀-₉»]') + + +def tokenize(text: str) -> list: + """Tokens with line/col; `--` line comments and (nested) `/- -/` block comments are dropped.""" + toks = [] + i, n = 0, len(text) + line, col = 1, 0 + def advance(k): + nonlocal i, line, col + for ch in text[i:i + k]: + if ch == '\n': + line += 1; col = 0 + else: + col += 1 + i += k + while i < n: + ch = text[i] + if text.startswith('--', i): + j = text.find('\n', i) + advance((j if j != -1 else n) - i) + continue + if text.startswith('/-', i): + depth, j = 1, i + 2 + while j < n and depth: + if text.startswith('/-', j): + depth += 1; j += 2 + elif text.startswith('-/', j): + depth -= 1; j += 2 + else: + j += 1 + advance(j - i) + continue + if ch.isspace(): + advance(1); continue + if ch == '"': + j = i + 1 + while j < n and text[j] != '"': + j += 2 if text[j] == '\\' else 1 + toks.append(Token('str', text[i:j + 1], line, col)); advance(j + 1 - i); continue + if ch.isdigit(): + j = i + while j < n and (text[j].isdigit() or text[j] == '_'): + j += 1 + # a scientific literal `1.5` (Lean `OfScientific`): exact decimal, kept as a Fraction downstream + if j + 1 < n and text[j] == '.' and text[j + 1].isdigit(): + j += 1 + while j < n and text[j].isdigit(): + j += 1 + toks.append(Token('num', text[i:j].replace('_', ''), line, col)); advance(j - i); continue + if _IDENT_START.match(ch): + j = i + 1 + while j < n and (_IDENT_CHAR.match(text[j]) or (text[j] == '.' and j + 1 < n and _IDENT_START.match(text[j + 1]))): + j += 1 + toks.append(Token('ident', text[i:j], line, col)); advance(j - i); continue + matched = False + for op in _MULTI_OPS: + if text.startswith(op, i): + toks.append(Token('op', op, line, col)); advance(len(op)); matched = True; break + if matched: + continue + if ch in _SINGLE: + toks.append(Token('op', ch, line, col)); advance(1); continue + if ch == '@': + advance(1); continue + # Anything else (Mathlib notation such as ←, ∑, ↦, ⟨⟩) is outside the subset: keep it as an + # 'other' token so the statement that contains it is reported UNSUPPORTED, never skipped. + toks.append(Token('other', ch, line, col)); advance(1) + return toks + + +# -------------------------------------------------------------------------------------------- +# AST +# -------------------------------------------------------------------------------------------- + +@dataclasses.dataclass +class Num: + value: object # int, or a Fraction for a scientific literal such as `1.5` + +@dataclasses.dataclass +class Var: + name: str + +@dataclasses.dataclass +class App: + fn: object + args: list + +@dataclasses.dataclass +class BinOp: + op: str + left: object + right: object + +@dataclasses.dataclass +class Neg: + expr: object + +@dataclasses.dataclass +class Not: + expr: object + +@dataclasses.dataclass +class Ascribe: + expr: object + type: str + +@dataclasses.dataclass +class ListLit: + items: list + +@dataclasses.dataclass +class Lambda: + params: list + body: object + +@dataclasses.dataclass +class Tuple: + items: list + +@dataclasses.dataclass +class Proj: + expr: object + index: int + +@dataclasses.dataclass +class IfThenElse: + cond: object + then: object + other: object + +@dataclasses.dataclass +class BoolNot: + expr: object + +@dataclasses.dataclass +class Forall: + var: str + type: str | None + domain: object | None # expression whose value is a list, when written `∀ x ∈ l, …` + body: object + +@dataclasses.dataclass +class Integral: + var: str + domain: object | None # `∫ x in A, body ∂μ` restricts to the set A + body: object + measure: object + +@dataclasses.dataclass +class SetBuilder: + var: str + body: object # `{x | body}` on the model's points + +@dataclasses.dataclass +class AERel: + op: str # `f ≤ᵐ[μ] g`: the relation holds at every point of nonzero mass + left: object + right: object + measure: object + + +_NORMALIZE = {'<=': '≤', '>=': '≥', '!=': '≠', '->': '→', '/\\': '∧', '\\/': '∨', '<->': '↔'} +_PREC = {'→': 25, '↔': 20, '∨': 30, '∧': 35, '||': 30, '&&': 35, '=': 50, '≠': 50, '<': 50, '>': 50, '≤': 50, '≥': 50, + '∈': 50, '∉': 50, '⊆': 50, '≪': 50, '+': 65, '-': 65, '∪': 65, '*': 70, '/': 70, '%': 70, '∩': 70, '•': 73, '^': 75} +_RIGHT = {'→', '↔', '∨', '∧', '||', '&&', '^', '•'} +_COMPARISONS = {'=', '≠', '<', '>', '≤', '≥', '∈', '∉', '⊆', '≪'} +_AE_OPS = {'=', '≠', '<', '>', '≤', '≥'} +_LOGIC = {'→', '↔', '∨', '∧'} + + +class Unsupported(Exception): + pass + + +class Parser: + def __init__(self, toks, start=0, end=None): + self.toks = toks + self.i = start + self.end = len(toks) if end is None else end + self.abs_depth = 0 + + def peek(self, k=0): + j = self.i + k + return self.toks[j] if j < self.end else None + + def at(self, value): + t = self.peek() + return t is not None and t.value == value + + def eat(self, value=None): + t = self.peek() + if t is None or (value is not None and t.value != value): + raise SyntaxError(f'expected {value!r}, got {t.value if t else "end"}') + self.i += 1 + return t + + def parse_expr(self, min_prec=0): + left = self.parse_unary() + while True: + t = self.peek() + if t is not None and t.kind == 'other': + raise Unsupported(f'notation {t.value!r}') + if t is None or t.kind != 'op': + break + op = _NORMALIZE.get(t.value, t.value) + if op not in _PREC or _PREC[op] < min_prec: + break + prec = _PREC[op] + self.i += 1 + if op in _AE_OPS and self.at('ᵐ'): + # Mathlib `f ≤ᵐ[μ] g` (`Filter.EventuallyLE` along `ae μ`) + self.eat('ᵐ') + self.eat('[') + measure = self.parse_expr(0) + self.eat(']') + right = self.parse_expr(prec + 1) + left = AERel(op, left, right, measure) + continue + right = self.parse_expr(prec if op in _RIGHT else prec + 1) + left = BinOp(op, left, right) + return left + + def parse_unary(self): + t = self.peek() + if t is None: + raise SyntaxError('unexpected end of expression') + if t.value == '¬': + self.i += 1 + return Not(self.parse_expr(40)) + if t.value == '!': + self.i += 1 + return BoolNot(self.parse_expr(80)) + if t.value == 'if': + self.i += 1 + cond = self.parse_expr(0) + self.eat('then') + then = self.parse_expr(0) + self.eat('else') + other = self.parse_expr(0) + return IfThenElse(cond, then, other) + if t.value == '-': + self.i += 1 + return Neg(self.parse_expr(75)) + if t.value == '√': + # Mathlib `prefix:100 "√" => Real.sqrt`: binds tighter than `^` (75), looser than application + self.i += 1 + return App(Var('Real.sqrt'), [self.parse_expr(100)]) + if t.value == '∫': + return self.parse_integral() + if t.value in ('∀', '∃'): + return self.parse_quantifier() + if t.value in ('fun', 'λ'): + return self.parse_lambda() + return self.parse_application() + + def parse_quantifier(self): + q = self.eat().value + if q == '∃': + raise Unsupported('existential quantifier') + var = self.eat().value + typ, domain = None, None + if self.at(':'): + self.eat(':') + parts = [] + while not self.at(','): + parts.append(self.eat().value) + typ = ' '.join(parts) + elif self.at('∈'): + self.eat('∈') + domain = self.parse_expr(51) + self.eat(',') + body = self.parse_expr(0) + return Forall(var, typ, domain, body) + + def parse_integral(self): + """`∫ x, f x ∂μ` and `∫ x in A, f x ∂μ` (the Bochner integral and the set integral); the binder may be + typed, `∫ (x : Ω), …`. The measure after `∂` is one application (`μ`, `(μ r)`, `μ.restrict A`).""" + self.eat('∫') + if self.at('('): + self.eat('(') + var = self.eat().value + if self.at(':'): + self.eat(':') + while not self.at(')'): + self.eat() + self.eat(')') + else: + var = self.eat().value + domain = None + if self.at('in'): + self.eat('in') + domain = self.parse_expr(51) + self.eat(',') + body = self.parse_expr(0) + self.eat('∂') + measure = self.parse_application() + return Integral(var, domain, body, measure) + + def parse_lambda(self): + self.eat() + params = [] + while not self.at('=>'): + t = self.eat() + if t.value == '(': + params.append(self.eat().value) + if self.at(':'): + self.eat(':') + while not self.at(')'): + self.eat() + self.eat(')') + else: + params.append(t.value) + if self.at(':'): + self.eat(':') + while not self.at('=>'): + self.eat() + self.eat('=>') + return Lambda(params, self.parse_expr(0)) + + def parse_application(self): + head = self.parse_atom() + args = [] + while True: + t = self.peek() + if t is None: + break + if t.kind == 'ident' and t.value in ('if', 'then', 'else', 'fun', 'λ', 'in'): + break + if t.kind in ('num', 'ident') or (t.kind == 'op' and t.value in ('(', '[')): + args.append(self.parse_atom()) + continue + # `f |x|`: an opening bar is an argument only outside any `|…|` and when, as in Lean's + # `atomic("|" noWs)`, no whitespace separates it from the next token + nxt = self.peek(1) + if (t.kind == 'op' and t.value == '|' and self.abs_depth == 0 and nxt is not None + and nxt.line == t.line and nxt.col == t.col + 1): + args.append(self.parse_atom()) + continue + break + if not args: + return head + if isinstance(head, App) and isinstance(head.fn, Var) and head.fn.name.startswith('.'): + return App(head.fn, head.args + args) # receiver.method arg1 arg2 … + return App(head, args) + + def parse_postfix(self, atom): + """Dot notation binds tighter than application: `p.1`, `xs.foldl`, `(e).filter`; so does `x⁻¹`.""" + while True: + t = self.peek() + if t is not None and t.kind == 'op' and t.value == '⁻¹': + self.i += 1 + atom = App(Var('Inv.inv'), [atom]) + continue + if t is not None and t.kind == 'op' and t.value == 'ᶜ': + self.i += 1 + atom = App(Var('.compl'), [atom]) + continue + if t is not None and t.kind == 'op' and t.value == '.' and self.peek(1) is not None: + nxt = self.peek(1) + if nxt.kind == 'num': + self.i += 2 + atom = Proj(atom, int(nxt.value)) + continue + if nxt.kind == 'ident': + self.i += 2 + atom = App(Var('.' + nxt.value), [atom]) + continue + return atom + + def parse_atom(self): + return self.parse_postfix(self._parse_atom_core()) + + def _parse_atom_core(self): + t = self.eat() + if t.kind == 'other': + raise Unsupported(f'notation {t.value!r}') + if t.kind == 'num': + return Num(Fraction(t.value) if '.' in t.value else int(t.value)) + if t.kind == 'ident': + if t.value in ('fun', 'λ'): + self.i -= 1 + return self.parse_lambda() + return Var(t.value) + if t.value == '∅': + return Var('∅') + if t.value == '{': + # set-builder `{x | p x}` / `{x : Ω | p x}` over the model's points; other brace terms are outside + nxt, nxt2 = self.peek(), self.peek(1) + if nxt is not None and nxt.kind == 'ident' and nxt2 is not None and nxt2.value in ('|', ':'): + var = self.eat().value + if self.at(':'): + self.eat(':') + while not self.at('|'): + self.eat() + self.eat('|') + self.abs_depth += 1 + body = self.parse_expr(0) + self.abs_depth -= 1 + self.eat('}') + return SetBuilder(var, body) + raise Unsupported('brace term that is not a set-builder') + if t.value == '|': + # Mathlib absolute value `|e|`; the inner expression stops at the closing bar because `|` is + # not an infix operator of the subset (`||x| - |y||` is not parsed: Lean needs parentheses too) + self.abs_depth += 1 + e = self.parse_expr(0) + self.eat('|') + self.abs_depth -= 1 + return App(Var('abs'), [e]) + if t.value == '(': + e = self.parse_expr(0) + if self.at(':'): + self.eat(':') + typ = self.eat().value + self.eat(')') + return Ascribe(e, typ) + if self.at(','): + items = [e] + while self.at(','): + self.eat(',') + items.append(self.parse_expr(0)) + self.eat(')') + return Tuple(items) + self.eat(')') + return e + if t.value == '[': + items = [] + while not self.at(']'): + items.append(self.parse_expr(0)) + if self.at(','): + self.eat(',') + self.eat(']') + return ListLit(items) + raise SyntaxError(f'unexpected token {t.value!r} at {t.line}:{t.col}') + + +# -------------------------------------------------------------------------------------------- +# Module structure +# -------------------------------------------------------------------------------------------- + +@dataclasses.dataclass +class Def: + name: str + params: list # [(name, type)] + result_type: str | None + body: object | None # expression, or None when pattern-matching + clauses: list # [(patterns, expr)] for pattern-matching defs + +@dataclasses.dataclass +class Binder: + """A binder before the colon of a theorem: a sampled numeric variable (`kind == 'var'`, `type` is the + numeric type name) or a hypothesis (`kind == 'hyp'`, `type` is the proposition's AST).""" + kind: str + name: str + type: object + text: str = '' + +@dataclasses.dataclass +class Theorem: + name: str + statement: object | None + error: str | None = None + text: str = '' + binders: list = dataclasses.field(default_factory=list) + +@dataclasses.dataclass +class Module: + namespace: str + defs: dict + theorems: list + point_types: set = dataclasses.field(default_factory=set) # `variable {Ω : Type*}`: finite-model carriers + + +_DECL_KEYWORDS = {'theorem', 'lemma', 'def', 'abbrev', 'example', 'instance', 'structure', 'inductive', + 'namespace', 'end', 'open', 'import', 'section', 'variable', 'universe', 'set_option', + 'noncomputable', 'private', 'protected', 'attribute', 'macro', 'syntax', 'notation', 'axiom'} + + +def _split_declarations(toks): + starts = [k for k, t in enumerate(toks) if t.col == 0 and ((t.kind == 'ident' and t.value in _DECL_KEYWORDS) + or t.value == '@')] + starts.append(len(toks)) + return [(starts[k], starts[k + 1]) for k in range(len(starts) - 1)] + + +def _find(toks, value, start, end): + depth = 0 + for k in range(start, end): + v = toks[k].value + if v in ('(', '[', '{'): + depth += 1 + elif v in (')', ']', '}'): + depth -= 1 + elif depth == 0 and v == value: + return k + return -1 + + +def _matching(toks, k, end): + """Index of the bracket closing the one at ``k`` (or -1).""" + depth = 0 + for j in range(k, end): + v = toks[j].value + if v in ('(', '[', '{'): + depth += 1 + elif v in (')', ']', '}'): + depth -= 1 + if depth == 0: + return j + return -1 + + +def _parse_binders(toks, start, end): + """(name : T) (m : T) ... -> [(name, T)], position after binders.""" + params, k = [], start + while k < end and toks[k].value == '(': + close = k + while close < end and toks[close].value != ')': + close += 1 + if close >= end: + break + names = [] + j = k + 1 + while toks[j].value != ':': + names.append(toks[j].value); j += 1 + typ = ' '.join(t.value for t in toks[j + 1:close]) + params.extend((nm, typ) for nm in names) + k = close + 1 + return params, k + + +def parse_module(source: str) -> Module: + toks = tokenize(source) + namespace, defs, theorems = '', {}, [] + point_types = set() + for start, end in _split_declarations(toks): + kw = toks[start].value + k = start + while k < end and toks[k].value in ('noncomputable', 'private', 'protected'): + k += 1 + kw = toks[k].value if k < end else kw + if kw == 'namespace': + namespace = toks[k + 1].value + continue + if kw == 'variable': + # `variable {Ω : Type*} [MeasurableSpace Ω]`: a type variable becomes a finite-model carrier + j = k + 1 + while j < end and toks[j].value in ('(', '{', '['): + close = _matching(toks, j, end) + if close == -1: + break + colon = _find(toks, ':', j + 1, close) + if toks[j].value in ('(', '{') and colon != -1 and toks[colon + 1].value == 'Type': + point_types.update(x.value for x in toks[j + 1:colon] if x.kind == 'ident') + j = close + 1 + continue + if kw in ('def', 'abbrev'): + name = toks[k + 1].value + params, j = _parse_binders(toks, k + 2, end) + result_type = None + assign = _find(toks, ':=', j, end) + bar = _find(toks, '|', j, end) + if toks[j].value == ':': + type_end = assign if assign != -1 else (bar if bar != -1 else end) + result_type = ' '.join(t.value for t in toks[j + 1:type_end]) + if assign != -1 and (bar == -1 or assign < bar): + try: + body = Parser(toks, assign + 1, end).parse_expr(0) + except (SyntaxError, Unsupported): + body = None + defs[name] = Def(name, params, result_type, body, []) + elif bar != -1: + clauses = [] + bars = [m for m in range(j, end) if toks[m].value == '|' and toks[m].col <= 2] + bars.append(end) + try: + for b0, b1 in zip(bars, bars[1:]): + arrow = _find(toks, '=>', b0, b1) + if arrow == -1: + raise Unsupported('clause without =>') + pats = _split_patterns(toks[b0 + 1:arrow]) + try: + expr = Parser(toks, arrow + 1, b1).parse_expr(0) + except (SyntaxError, Unsupported): + expr = None + clauses.append((pats, expr)) + except (Unsupported, SyntaxError, IndexError): + clauses = [] + defs[name] = Def(name, params, result_type, None, clauses) + continue + if kw in ('theorem', 'lemma'): + name = toks[k + 1].value + colon = _find(toks, ':', k + 2, end) + assign = _find(toks, ':=', k + 2, end) + full = f'{namespace}.{name}' if namespace else name + if colon == -1 or assign == -1 or assign < colon: + theorems.append(Theorem(full, None, 'malformed theorem')) + continue + binder_text = ' '.join(t.value for t in toks[k + 2:colon]) + text = ' '.join(t.value for t in toks[colon + 1:assign]) + if binder_text: + text = f'{binder_text} : {text}' + binders, binder_error = _parse_theorem_binders(toks, k + 2, colon, defs, point_types) + if binder_error: + theorems.append(Theorem(full, None, binder_error, text, binders)) + continue + try: + parser = Parser(toks, colon + 1, assign) + stmt = parser.parse_expr(0) + if parser.i != assign: + raise SyntaxError(f'trailing tokens from {toks[parser.i].value!r}') + theorems.append(Theorem(full, _desugar(stmt), None, text, binders)) + except Unsupported as e: + theorems.append(Theorem(full, None, f'unsupported syntax: {e}', text, binders)) + except SyntaxError as e: + theorems.append(Theorem(full, None, f'unparsed statement: {e}', text, binders)) + continue + return Module(namespace, defs, theorems, point_types) + + +def _split_patterns(toks): + """Top-level comma-separated patterns, each either a literal, a variable or `var + k`.""" + pats, cur, depth = [], [], 0 + for t in toks + [Token('op', ',', 0, 0)]: + if t.value == ',' and depth == 0: + pats.append(_pattern(cur)); cur = [] + continue + if t.value in ('(', '['): + depth += 1 + elif t.value in (')', ']'): + depth -= 1 + cur.append(t) + return pats + + +def _pattern(toks): + toks = [t for t in toks if t.value not in ('(', ')')] + if len(toks) == 1 and toks[0].kind == 'num': + return ('lit', int(toks[0].value)) + if len(toks) == 1: + return ('var', toks[0].value) + if len(toks) == 3 and toks[1].value == '+' and toks[2].kind == 'num': + return ('succ', toks[0].value, int(toks[2].value)) + raise Unsupported('pattern ' + ' '.join(t.value for t in toks)) + + +# -------------------------------------------------------------------------------------------- +# Binders before the colon: sampled numeric variables and decidable hypotheses +# -------------------------------------------------------------------------------------------- + +_SAMPLED_TYPE_TOKENS = {'Nat': 'Nat', 'ℕ': 'Nat', 'Int': 'Int', 'ℤ': 'Int', 'Rat': 'Rat', 'ℚ': 'Rat', + 'Real': 'Real', 'ℝ': 'Real'} + +# Predicates on finite discrete models. Structural ones hold automatically there (discrete σ-algebra, finite +# measure, finite sums): as hypotheses they filter nothing; as a whole conclusion they are reported UNSUPPORTED. +_STRUCTURAL_PREDICATES = {'Measurable', 'MeasurableSet', 'Integrable', 'MemLp', 'AEMeasurable', 'AEStronglyMeasurable', + 'StronglyMeasurable', 'Memℒp'} +_MEASURE_PREDICATES = {'IsProbabilityMeasure', 'IsFiniteMeasure'} | _STRUCTURAL_PREDICATES # the first two are decided +_IGNORED_INSTANCES = {'MeasurableSpace', 'MeasurableSingletonClass', 'TopologicalSpace', 'BorelSpace', 'Nonempty', + 'DecidableEq', 'Fintype', 'Countable'} + +_BUILTIN_NAMES = {'true', 'false', 'True', 'False', 'abs', 'min', 'max', 'Real.sqrt', 'Inv.inv', 'List.range', + 'List.foldl', 'List.filter', 'List.sum', 'List.length', 'List.map', 'Nat.choose', 'Nat.factorial', + 'Nat.succ', 'Nat.pred', 'Nat.min', 'Nat.max', 'Nat.add', 'Nat.mul', 'Nat.sub', 'Int.natAbs', + 'Int.toNat', 'Int.ofNat', 'Set.Icc', 'Set.Ico', 'Set.Ioc', 'Set.Ioo', 'Set.Ici', 'Set.Iic', + 'Set.Ioi', 'Set.Iio', 'Set.univ', '∅', 'ENNReal.ofReal', 'ENNReal.toReal'} | _MEASURE_PREDICATES + +_MODEL_KINDS = ('Measure', 'Func', 'Set') # binder kinds sampled as finite discrete models + + +def _kind_of_type(t: str, point_types) -> str | None: + """The interpreter's kind for a Lean type written as a string: a numeric type ('Nat', 'Int', 'Rat', 'Real'), + 'ENNReal', 'Bool', 'Point' (a finite-model carrier Ω), 'Measure' (`Measure Ω`), 'Set' (`Set Ω`), 'Func' + (`Ω → ℝ`, a table on the carrier), or None when the type is outside the interpreter (`ℝ → Measure Ω`, + `Fin n → ℝ`, `Ω → Ω`, structures).""" + t = t.strip() + parts = [x.strip() for x in t.split('→')] + if len(parts) == 2 and parts[0] in point_types: + return 'Func' if parts[1] in _SAMPLED_TYPE_TOKENS or parts[1] in ('ENNReal', 'ℝ≥0∞') else None + if len(parts) >= 2: + return None + if t in _SAMPLED_TYPE_TOKENS: + return _SAMPLED_TYPE_TOKENS[t] + if t in ('ENNReal', 'ℝ≥0∞'): + return 'ENNReal' + if t == 'Bool': + return 'Bool' + if t in point_types: + return 'Point' + words = t.split() + if len(words) == 2 and words[0] == 'Measure' and words[1] in point_types: + return 'Measure' + if len(words) == 2 and words[0] == 'Set' and words[1] in point_types: + return 'Set' + return None + + +def _parse_theorem_binders(toks, start, end, defs, point_types=frozenset()): + """Binder groups between the theorem name and its colon → ([Binder], error or None). + + `(x y : ℝ)` / `{x : ℕ}` with a sampled numeric type declare variables; `(h : p)` whose type parses as a + proposition over names declared so far (variables, the module's definitions, the interpreter's + builtins) is a hypothesis; anything else — an instance binder `[Fact p]`, a function or structure type + `(f : Ω → ℝ)`, `(μ : Measure Ω)`, a predicate the interpreter does not define — makes the theorem + UNSUPPORTED, fail-closed, naming the binder.""" + binders, declared = [], set() + point_types = set(point_types) + k = start + while k < end: + t = toks[k] + if t.value == '[': + close = _matching(toks, k, end) + txt = ' '.join(x.value for x in toks[k:close + 1 if close != -1 else end]) + if close == -1: + return binders, 'unbalanced binder brackets' + # `[IsProbabilityMeasure μ]` is a hypothesis on a declared measure; `[MeasurableSpace Ω]` is structure + inner = toks[k + 1:close] + if inner and inner[0].kind == 'ident' and inner[0].value in _IGNORED_INSTANCES: + k = close + 1 + continue + if inner and inner[0].kind == 'ident' and inner[0].value in _MEASURE_PREDICATES: + try: + parser = Parser(toks, k + 1, close) + node = parser.parse_expr(0) + ok = parser.i == close and isinstance(node, App) and all( + isinstance(a, Var) and a.name in declared for a in node.args) + except (SyntaxError, Unsupported): + ok = False + if ok: + binders.append(Binder('hyp', '_inst', node, txt)) + k = close + 1 + continue + return binders, f'instance binder {txt} cannot be sampled' + if t.value not in ('(', '{'): + return binders, f'binder {t.value!r} without a type is outside the interpreter' + close = _matching(toks, k, end) + if close == -1: + return binders, 'unbalanced binder brackets' + txt = ' '.join(x.value for x in toks[k:close + 1]) + colon = _find(toks, ':', k + 1, close) + if colon == -1: + return binders, f'binder {txt} without a type is outside the interpreter' + names = [x.value for x in toks[k + 1:colon]] + if not names or any(x.kind != 'ident' for x in toks[k + 1:colon]): + return binders, f'binder pattern {txt} is outside the interpreter' + type_toks = toks[colon + 1:close] + if type_toks and type_toks[0].value == 'Type': + point_types.update(names) # `{Ω : Type*}` declared on the theorem itself + k = close + 1 + continue + kind = _kind_of_type(' '.join(x.value for x in type_toks), point_types) + if kind in _SAMPLED_TYPE_TOKENS.values() or kind in _MODEL_KINDS: + for nm in names: + binders.append(Binder('var', nm, kind, txt)) + declared.add(nm) + k = close + 1 + continue + try: + parser = Parser(toks, colon + 1, close) + node = parser.parse_expr(0) + if parser.i != close: + raise SyntaxError('trailing tokens in a binder type') + except (SyntaxError, Unsupported): + node = None + if node is not None and _is_prop_shape(node): + known = declared | set(defs) | _BUILTIN_NAMES | _TRANSCENDENTAL | point_types + unknown = sorted(v for v in _free_vars(node) if v not in known and v.split('.')[0] not in known) + if not unknown: + node = _desugar(node) + for nm in names: + binders.append(Binder('hyp', nm, node, txt)) + k = close + 1 + continue + if any(u in _SAMPLED_TYPE_TOKENS for u in unknown): + return binders, f'binder {txt} is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis' + return binders, f'hypothesis {txt} mentions undeclared names {unknown}' + return binders, f'binder {txt} is neither a sampled numeric type (ℕ ℤ ℚ ℝ) nor a decidable hypothesis' + return binders, None + + +def _is_prop_shape(node) -> bool: + """A syntactic proposition: comparisons, membership, a.e. relations and the model predicates, closed + under ¬ ∧ ∨ → ↔ and ∀.""" + if isinstance(node, BinOp): + if node.op in _COMPARISONS: + return True + if node.op in _LOGIC: + return _is_prop_shape(node.left) and _is_prop_shape(node.right) + return False + if isinstance(node, AERel): + return True + if isinstance(node, App): + return isinstance(node.fn, Var) and node.fn.name in _MEASURE_PREDICATES + if isinstance(node, Not): + return _is_prop_shape(node.expr) + if isinstance(node, Forall): + return _is_prop_shape(node.body) + return isinstance(node, Var) and node.name in ('True', 'False') + + +def _free_vars(node, bound=frozenset()) -> set: + if isinstance(node, Var): + return set() if node.name in bound or node.name.startswith('.') else {node.name} + if isinstance(node, Forall): + inner = _free_vars(node.body, bound | {node.var}) + return inner | (_free_vars(node.domain, bound) if node.domain is not None else set()) + if isinstance(node, Lambda): + return _free_vars(node.body, bound | set(node.params)) + if isinstance(node, Integral): + out = _free_vars(node.body, bound | {node.var}) | _free_vars(node.measure, bound) + return out | (_free_vars(node.domain, bound) if node.domain is not None else set()) + if isinstance(node, SetBuilder): + return _free_vars(node.body, bound | {node.var}) + out = set() + for child in _children(node): + out |= _free_vars(child, bound) + return out + + +def _children(node): + if isinstance(node, (Num, Var)): + return [] + if isinstance(node, App): + return [node.fn] + list(node.args) + if isinstance(node, BinOp): + return [node.left, node.right] + if isinstance(node, (Neg, Not, BoolNot, Ascribe)): + return [node.expr] + if isinstance(node, (ListLit, Tuple)): + return list(node.items) + if isinstance(node, Proj): + return [node.expr] + if isinstance(node, IfThenElse): + return [node.cond, node.then, node.other] + if isinstance(node, Lambda): + return [node.body] + if isinstance(node, Forall): + return ([node.domain] if node.domain is not None else []) + [node.body] + if isinstance(node, Integral): + return ([node.domain] if node.domain is not None else []) + [node.body, node.measure] + if isinstance(node, SetBuilder): + return [node.body] + if isinstance(node, AERel): + return [node.left, node.right, node.measure] + return [] + + +_SET_INTERVALS = {'Set.Icc': ('≤', '≤'), 'Set.Ico': ('≤', '<'), 'Set.Ioc': ('<', '≤'), 'Set.Ioo': ('<', '<'), + 'Set.Ici': ('≤', None), 'Set.Ioi': ('<', None), 'Set.Iic': (None, '≤'), 'Set.Iio': (None, '<')} + + +def _desugar(node): + """Rewrite Mathlib interval membership into comparisons: `x ∈ Set.Icc a b` ↦ `a ≤ x ∧ x ≤ b`, etc. + Everything else is rebuilt unchanged.""" + if isinstance(node, BinOp) and node.op in ('∈', '∉') and isinstance(node.right, App) \ + and isinstance(node.right.fn, Var) and node.right.fn.name in _SET_INTERVALS: + lo_op, hi_op = _SET_INTERVALS[node.right.fn.name] + args = node.right.args + x = _desugar(node.left) + parts = [] + if lo_op is not None and args: + parts.append(BinOp(lo_op, _desugar(args[0]), x)) + if hi_op is not None: + bound = args[-1] if (lo_op is None and args) else (args[1] if len(args) > 1 else None) + if bound is None: + return node + parts.append(BinOp(hi_op, x, _desugar(bound))) + if not parts: + return node + out = parts[0] + for p in parts[1:]: + out = BinOp('∧', out, p) + return Not(out) if node.op == '∉' else out + if isinstance(node, App): + return App(_desugar(node.fn), [_desugar(a) for a in node.args]) + if isinstance(node, BinOp): + return BinOp(node.op, _desugar(node.left), _desugar(node.right)) + if isinstance(node, Neg): + return Neg(_desugar(node.expr)) + if isinstance(node, Not): + return Not(_desugar(node.expr)) + if isinstance(node, BoolNot): + return BoolNot(_desugar(node.expr)) + if isinstance(node, Ascribe): + return Ascribe(_desugar(node.expr), node.type) + if isinstance(node, ListLit): + return ListLit([_desugar(x) for x in node.items]) + if isinstance(node, Tuple): + return Tuple([_desugar(x) for x in node.items]) + if isinstance(node, Proj): + return Proj(_desugar(node.expr), node.index) + if isinstance(node, IfThenElse): + return IfThenElse(_desugar(node.cond), _desugar(node.then), _desugar(node.other)) + if isinstance(node, Lambda): + return Lambda(node.params, _desugar(node.body)) + if isinstance(node, Forall): + return Forall(node.var, node.type, None if node.domain is None else _desugar(node.domain), _desugar(node.body)) + if isinstance(node, Integral): + return Integral(node.var, None if node.domain is None else _desugar(node.domain), _desugar(node.body), + _desugar(node.measure)) + if isinstance(node, SetBuilder): + return SetBuilder(node.var, _desugar(node.body)) + if isinstance(node, AERel): + return AERel(node.op, _desugar(node.left), _desugar(node.right), _desugar(node.measure)) + return node + + +# -------------------------------------------------------------------------------------------- +# Evaluation +# -------------------------------------------------------------------------------------------- + +_LIST_METHODS = {'foldl', 'filter', 'map', 'sum', 'length', 'withDensity', 'restrict', 'toReal', 'compl'} +_INT_TYPES = {'Int', 'ℤ'} +_NAT_TYPES = {'Nat', 'ℕ'} +_RAT_TYPES = {'Rat', 'ℚ'} +_REAL_TYPES = {'Real', 'ℝ'} +_FIELD_TYPES = {'Rat', 'Real'} # numeric types with exact (totalized) division +_TRANSCENDENTAL = {'Real.exp', 'Real.log', 'Real.pi', 'Real.sin', 'Real.cos', 'Real.tan', 'Real.arctan', + 'Real.sinh', 'Real.cosh', 'Real.rpow', 'Real.logb', 'π'} + +# Resource caps (Layer A: an exact evaluation that cannot finish is reported, never approximated) +_MAX_RESULT_BITS = 2_000_000 +_MAX_LOOP = 200_000 # List.range +_MAX_PRODUCT_LOOP = 5_000 # Nat.factorial, Nat.choose (products of thousands of big integers) + + +class Infeasible(Unsupported): + """An exact evaluation that would exceed the resource caps (an astronomically large power, factorial or + range). A sampled instance that is infeasible is skipped and counted; a closed statement is UNSUPPORTED.""" + + +class Closure: + def __init__(self, params, body, env): + self.params, self.body, self.env = params, body, env + + +# -------------------------------------------------------------------------------------------- +# Finite discrete models: ENNReal values, measures as weight vectors, functions as tables, sets as subsets +# -------------------------------------------------------------------------------------------- +# Ω = Fin n with the discrete σ-algebra. Every set is measurable, every function measurable, every function +# integrable against a finite measure, so the structural hypotheses of a Mathlib statement hold and the +# numeric content is a finite sum. An instance refuted here is refuted in Lean's reading of the statement. + +@dataclasses.dataclass(frozen=True) +class ENN: + """An extended non-negative real: a non-negative Fraction, or ∞ (`value is None`). Mathlib's conventions: + `0⁻¹ = ∞`, `∞⁻¹ = 0`, `∞ * 0 = 0`, truncated subtraction, `ENNReal.toReal ∞ = 0`.""" + value: object = Fraction(0) + + @property + def inf(self): + return self.value is None + + def __repr__(self): + return '∞' if self.inf else _fmt(self.value) + + def __add__(self, other): + other = _enn(other) + return ENN(None) if self.inf or other.inf else ENN(self.value + other.value) + + __radd__ = __add__ + + def __mul__(self, other): + other = _enn(other) + if (self.inf and other.value == 0) or (other.inf and self.value == 0): + return ENN(Fraction(0)) + return ENN(None) if self.inf or other.inf else ENN(self.value * other.value) + + __rmul__ = __mul__ + + def __sub__(self, other): + other = _enn(other) + if other.inf: + return ENN(Fraction(0)) + if self.inf: + return ENN(None) + return ENN(max(self.value - other.value, Fraction(0))) + + def inverse(self): + if self.inf: + return ENN(Fraction(0)) + return ENN(None) if self.value == 0 else ENN(1 / self.value) + + def __truediv__(self, other): + return self * _enn(other).inverse() + + def to_real(self): + return Fraction(0) if self.inf else self.value + + def _key(self): + return (1, Fraction(0)) if self.inf else (0, self.value) + + def __lt__(self, other): + return self._key() < _enn(other)._key() + + def __le__(self, other): + return self._key() <= _enn(other)._key() + + def __gt__(self, other): + return self._key() > _enn(other)._key() + + def __ge__(self, other): + return self._key() >= _enn(other)._key() + + +def _enn(x): + if isinstance(x, ENN): + return x + if isinstance(x, bool) or isinstance(x, (list, tuple, frozenset)): + raise Unsupported('ENNReal arithmetic on a non-numeric value') + x = _exact(x) + if isinstance(x, Alg): + if x.sign() < 0: + raise Unsupported('a negative value where an ENNReal is expected') + raise Unsupported('an irrational ENNReal value is outside the finite-model backend') + if x < 0: + raise Unsupported('a negative value where an ENNReal is expected') + return ENN(Fraction(x)) + + +@dataclasses.dataclass(frozen=True) +class Meas: + """A measure on Fin n: one ENNReal weight per point.""" + weights: tuple + + def mass(self, points=None): + total = ENN(Fraction(0)) + for i, w in enumerate(self.weights): + if points is None or i in points: + total = total + w + return total + + def __repr__(self): + return '[' + ', '.join(repr(w) for w in self.weights) + ']' + + +@dataclasses.dataclass(frozen=True) +class Func: + """A function on Fin n as a table; `codomain` is the interpreter type of its values.""" + table: tuple + codomain: str = 'Real' + + def __repr__(self): + return '[' + ', '.join(_fmt(v) if not isinstance(v, ENN) else repr(v) for v in self.table) + ']' + + +def _fmt_set(points, n=None) -> str: + return '{' + ', '.join(str(i) for i in sorted(points)) + '}' + + +def _fmt_value(v) -> str: + if isinstance(v, frozenset): + return _fmt_set(v) + if isinstance(v, (Meas, Func, ENN)): + return repr(v) + return _fmt(v) + + +_BUILTIN_BINARY = { + 'min': min, 'max': max, 'Nat.min': min, 'Nat.max': max, + 'Nat.add': lambda a, b: a + b, 'Nat.mul': lambda a, b: a * b, + 'Nat.sub': lambda a, b: a - b if a >= b else 0, +} + + +class Bound: + """A bound variable's value with its numeric type ('Nat', 'Int', 'Rat' or 'Bool').""" + __slots__ = ('value', 'type') + + def __init__(self, value, type_): + self.value, self.type = value, type_ + + +class Evaluator: + def __init__(self, module: Module): + self.module = module + self.values_seen = [] + self.instances = 0 + self.vacuous = False + self.failures = [] + self.probes = [] + self.model_n = None # the carrier size of the current finite model, when one is in force + + def points(self): + if self.model_n is None: + raise Unsupported('a measure, set or function value without a finite model in force') + return range(self.model_n) + + # ---- typing: the maximal numeric type among the leaves of an arithmetic tree + def arith_type(self, node, env) -> str: + if isinstance(node, Ascribe): + if node.type in _INT_TYPES: + return 'Int' + if node.type in _NAT_TYPES: + return 'Nat' + if node.type in _RAT_TYPES: + return 'Rat' + if node.type in _REAL_TYPES: + return 'Real' + raise Unsupported(f'ascription to {node.type}') + if isinstance(node, Num): + # a scientific literal (`1.5`) takes the field type of its context; alone, Lean would default it to + # Float, which the interpreter refuses (see num) + return 'Nat' if isinstance(node.value, int) else 'Sci' + if isinstance(node, Var): + if node.name in env: + v = env[node.name] + return v.type if isinstance(v, Bound) else 'Nat' + if node.name in ('Set.univ', '∅'): + return 'Set' + d = self.module.defs.get(node.name) + if d is not None and d.result_type: + return self._type_name(d.result_type) + return 'Nat' + if isinstance(node, (Integral,)): + return 'Real' + if isinstance(node, SetBuilder): + return 'Set' + if isinstance(node, AERel): + return 'Prop' + if isinstance(node, (BinOp,)): + if node.op in _COMPARISONS or node.op in _LOGIC: + return 'Prop' + if node.op == '^': + return self.arith_type(node.left, env) # the exponent is typed on its own (Lean `rightact%`) + if node.op == '•': + return self.arith_type(node.right, env) + if node.op in ('∩', '∪'): + return 'Set' + return _max_type(self.arith_type(node.left, env), self.arith_type(node.right, env)) + if isinstance(node, Neg): + return 'Int' if self.arith_type(node.expr, env) == 'Nat' else self.arith_type(node.expr, env) + if isinstance(node, (Proj, Tuple, ListLit, BoolNot)): + return 'Nat' + if isinstance(node, IfThenElse): + return _max_type(self.arith_type(node.then, env), self.arith_type(node.other, env)) + if isinstance(node, App): + fn = node.fn + if isinstance(fn, Var): + if fn.name in env and isinstance(env[fn.name], Bound): + b = env[fn.name] + if b.type == 'Measure': + return 'ENNReal' # `μ A` + if b.type == 'Func': + return b.value.codomain if isinstance(b.value, Func) else 'Real' + d = self.module.defs.get(fn.name) + if d is not None and d.result_type: + rt = self._type_name(d.result_type) + if rt == 'Measure' and len(node.args) == len(d.params) + 1: + return 'ENNReal' # a defined measure applied to a set + return rt + if fn.name == 'Real.sqrt': + return 'Real' + if fn.name in ('.toReal', 'ENNReal.toReal'): + return 'Real' + if fn.name in ('ENNReal.ofReal',): + return 'ENNReal' + if fn.name in ('.withDensity', '.restrict'): + return 'Measure' + if fn.name in ('.compl',): + return 'Set' + if fn.name in _MEASURE_PREDICATES: + return 'Prop' + if fn.name in ('abs', 'min', 'max', 'Inv.inv') and node.args: + out = 'Nat' + for a in node.args: + out = _max_type(out, self.arith_type(a, env)) + return out + if fn.name in ('Int.natAbs', 'Int.toNat', 'Nat.choose', 'Nat.factorial', 'Nat.succ', 'Nat.pred', + 'List.length', 'List.sum', 'Nat.min', 'Nat.max', 'Nat.sqrt'): + return 'Nat' + if fn.name in ('Int.ofNat', 'Int.negSucc'): + return 'Int' + return 'Nat' + return 'Nat' + + def _type_name(self, t: str) -> str: + kind = _kind_of_type(t, self.module.point_types) + if kind is not None: + return kind + last = t.split('→')[-1].strip() + if last in _INT_TYPES: + return 'Int' + if last in _RAT_TYPES: + return 'Rat' + if last in _REAL_TYPES: + return 'Real' + if last in _NAT_TYPES: + return 'Nat' + if last == 'Bool': + return 'Bool' + if last.startswith('List') or '×' in last: + return 'Nat' # containers: element arithmetic defaults to Nat + kind = _kind_of_type(last, self.module.point_types) + if kind is not None: + return kind + raise Unsupported(f'result type {t}') + + # ---- numeric evaluation at a given type + def num(self, node, env, typ): + if isinstance(node, Num): + if typ in _FIELD_TYPES: + return self._rec(Fraction(node.value)) + if typ == 'ENNReal': + return ENN(Fraction(node.value)) + if typ == 'Measure': + if node.value == 0: + return Meas(tuple(ENN(Fraction(0)) for _ in self.points())) + raise Unsupported('a nonzero numeral where a measure is expected') + if not isinstance(node.value, int): + raise Unsupported('scientific literal outside a rational or real context (Lean defaults it to Float)') + return self._rec(node.value) + if isinstance(node, Integral): + return self._rec(self.integral(node, env)) + if isinstance(node, SetBuilder): + return frozenset(i for i in self.points() if self.prop(node.body, {**env, node.var: Bound(i, 'Point')})) + if isinstance(node, Lambda) and typ == 'Func': + return self.materialize(Closure(node.params, node.body, env)) + if isinstance(node, Ascribe): + # `(e : T)` elaborates e at T (Lean pushes the expected type to the leaves: `(n - 1 : ℝ)` is real + # subtraction of ↑n, `((n - 1 : ℕ) : ℝ)` casts a truncated Nat); the value is then used at typ + inner = self._type_name(node.type) + return self._rec(_coerce(self.num(node.expr, env, inner), inner, typ)) + if isinstance(node, Var): + if node.name in ('true', 'false'): + return node.name == 'true' + if node.name == 'Set.univ': + return frozenset(self.points()) + if node.name == '∅': + return frozenset() + if node.name in env: + v = env[node.name] + return self._rec(v.value if isinstance(v, Bound) else v) + if '.' in node.name and not node.name.startswith('.'): + recv, method = node.name.rsplit('.', 1) + if (recv in env or recv in self.module.defs) and method in _LIST_METHODS: + return self._rec(self.apply(App(Var('.' + method), [Var(recv)]), env, typ)) + d = self.module.defs.get(node.name) + if d is not None: + if d.params or d.clauses: + raise Unsupported(f'definition {node.name} used without arguments') + if d.body is None: + raise Unsupported(f'definition {node.name} has an unparsed body') + dtyp = self._type_name(d.result_type) if d.result_type else typ + return self._rec(self.num(d.body, {}, dtyp)) + raise Unsupported(f'unknown name {node.name}') + if isinstance(node, Neg): + if typ == 'Nat': + raise Unsupported('negation at type Nat') + return self._rec(-self.num(node.expr, env, typ)) + if isinstance(node, BinOp): + if node.op == '^': + return self._rec(self._power(node, env, typ)) + if node.op == '•': + c = self.num(node.left, env, 'ENNReal') + m = self.num(node.right, env, 'Measure') + if not isinstance(m, Meas): + raise Unsupported('scalar action on a non-measure') + return Meas(tuple(_enn(c) * w for w in m.weights)) + if node.op in ('∩', '∪'): + a, b = self.num(node.left, env, 'Set'), self.num(node.right, env, 'Set') + if not isinstance(a, frozenset) or not isinstance(b, frozenset): + raise Unsupported('set operation on non-sets') + return a & b if node.op == '∩' else a | b + a = self.num(node.left, env, typ) + b = self.num(node.right, env, typ) + return self._rec(self._arith(node.op, a, b, typ)) + if isinstance(node, App): + return self._rec(self.apply(node, env, typ)) + if isinstance(node, ListLit): + return [self.num(x, env, typ) for x in node.items] + if isinstance(node, Tuple): + return tuple(self.num(x, env, typ) for x in node.items) + if isinstance(node, Proj): + v = self.num(node.expr, env, typ) + if not isinstance(v, tuple) or node.index < 1 or node.index > len(v): + raise Unsupported('projection of a non-pair') + return self._rec(v[node.index - 1]) + if isinstance(node, IfThenElse): + return self.num(node.then if self.truth(node.cond, env) else node.other, env, typ) + if isinstance(node, BoolNot): + return not self.truth(node.expr, env) + raise Unsupported(f'expression {type(node).__name__}') + + def truth(self, node, env) -> bool: + """A Bool-valued expression (`true`, `!`, `&&`, `||`, a Bool def) or a decidable proposition.""" + if isinstance(node, Var) and node.name in ('true', 'false'): + return node.name == 'true' + if isinstance(node, BoolNot): + return not self.truth(node.expr, env) + if isinstance(node, BinOp) and node.op in ('&&', '||'): + a = self.truth(node.left, env) + return (a and self.truth(node.right, env)) if node.op == '&&' else (a or self.truth(node.right, env)) + if isinstance(node, BinOp) and (node.op in _COMPARISONS or node.op in _LOGIC): + return self.prop(node, env) + if isinstance(node, Not): + return self.prop(node, env) + v = self.num(node, env, 'Nat') + if isinstance(v, bool): + return v + raise Unsupported('condition is not Bool-valued') + + def _rec(self, v): + if isinstance(v, float): + raise AssertionError('floating point value produced') # pragma: no cover - A3 guard + if isinstance(v, (int, Fraction, Alg)) and not isinstance(v, bool): + self.values_seen.append(v) + if isinstance(v, (list, tuple)): + for x in v: + if isinstance(x, float): + raise AssertionError('floating point value produced') # pragma: no cover - A3 guard + return v + + @staticmethod + def _arith(op, a, b, typ): + if isinstance(a, (list, tuple, bool)) or isinstance(b, (list, tuple, bool)): + raise Unsupported('arithmetic on a non-numeric value') + if typ == 'ENNReal' or isinstance(a, ENN) or isinstance(b, ENN): + a, b = _enn(a), _enn(b) + if op == '+': + return a + b + if op == '-': + return a - b + if op == '*': + return a * b + if op == '/': + return a / b + raise Unsupported(f'operator {op} on ENNReal') + if isinstance(a, (Meas, Func, frozenset)) or isinstance(b, (Meas, Func, frozenset)): + raise Unsupported(f'operator {op} on a measure, function or set') + if op == '+': + return a + b + if op == '-': + if typ == 'Nat': + return a - b if a >= b else 0 + return a - b + if op == '*': + return a * b + if op == '/': + if typ in _FIELD_TYPES: + # field division, totalized: x / 0 = 0 (`div_zero`); ints are coerced so no float can arise + return Fraction(0) if b == 0 else _exact(a) / _exact(b) + if b == 0: + return 0 # totalized: x / 0 = 0 (Nat.div, Int.ediv) + if typ == 'Nat': + return a // b + return _ediv(a, b) + if op == '%': + if typ in _FIELD_TYPES: + raise Unsupported(f'modulus at type {typ}') + if b == 0: + return a # totalized: x % 0 = x (Nat.mod, Int.emod) + if typ == 'Nat': + return a % b + return a - b * _ediv(a, b) # Int.emod: 0 ≤ r < |b| + raise Unsupported(f'operator {op}') + + def _power(self, node: BinOp, env, typ): + """`a ^ b`: the exponent is elaborated on its own (Lean's `rightact%`), so a literal exponent is a Nat + (`Monoid.npow`) whatever the base; an Int exponent is `zpow` on a field (`x ^ (-n : ℤ) = (x ^ n)⁻¹`, + with `0⁻¹ = 0`); a real exponent is `rpow`, outside the exact backend.""" + base = self.num(node.left, env, typ) + if isinstance(base, (list, tuple, bool)): + raise Unsupported('arithmetic on a non-numeric value') + et = self.arith_type(node.right, env) + if et == 'Nat': + exp = self.num(node.right, env, 'Nat') + elif et == 'Int': + exp = self.num(node.right, env, 'Int') + if exp < 0 and typ not in _FIELD_TYPES: + raise Unsupported('negative exponent outside a field') + else: + raise Unsupported('real exponent (Real.rpow) is outside the exact backend') + if isinstance(exp, (list, tuple, bool)): + raise Unsupported('arithmetic on a non-numeric value') + if exp < 0: + return _inv(_pow(base, -exp)) + return _pow(base, exp) + + def apply(self, node: App, env, typ): + fn = node.fn + args = node.args + if isinstance(fn, Lambda): + return self.call_closure(Closure(fn.params, fn.body, env), args, env, typ) + if not isinstance(fn, Var): + raise Unsupported('application of a non-name') + name = fn.name + if '.' in name and not name.startswith('.'): + recv, method = name.rsplit('.', 1) + if (recv in env or recv in self.module.defs) and method in _LIST_METHODS: + return self.apply(App(Var('.' + method), [Var(recv)] + list(args)), env, typ) + if name in env and isinstance(env[name], Closure): + return self.call_closure(env[name], args, env, typ) + if name in env and isinstance(env[name], Bound) and env[name].type == 'Measure' and len(args) == 1: + return self.measure_apply(env[name].value, args[0], env) + if name in env and isinstance(env[name], Bound) and env[name].type == 'Func' and len(args) == 1: + return self.func_apply(env[name].value, args[0], env) + if name in _TRANSCENDENTAL: + raise Unsupported(f'transcendental {name} is outside the exact algebraic backend') + if name in ('.toReal', 'ENNReal.toReal') and len(args) == 1: + v = self.num(args[0], env, 'ENNReal') + return _enn(v).to_real() + if name == 'ENNReal.ofReal' and len(args) == 1: + v = self.num(args[0], env, 'Real') + if isinstance(v, Alg): + if v.sign() <= 0: + return ENN(Fraction(0)) + raise Unsupported('an irrational ENNReal value is outside the finite-model backend') + return ENN(max(_exact(v), Fraction(0))) + if name == '.withDensity' and len(args) == 2: + m = self.num(args[0], env, 'Measure') + f = self.num(args[1], env, 'Func') + if not isinstance(m, Meas) or not isinstance(f, Func): + raise Unsupported('withDensity on a non-measure or non-function') + return Meas(tuple(w * _enn(f.table[i]) for i, w in enumerate(m.weights))) + if name == '.restrict' and len(args) == 2: + m = self.num(args[0], env, 'Measure') + a = self.num(args[1], env, 'Set') + if not isinstance(m, Meas) or not isinstance(a, frozenset): + raise Unsupported('restrict on a non-measure or non-set') + return Meas(tuple(w if i in a else ENN(Fraction(0)) for i, w in enumerate(m.weights))) + if name == '.compl' and len(args) == 1: + a = self.num(args[0], env, 'Set') + if not isinstance(a, frozenset): + raise Unsupported('complement of a non-set') + return frozenset(self.points()) - a + if name in _MEASURE_PREDICATES: + raise Unsupported(f'predicate {name} used as a value') + if name == 'Real.sqrt' and len(args) == 1: + return _real_sqrt(self.num(args[0], env, 'Real')) + if name == 'abs' and len(args) == 1: + t = _max_type(self.arith_type(args[0], env), typ) if typ != 'Nat' else self.arith_type(args[0], env) + v = self.num(args[0], env, t) + if isinstance(v, (list, tuple, bool)): + raise Unsupported('abs of a non-numeric value') + return _abs(v) + if name == 'Inv.inv' and len(args) == 1: + if typ == 'ENNReal': + return _enn(self.num(args[0], env, 'ENNReal')).inverse() + if typ not in _FIELD_TYPES: + raise Unsupported(f'inverse at type {typ}') + return _inv(self.num(args[0], env, typ)) + if name == 'List.range' and len(args) == 1: + n = self.num(args[0], env, 'Nat') + if n > _MAX_LOOP: + raise Infeasible(f'List.range {n} exceeds the loop cap') + return list(range(n)) + if name in ('.foldl', 'List.foldl'): + recv, f, init = (args[0], args[1], args[2]) if name == '.foldl' else (args[2], args[0], args[1]) + lst = self.num(recv, env, 'Nat') + if not isinstance(lst, list): + raise Unsupported('foldl on a non-list') + acc = self.num(init, env, typ) + closure = self._closure(f, env) + for x in lst: + acc = self.call_values(closure, [acc, x], typ) + return acc + if name in ('.filter', 'List.filter'): + recv, f = (args[0], args[1]) if name == '.filter' else (args[1], args[0]) + lst = self.num(recv, env, typ) + if not isinstance(lst, list): + raise Unsupported('filter on a non-list') + closure = self._closure(f, env) + kept = [] + for x in lst: + r = self.call_values(closure, [x], typ) + if not isinstance(r, bool): + raise Unsupported('filter predicate is not Bool-valued') + if r: + kept.append(x) + return kept + if name in ('.sum', 'List.sum'): + lst = self.num(args[0], env, typ) + return sum(lst) + if name in ('.length', 'List.length'): + lst = self.num(args[0], env, 'Nat') + return len(lst) + if name in ('.map', 'List.map'): + recv, f = (args[0], args[1]) if name == '.map' else (args[1], args[0]) + lst = self.num(recv, env, typ) + closure = self._closure(f, env) + return [self.call_values(closure, [x], typ) for x in lst] + if name in ('Nat.choose',) and len(args) == 2: + n, k = self.num(args[0], env, 'Nat'), self.num(args[1], env, 'Nat') + return _choose(n, k) + if name in ('Nat.factorial',) and len(args) == 1: + n = self.num(args[0], env, 'Nat') + if n > _MAX_PRODUCT_LOOP: + raise Infeasible(f'Nat.factorial {n} exceeds the product-loop cap') + out = 1 + for m in range(2, n + 1): + out *= m + return out + if name == 'Nat.succ' and len(args) == 1: + return self.num(args[0], env, 'Nat') + 1 + if name == 'Nat.pred' and len(args) == 1: + v = self.num(args[0], env, 'Nat') + return v - 1 if v > 0 else 0 + if name in ('Nat.min', 'min') and len(args) == 2: + return min(self.num(args[0], env, typ), self.num(args[1], env, typ)) + if name in ('Nat.max', 'max') and len(args) == 2: + return max(self.num(args[0], env, typ), self.num(args[1], env, typ)) + if name == 'Int.natAbs' and len(args) == 1: + return abs(self.num(args[0], env, 'Int')) + if name == 'Int.toNat' and len(args) == 1: + return max(0, self.num(args[0], env, 'Int')) + if name == 'Int.ofNat' and len(args) == 1: + return self.num(args[0], env, 'Nat') + d = self.module.defs.get(name) + if d is None: + raise Unsupported(f'unknown function {name}') + dtyp = self._type_name(d.result_type) if d.result_type else typ + if dtyp == 'Measure' and not d.clauses and len(args) == len(d.params) + 1: + measure = self.apply(App(fn, list(args[:-1])), env, 'Measure') + return self.measure_apply(measure, args[-1], env) + if d.clauses: + n_lead = len(d.params) + n_pats = len(d.clauses[0][0]) + if len(args) != n_lead + n_pats: + raise Unsupported(f'{name} applied to {len(args)} of {n_lead + n_pats} arguments') + local = {} + for (pname, ptype), a in zip(d.params, args[:n_lead]): + pt = self._type_name(ptype) + local[pname] = Bound(self.num(a, env, pt), pt) + arrow_types = [t.strip() for t in (d.result_type or '').split('→')[:-1]] if d.result_type else [] + vals = [] + for k, a in enumerate(args[n_lead:]): + at = self._type_name(arrow_types[k]) if k < len(arrow_types) else 'Nat' + vals.append((self.num(a, env, at), at)) + for pats, expr in d.clauses: + bindings = [_match(p, v) for p, (v, _) in zip(pats, vals)] + if any(b is None for b in bindings): + continue + if expr is None: + raise Unsupported(f'unparsed clause of {name}') + scope = dict(local) + for b, (_, at) in zip(bindings, vals): + scope.update({k: Bound(val, at) for k, val in b.items()}) + return self.num(expr, scope, dtyp) + raise Unsupported(f'no clause of {name} matches {[v for v, _ in vals]}') + if d.body is None: + raise Unsupported(f'definition {name} has an unparsed body') + if len(args) != len(d.params): + raise Unsupported(f'{name} applied to {len(args)} of {len(d.params)} arguments') + local = {} + for (pname, ptype), a in zip(d.params, args): + pt = self._type_name(ptype) + local[pname] = Bound(self.num(a, env, pt), pt) + return self.num(d.body, local, dtyp) + + # ---- finite models + def integral(self, node: Integral, env): + """`∫ x, f x ∂μ` on a finite model: Σ w_i f(i) over the points of nonzero mass (restricted to the set + for `∫ x in A, …`). A point of infinite mass makes the integral undefined here (Lean's Bochner integral + of a non-integrable function is 0; the hypotheses of the statements in scope exclude it): UNSUPPORTED.""" + m = self.num(node.measure, env, 'Measure') + if not isinstance(m, Meas): + raise Unsupported('integral against a non-measure') + domain = None + if node.domain is not None: + domain = self.num(node.domain, env, 'Set') + if not isinstance(domain, frozenset): + raise Unsupported('set integral over a non-set') + total = Fraction(0) + for i, w in enumerate(m.weights): + if domain is not None and i not in domain: + continue + if w.inf: + raise Unsupported('integral against a point of infinite mass') + if w.value == 0: + continue + v = self.num(node.body, {**env, node.var: Bound(i, 'Point')}, 'Real') + if isinstance(v, (bool, list, tuple, frozenset, Meas, Func, ENN)): + raise Unsupported('integrand is not real-valued') + total = total + w.value * _exact(v) + return total + + def measure_apply(self, measure, set_node, env): + if not isinstance(measure, Meas): + raise Unsupported('application of a non-measure') + a = self.num(set_node, env, 'Set') + if not isinstance(a, frozenset): + raise Unsupported('a measure applied to a non-set') + return measure.mass(a) + + def func_apply(self, func, point_node, env): + if not isinstance(func, Func): + raise Unsupported('application of a non-function') + i = self.num(point_node, env, 'Point') + if not isinstance(i, int) or isinstance(i, bool) or not 0 <= i < len(func.table): + raise Unsupported('a function applied to a non-point') + return func.table[i] + + def materialize(self, closure: Closure) -> Func: + """A lambda on the carrier as a table, typed by its body.""" + if len(closure.params) != 1: + raise Unsupported('a function of several arguments on the carrier') + table, codomain = [], 'Real' + for i in self.points(): + scope = dict(closure.env) + scope[closure.params[0]] = Bound(i, 'Point') + codomain = self.arith_type(closure.body, scope) + if codomain in ('Prop', 'Measure', 'Set', 'Func'): + raise Unsupported('a function on the carrier with a non-numeric codomain') + table.append(self.num(closure.body, scope, codomain if codomain != 'Nat' else 'Real')) + return Func(tuple(table), codomain if codomain != 'Nat' else 'Real') + + def at_point(self, node, env, i, typ='Real'): + """The value at point i of a function-or-constant expression (`0 ≤ᵐ[μ] W` compares 0 with W i).""" + if isinstance(node, Var) and node.name in env and isinstance(env[node.name], Bound) \ + and env[node.name].type == 'Func': + return env[node.name].value.table[i] + if isinstance(node, Lambda): + return self.func_apply(self.materialize(Closure(node.params, node.body, env)), Num(i), env) + t = self.arith_type(node, env) + if t == 'Func': + f = self.num(node, env, 'Func') + return f.table[i] if isinstance(f, Func) else f + return self.num(node, env, typ if t in ('Nat', 'Int', 'Sci') else t) + + def predicate(self, node: App, env) -> bool: + """Mathlib predicates on a finite discrete model. `IsProbabilityMeasure μ` is total mass 1; the + structural ones (measurability, integrability, finiteness) hold for every value the model can carry.""" + name = node.fn.name + if name == 'IsProbabilityMeasure': + if len(node.args) != 1: + raise Unsupported('IsProbabilityMeasure with an unexpected arity') + m = self.num(node.args[0], env, 'Measure') + if not isinstance(m, Meas): + raise Unsupported('IsProbabilityMeasure of a non-measure') + return m.mass() == ENN(Fraction(1)) + if name == 'IsFiniteMeasure': + if len(node.args) != 1: + raise Unsupported('IsFiniteMeasure with an unexpected arity') + m = self.num(node.args[0], env, 'Measure') + if not isinstance(m, Meas): + raise Unsupported('IsFiniteMeasure of a non-measure') + return not any(w.inf for w in m.weights) + if name in _STRUCTURAL_PREDICATES: + measures = [] + for a in node.args: # the arguments must at least be values the model carries + t = self.arith_type(a, env) + if t not in ('Measure', 'Set', 'Func', 'Nat', 'Real', 'ENNReal') and not isinstance(a, Lambda): + raise Unsupported(f'{name} of a {t}') + if t == 'Measure': + measures.append(self.num(a, env, 'Measure')) + # a derived measure (`c • μ` with c = ∞) may carry a point of infinite mass: finiteness is then false + # and integrability is not automatic, so nothing is assumed there (a8, 743/5729046258 N2) + infinite = any(isinstance(m, Meas) and any(w.inf for w in m.weights) for m in measures) + if infinite: + raise Unsupported(f'{name} on a measure with a point of infinite mass is not decided by the finite-model backend') + return True + raise Unsupported(f'predicate {name}') + + def ae_rel(self, node: AERel, env) -> bool: + m = self.num(node.measure, env, 'Measure') + if not isinstance(m, Meas): + raise Unsupported('a.e. relation along a non-measure') + for i, w in enumerate(m.weights): + if not w.inf and w.value == 0: + continue + a = _exact(self.at_point(node.left, env, i)) + b = _exact(self.at_point(node.right, env, i)) + if isinstance(a, (bool, frozenset, Meas, Func)) or isinstance(b, (bool, frozenset, Meas, Func)): + raise Unsupported('a.e. relation between non-numeric values') + if not {'=': a == b, '≠': a != b, '<': a < b, '>': a > b, '≤': a <= b, '≥': a >= b}[node.op]: + return False + return True + + def _closure(self, f, env): + if isinstance(f, Lambda): + return Closure(f.params, f.body, env) + if isinstance(f, Var) and f.name in _BUILTIN_BINARY: + return _BUILTIN_BINARY[f.name] + if isinstance(f, Var) and f.name in env and isinstance(env[f.name], Closure): + return env[f.name] + if isinstance(f, Var) and f.name in self.module.defs: + d = self.module.defs[f.name] + if d.body is not None and d.params: + return Closure([p for p, _ in d.params], d.body, {}) + raise Unsupported('higher-order argument is not a lambda') + + def call_closure(self, closure, arg_nodes, env, typ): + vals = [self.num(a, env, typ) for a in arg_nodes] + return self.call_values(closure, vals, typ) + + def call_values(self, closure, vals, typ): + if callable(closure) and not isinstance(closure, Closure): + return closure(*vals) + if len(vals) != len(closure.params): + raise Unsupported('lambda arity mismatch') + local = dict(closure.env) + for p, v in zip(closure.params, vals): + local[p] = Bound(v, typ) + return self.num(closure.body, local, typ) + + # ---- bounded universal quantification + def forall(self, node: 'Forall', env) -> bool: + var_type = 'Int' if node.type in _INT_TYPES else 'Nat' + if node.type is not None and node.type not in _INT_TYPES | _NAT_TYPES: + kind = _kind_of_type(node.type, self.module.point_types) + if kind == 'Set': + # every subset of the finite carrier: 2^n instances + pts = list(self.points()) + subsets = [frozenset(i for i in pts if mask >> i & 1) for mask in range(1 << len(pts))] + return self._forall_over(node, env, subsets, 'Set') + if kind == 'Point': + return self._forall_over(node, env, list(self.points()), 'Point') + raise Unsupported(f'quantifier over {node.type}') + domain, body = _domain_of(node, self, env) + if domain is None: + raise Unsupported(f'unbounded quantifier over {node.var}') + self.instances += len(domain) + if not domain: + self.vacuous = True + ok = True + for v in domain: + scope = dict(env) + scope[node.var] = Bound(v, var_type) + if not self.prop(body, scope): + self.failures.append(f'{node.var} = {v}') + ok = False + if ok and domain and all(isinstance(v, int) and not isinstance(v, bool) for v in domain): + lo, hi = min(domain), max(domain) + for cand in sorted({lo - 1, hi + 1, 0, 2 * hi + 1}): + if cand in domain or (cand < 0 and var_type == 'Nat'): + continue + scope = dict(env) + scope[node.var] = Bound(cand, var_type) + try: + holds = self.prop(body, scope) + except Unsupported: + continue + self.probes.append({'var': node.var, 'value': cand, 'holds': holds}) + return ok + + def _forall_over(self, node: 'Forall', env, domain, var_type) -> bool: + self.instances += len(domain) + ok = True + for v in domain: + scope = dict(env) + scope[node.var] = Bound(v, var_type) + if not self.prop(node.body, scope): + self.failures.append(f'{node.var} = {_fmt_value(v)}') + ok = False + return ok + + # ---- propositions + def prop(self, node, env) -> bool: + if isinstance(node, Not): + return not self.prop(node.expr, env) + if isinstance(node, Forall): + return self.forall(node, env) + if isinstance(node, AERel): + return self.ae_rel(node, env) + if isinstance(node, App) and isinstance(node.fn, Var) and node.fn.name in _MEASURE_PREDICATES: + return self.predicate(node, env) + if isinstance(node, (BoolNot, Var)) or (isinstance(node, BinOp) and node.op in ('&&', '||')): + if isinstance(node, Var) and node.name not in ('true', 'false'): + v = self.num(node, env, 'Nat') + if isinstance(v, bool): + return v + raise Unsupported(f'proposition {node.name} is not Bool-valued') + return self.truth(node, env) + if isinstance(node, BinOp): + if node.op == '∧': + return self.prop(node.left, env) and self.prop(node.right, env) + if node.op == '∨': + return self.prop(node.left, env) or self.prop(node.right, env) + if node.op == '→': + return (not self.prop(node.left, env)) or self.prop(node.right, env) + if node.op == '↔': + return self.prop(node.left, env) == self.prop(node.right, env) + if node.op in ('∈', '∉'): + rt = self.arith_type(node.right, env) + if rt == 'Set': + a = self.num(node.right, env, 'Set') + if not isinstance(a, frozenset): + raise Unsupported('membership in a non-set') + i = self.num(node.left, env, 'Point') + return (i in a) if node.op == '∈' else (i not in a) + lst = self.num(node.right, env, 'Nat') + if not isinstance(lst, list): + raise Unsupported('membership in a non-list') + v = self.num(node.left, env, 'Nat') + return (v in lst) if node.op == '∈' else (v not in lst) + if node.op == '⊆': + a, b = self.num(node.left, env, 'Set'), self.num(node.right, env, 'Set') + if not isinstance(a, frozenset) or not isinstance(b, frozenset): + raise Unsupported('⊆ between non-sets') + return a <= b + if node.op == '≪': + nu, mu = self.num(node.left, env, 'Measure'), self.num(node.right, env, 'Measure') + if not isinstance(nu, Meas) or not isinstance(mu, Meas): + raise Unsupported('≪ between non-measures') + # absolute continuity on a finite carrier: every μ-null point is ν-null + return all(w_nu == ENN(Fraction(0)) for w_nu, w_mu in zip(nu.weights, mu.weights) + if w_mu == ENN(Fraction(0))) + if node.op in _COMPARISONS: + typ = _max_type(self.arith_type(node.left, env), self.arith_type(node.right, env)) + if typ == 'Bool': + typ = 'Nat' + if typ == 'Sci': + raise Unsupported('scientific literal outside a rational or real context (Lean defaults it to Float)') + if typ in ('Measure', 'Set', 'Func'): + a = self.num(node.left, env, typ) + b = self.num(node.right, env, typ) + if node.op == '=': + return a == b + if node.op == '≠': + return a != b + raise Unsupported(f'ordering of {typ} values') + a = self.num(node.left, env, typ) + b = self.num(node.right, env, typ) + if isinstance(a, (list, tuple, bool)) or isinstance(b, (list, tuple, bool)): + if node.op == '=': + return a == b + if node.op == '≠': + return a != b + raise Unsupported('ordering of non-numeric values') + if typ in _FIELD_TYPES: + a, b = _exact(a), _exact(b) # an int meets a Fraction or an Alg: compare exactly + return {'=': a == b, '≠': a != b, '<': a < b, '>': a > b, '≤': a <= b, '≥': a >= b}[node.op] + raise Unsupported(f'operator {node.op} in a proposition') + if isinstance(node, Var) and node.name in ('True', 'False'): + return node.name == 'True' + if isinstance(node, Ascribe): + return self.prop(node.expr, env) + raise Unsupported(f'proposition of form {type(node).__name__}') + + +def _ediv(a: int, b: int) -> int: + """Lean 4 core `Int./` is `Int.ediv` (Euclidean): the quotient q with a = b*q + r and 0 ≤ r < |b|. + For b > 0 this is floor division; for b < 0 it is -(a // -b). Python's `//` floors for every sign of + b and T-division rounds toward zero, so both differ from this for some sign combination + (goldens: 5 / -2 = -2, -5 / -2 = 3, -5 / 2 = -3; main#684/6511137449).""" + return a // b if b > 0 else -(a // (-b)) + + +def _max_type(a, b): + order = {'Sci': -2, 'Bool': -1, 'Nat': 0, 'Int': 1, 'Rat': 2, 'Real': 3, 'ENNReal': 4, 'Point': 5, 'Set': 6, + 'Func': 7, 'Measure': 8, 'Prop': 9} + if 'Prop' in (a, b): + raise Unsupported('arithmetic on propositions') + return a if order[a] >= order[b] else b + + +def _coerce(v, from_type, to_type): + """Value of type ``from_type`` used where ``to_type`` is expected: ℕ/ℤ embed into ℚ/ℝ; a rational or + real value has no coercion back to ℕ/ℤ in Lean (the statement would not elaborate).""" + if isinstance(v, (list, tuple, bool)): + return v + if to_type in _FIELD_TYPES and from_type not in _FIELD_TYPES: + return Fraction(v) + if from_type in _FIELD_TYPES and to_type not in _FIELD_TYPES and to_type != 'Sci': + raise Unsupported(f'a {from_type} value ascribed where a {to_type} is expected') + return v + + +def _exact(v): + """An int as a Fraction (field arithmetic never touches Python's `/` on ints).""" + return Fraction(v) if isinstance(v, int) and not isinstance(v, bool) else v + + +def _bits(v) -> int: + if isinstance(v, int): + return v.bit_length() + if isinstance(v, Fraction): + return v.numerator.bit_length() + v.denominator.bit_length() + if isinstance(v, Alg): + return sum(_bits(c) for c in v.terms.values()) + 8 * len(v.terms) + return 0 + + +def _pow(a, n: int): + """a ^ n for a Nat exponent, with a cap on the exact result size (an exponent such as 2^63 from a + pathological sample is infeasible, not approximated).""" + if n == 0: + return 1 if isinstance(a, int) else Fraction(1) + if _bits(a) * n > _MAX_RESULT_BITS or (isinstance(a, Alg) and n > 10_000): + raise Infeasible(f'exponent {n} exceeds the exact-size cap') + if isinstance(a, Alg): + out, base = Fraction(1), a + while n: + if n & 1: + out = out * base + n >>= 1 + if n: + base = base * base + return out + return a ** n + + +def _inv(v): + """Lean's field inverse, totalized: `0⁻¹ = 0`.""" + if isinstance(v, Alg): + return v.inverse() + v = _exact(v) + return Fraction(0) if v == 0 else 1 / v + + +def _abs(v): + if isinstance(v, Alg): + return v if v.sign() > 0 else -v + return abs(v) + + +def _choose(n, k): + if k < 0 or k > n: + return 0 + if k > _MAX_PRODUCT_LOOP: + raise Infeasible(f'Nat.choose with k = {k} exceeds the product-loop cap') + out = 1 + for i in range(1, k + 1): + out = out * (n - k + i) // i + return out + + +def _match(pat, v): + kind = pat[0] + if kind == 'lit': + return {} if v == pat[1] else None + if kind == 'var': + return {pat[1]: v} + if kind == 'succ': + return {pat[1]: v - pat[2]} if v >= pat[2] else None + return None + + +# -------------------------------------------------------------------------------------------- +# Exact real arithmetic in multi-quadratic extensions ℚ(√d₁, …, √dₖ) +# -------------------------------------------------------------------------------------------- +# `Real.sqrt` of a rational is exact here: √(a/b) = (s/b)·√d with a·b = s²·d and d squarefree. Sums and +# products of such values stay in the field, division rationalizes the denominator, and equality is decided +# by the canonical form (the √d for distinct squarefree d are linearly independent over ℚ, so an element is +# zero iff every coefficient is zero). The sign of a nonzero element is decided by refining rational +# enclosures of the √d (integer square roots), never by floating point. Nested radicals (√ of an irrational +# value) and transcendental functions are outside this backend and reported UNSUPPORTED. + +_SMALL_PRIMES = None + + +def _primes_up_to(n: int) -> list: + sieve = bytearray([1]) * (n + 1) + sieve[0:2] = b'\x00\x00' + for p in range(2, int(n ** 0.5) + 1): + if sieve[p]: + sieve[p * p::p] = bytearray(len(range(p * p, n + 1, p))) + return [i for i, f in enumerate(sieve) if f] + + +def _isqrt_exact(n: int): + r = _isqrt(n) + return r if r * r == n else None + + +def _isqrt(n: int) -> int: + if n < 0: + raise ValueError('negative') + if n < 2: + return n + x = 1 << ((n.bit_length() + 1) // 2) + while True: + y = (x + n // x) // 2 + if y >= x: + return x + x = y + + +_SQUAREFREE_CACHE = {} + +_MR_BASES = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41) +_MR_DETERMINISTIC_BELOW = 3_317_044_064_679_887_385_961_981 # Miller–Rabin with these bases is exact below this + + +def _is_prime(n: int) -> bool: + """Deterministic Miller–Rabin for n < 3.3·10²⁴ (Sorenson–Webster bases); larger n is infeasible here.""" + if n < 2: + return False + for p in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41): + if n % p == 0: + return n == p + if n >= _MR_DETERMINISTIC_BELOW: + raise Infeasible(f'primality of {n} is beyond the deterministic Miller–Rabin range') + d, r = n - 1, 0 + while d % 2 == 0: + d //= 2 + r += 1 + for a in _MR_BASES: + x = pow(a, d, n) + if x in (1, n - 1): + continue + for _ in range(r - 1): + x = x * x % n + if x == n - 1: + break + else: + return False + return True + + +def _pollard_brent(n: int) -> int: + """A nontrivial factor of a composite n (Brent's variant of Pollard's rho, deterministic parameters).""" + if n % 2 == 0: + return 2 + for c in range(1, 1000): + y, m, g, r, q = 2, 128, 1, 1, 1 + x = ys = y + while g == 1: + x = y + for _ in range(r): + y = (y * y + c) % n + k = 0 + while k < r and g == 1: + ys = y + for _ in range(min(m, r - k)): + y = (y * y + c) % n + q = q * abs(x - y) % n + g = _gcd(q, n) + k += m + r *= 2 + if g == n: + g = 1 + while g == 1: + ys = (ys * ys + c) % n + g = _gcd(abs(x - ys), n) + if g != n: + return g + raise Infeasible(f'no factor of {n} found') # pragma: no cover - rho with 999 polynomials + + +def _prime_factors(n: int) -> dict: + """Exact prime factorization with multiplicities (trial division, then Miller–Rabin + Brent rho).""" + global _SMALL_PRIMES + if _SMALL_PRIMES is None: + _SMALL_PRIMES = _primes_up_to(100_000) + out = {} + for p in _SMALL_PRIMES: + if p * p > n: + break + while n % p == 0: + out[p] = out.get(p, 0) + 1 + n //= p + stack = [n] if n > 1 else [] + while stack: + m = stack.pop() + if m == 1: + continue + if _is_prime(m): + out[m] = out.get(m, 0) + 1 + continue + r = _isqrt_exact(m) + if r is not None: + stack.extend([r, r]) + continue + f = _pollard_brent(m) + stack.extend([f, m // f]) + return out + + +def _small_square_split(n: int): + """n = s² · m with every prime below 100000 appearing in m at most once; m need not be squarefree.""" + global _SMALL_PRIMES + if _SMALL_PRIMES is None: + _SMALL_PRIMES = _primes_up_to(100_000) + s, m = 1, n + for p in _SMALL_PRIMES: + if p * p > m: + break + while m % (p * p) == 0: + m //= p * p + s *= p + return s, m + + +def _squarefree_split(n: int): + """n = s² · d with d squarefree, for n ≥ 1, exactly, from the prime factorization.""" + if n in _SQUAREFREE_CACHE: + return _SQUAREFREE_CACHE[n] + s, d = 1, 1 + for p, e in _prime_factors(n).items(): + s *= p ** (e // 2) + if e % 2: + d *= p + _SQUAREFREE_CACHE[n] = (s, d) + return s, d + + +class Alg: + """Σ c_d √d over squarefree d ≥ 1 (d = 1 is the rational part), coefficients nonzero Fractions. Always + irrational: results that collapse to a rational are returned as a Fraction by ``_alg``. + + ``canonical`` is False when some radicand could not be split into square and squarefree parts exactly + (its cofactor is beyond the deterministic primality range): the value is still exact and every + ordering is still decided by enclosures, but equality by form is unavailable and an exact zero cannot + be recognised — those cases are reported Infeasible, never guessed.""" + __slots__ = ('terms', 'canonical') + + def __init__(self, terms, canonical=True): + self.terms = terms + self.canonical = canonical + + def __repr__(self): + return ' + '.join(f'{c}' if d == 1 else f'{c}·√{d}' for d, c in sorted(self.terms.items())) + + # ---- construction + @staticmethod + def _terms(x): + if isinstance(x, Alg): + return x.terms + if isinstance(x, bool): + raise Unsupported('arithmetic on a Bool') + return {1: Fraction(x)} if x != 0 else {} + + def __hash__(self): + return hash(tuple(sorted(self.terms.items()))) + + # ---- ring operations + def __add__(self, other): + out = dict(self.terms) + for d, c in Alg._terms(other).items(): + out[d] = out.get(d, Fraction(0)) + c + return _alg(out, self.canonical and _canonical(other)) + + __radd__ = __add__ + + def __neg__(self): + return Alg({d: -c for d, c in self.terms.items()}, self.canonical) + + def __sub__(self, other): + return self + (-other if isinstance(other, Alg) else -Fraction(other)) + + def __rsub__(self, other): + return (-self) + other + + def __mul__(self, other): + out = {} + for d1, c1 in self.terms.items(): + for d2, c2 in Alg._terms(other).items(): + g = _gcd(d1, d2) + d = (d1 // g) * (d2 // g) # √d₁√d₂ = g·√(d₁d₂/g²) holds for any d₁, d₂ + out[d] = out.get(d, Fraction(0)) + c1 * c2 * g + return _alg(out, self.canonical and _canonical(other)) + + __rmul__ = __mul__ + + def __truediv__(self, other): + if isinstance(other, Alg): + return self * other.inverse() + other = Fraction(other) + if other == 0: + return Fraction(0) # Lean: x / 0 = 0 + return Alg({d: c / other for d, c in self.terms.items()}, self.canonical) + + def __rtruediv__(self, other): + return Fraction(other) * self.inverse() + + def __pow__(self, n): + return _pow(self, n) + + def inverse(self): + """x⁻¹ by conjugation over a coprime base of the radicands: x = A + B√b with A, B free of √b, so + x · (A − B√b) = A² − b·B² lies in the smaller field (and is nonzero when x is), and recursion ends at + a rational.""" + if not self.canonical: + raise Infeasible('inverse of a value with an unsplit radicand') + radicands = [d for d in self.terms if d != 1] + b = _coprime_base(radicands)[0] + conj = Alg({d: (-c if d % b == 0 else c) for d, c in self.terms.items()}) + norm = self * conj + if isinstance(norm, Alg) and any(d % b == 0 for d in norm.terms): + raise AssertionError('conjugation did not eliminate the radical') # pragma: no cover + return conj * _inv(norm) + + # ---- order + def sign(self) -> int: + """Exact sign: the element is nonzero (canonical form), so an enclosure of each √d by integer square + roots at increasing precision eventually separates the sum from 0.""" + for bits in (64, 128, 256, 512, 1024, 2048, 4096): + lo = hi = Fraction(0) + scale = 1 << bits + for d, c in self.terms.items(): + if d == 1: + lo += c + hi += c + continue + r = _isqrt(d << (2 * bits)) + a, b = Fraction(r, scale), Fraction(r + 1, scale) + if c >= 0: + lo += c * a + hi += c * b + else: + lo += c * b + hi += c * a + if lo > 0: + return 1 + if hi < 0: + return -1 + raise Infeasible('sign of an algebraic value undecided at 4096 bits' + + ('' if self.canonical else ' (an unsplit radicand: the value may be exactly zero)')) + + def _cmp(self, other): + diff = self - other + if isinstance(diff, Alg): + return diff.sign() + return (diff > 0) - (diff < 0) + + def __eq__(self, other): + if self.canonical and _canonical(other): + return isinstance(other, Alg) and self.terms == other.terms + diff = self - other # no canonical form: equal iff the difference is exactly zero + if not isinstance(diff, Alg): + return diff == 0 + return diff.sign() == 0 # never 0: a decided sign means unequal, otherwise Infeasible + + def __ne__(self, other): + return not self.__eq__(other) + + def __lt__(self, other): + return self._cmp(other) < 0 + + def __le__(self, other): + return self._cmp(other) <= 0 + + def __gt__(self, other): + return self._cmp(other) > 0 + + def __ge__(self, other): + return self._cmp(other) >= 0 + + +def _gcd(a: int, b: int) -> int: + while b: + a, b = b, a % b + return a + + +def _alg(terms: dict, canonical: bool = True): + terms = {d: c for d, c in terms.items() if c != 0} + if not terms: + return Fraction(0) + if set(terms) == {1}: + return terms[1] + return Alg(terms, canonical) + + +def _canonical(x) -> bool: + return x.canonical if isinstance(x, Alg) else True + + +def _coprime_base(radicands: list) -> list: + """Pairwise coprime integers > 1 such that every radicand is a product of a subset (gcd refinement).""" + base = sorted({d for d in radicands if d > 1}) + changed = True + while changed: + changed = False + for i in range(len(base)): + for j in range(i + 1, len(base)): + a, b = base[i], base[j] + g = _gcd(a, b) + if g > 1: + base = sorted({x for x in base if x not in (a, b)} | {x for x in (g, a // g, b // g) if x > 1}) + changed = True + break + if changed: + break + return base + + +def _real_sqrt(v): + """Mathlib `Real.sqrt`: 0 on non-positive arguments (`Real.sqrt_eq_zero'`), exact otherwise.""" + if isinstance(v, Alg): + if v.sign() <= 0: + return Fraction(0) + raise Unsupported('nested radical: Real.sqrt of an irrational value is outside the exact backend') + v = _exact(v) + if isinstance(v, bool) or not isinstance(v, Fraction): + raise Unsupported('Real.sqrt of a non-numeric value') + if v <= 0: + return Fraction(0) + # √(a/b) = √a / √b = (sₐ√dₐ)/(s_b√d_b) with dₐ·d_b = g²·d, g = gcd(dₐ, d_b): the numerator and the + # denominator are split separately (each is far smaller than their product) + ra, rb = _isqrt_exact(v.numerator), _isqrt_exact(v.denominator) + if ra is not None and rb is not None: + return Fraction(ra, rb) + canonical = True + try: + sa, da = _squarefree_split(v.numerator) + sb, db = _squarefree_split(v.denominator) + except Infeasible: + # beyond exact factoring: remove the small square factors only; the radicand may keep a square part + canonical = False + sa, da = _small_square_split(v.numerator) + sb, db = _small_square_split(v.denominator) + g = _gcd(da, db) + d = (da // g) * (db // g) + coeff = Fraction(sa * g, sb * db) + return coeff if d == 1 else Alg({d: coeff}, canonical) + + +# -------------------------------------------------------------------------------------------- +# Theorem evaluation with quantifier enumeration and boundary probes +# -------------------------------------------------------------------------------------------- + +@dataclasses.dataclass +class EvalResult: + status: str # PASS | CORROBORATED | FAIL | UNSUPPORTED + detail: str + instances: int + vacuous: bool + probes: list # [{'value': v, 'holds': bool}] outside-domain probes (information only) + values: list # every intermediate numeric value (A3 audit: never a float) + sampling: dict | None = None # for statements with sampled binders: seed, draws, accepted, rejected + + +HOLDS = ('PASS', 'CORROBORATED') # the two verdicts under which no counterexample was found + + +def _domain_of(forall: Forall, ev: Evaluator, env=None): + """The finite domain of a universally quantified variable, or None when it is not finite.""" + env = env or {} + if forall.domain is not None: + lst = ev.num(forall.domain, env, 'Nat') + return (lst, forall.body) if isinstance(lst, list) else (None, forall.body) + body = forall.body + if isinstance(body, BinOp) and body.op == '→': + hyp = body.left + if isinstance(hyp, BinOp) and hyp.op == '∈' and isinstance(hyp.left, Var) and hyp.left.name == forall.var: + lst = ev.num(hyp.right, env, 'Nat') + if isinstance(lst, list): + return lst, body.right + # A bound gives a finite domain only for an explicit Nat binder: an Int or Rat binder, or an + # untyped one that Lean may unify with Int elsewhere in the body, is unbounded below. + if (isinstance(hyp, BinOp) and hyp.op in ('≤', '<') and isinstance(hyp.left, Var) + and hyp.left.name == forall.var and forall.type in _NAT_TYPES): + bound = ev.num(hyp.right, env, 'Nat') + if isinstance(bound, int) and not isinstance(bound, bool) and bound <= 100000: + return list(range(bound + 1 if hyp.op == '≤' else bound)), body.right + return None, body + + +_EVAL_ERRORS = (SyntaxError, RecursionError, ZeroDivisionError, OverflowError, KeyError, IndexError, TypeError, ValueError) + + +def evaluate_theorem(module: Module, thm: Theorem, seed: int = 1, samples: int = 64) -> EvalResult: + """A closed statement is decided exactly: PASS / FAIL. A statement with sampled binders before the colon + is tested on ``samples`` hypothesis-satisfying instances drawn deterministically from ``seed``: + FAIL with the exact witness, CORROBORATED when no instance refutes it (admitted evidence, never PASS), + UNSUPPORTED when a binder, a hypothesis or the conclusion is outside the interpreter or no sample + satisfies the hypotheses (possibly vacuous: A5).""" + if thm.statement is None: + return EvalResult('UNSUPPORTED', thm.error or 'no statement', 0, False, [], []) + if thm.binders: + return _evaluate_sampled(module, thm, seed, samples) + ev = Evaluator(module) + try: + ok = ev.prop(thm.statement, {}) + quantified = ev.instances > 0 or ev.vacuous + if not ok: + detail = ('fails at ' + ', '.join(ev.failures)) if ev.failures else 'closed statement evaluated false' + return EvalResult('FAIL', detail, ev.instances if quantified else 1, False, ev.probes, ev.values_seen) + if quantified: + detail = f'holds on all {ev.instances} quantified instances' + (' (an empty domain: vacuous)' if ev.vacuous else '') + else: + detail = 'closed statement evaluated true' + return EvalResult('PASS', detail, ev.instances if quantified else 1, ev.vacuous, ev.probes, ev.values_seen) + except Unsupported as e: + return EvalResult('UNSUPPORTED', str(e), 0, False, [], ev.values_seen) + except _EVAL_ERRORS as e: + return EvalResult('UNSUPPORTED', f'evaluation error: {type(e).__name__}: {e}', 0, False, [], ev.values_seen) + + +def check_module(source: str, seed: int = 1, samples: int = 64): + module = parse_module(source) + return [evaluate_theorem(module, t, seed, samples) for t in module.theorems] + + +# -------------------------------------------------------------------------------------------- +# Sampled evaluation of statements with binders before the colon +# -------------------------------------------------------------------------------------------- +# The sampler never proves anything: it looks for a counterexample among exact rationals (and small +# integers for ℕ/ℤ binders) chosen to be pathological — 0, ±1, ±tiny, ±huge, perfect squares and +# non-squares, repeating decimals — plus the boundary values the hypotheses themselves name (`0 ≤ r`, +# `r ≤ 1`, `|a - b| ≤ δ` contribute 0, 1, b ± δ …), then random rationals. Variables are drawn in +# declaration order and each hypothesis is checked as soon as its variables are assigned, so constrained +# domains (`m2 ^ 2 < m4`) are sampled efficiently without any float. + + +_F = Fraction +_REAL_POOL = [_F(0), _F(1), _F(-1), _F(1, 2), _F(-1, 2), _F(2), _F(-2), _F(10 ** 6), _F(-10 ** 6), _F(1, 10 ** 6), + _F(-1, 10 ** 6), _F(3), _F(-3), _F(1, 3), _F(2, 3), _F(1, 4), _F(3, 4), _F(-1, 4), _F(4), _F(9), _F(-4), + _F(10), _F(-10), _F(1, 10), _F(1, 7), _F(22, 7), _F(3, 2), _F(5, 4), _F(100), _F(-100), _F(10 ** 12), + _F(1, 2 ** 40), _F(355, 113), _F(-7, 3), _F(2 ** 31), _F(-(2 ** 31)), _F(999999, 1000000), + _F(1000001, 1000000), _F(9, 4), _F(1, 9), _F(8), _F(27), _F(-1, 1000)] +_INT_POOL = [0, 1, -1, 2, -2, 10 ** 6, -10 ** 6, 3, -3, 7, -7, 10, -10, 100, -100, 2 ** 31 - 1, -(2 ** 31), + 2 ** 63, -(2 ** 63), 12, 60, -60, 1000, -1000] +_NAT_POOL = [0, 1, 2, 3, 4, 5, 10 ** 6, 6, 7, 8, 9, 10, 16, 31, 32, 63, 64, 100, 127, 128, 255, 256, 1000, 1023, + 1024, 65535, 65536, 2 ** 31 - 1, 2 ** 31, 2 ** 32, 2 ** 63, 10 ** 18, 12, 24, 60] +_POOLS = {'Real': _REAL_POOL, 'Rat': _REAL_POOL, 'Int': _INT_POOL, 'Nat': _NAT_POOL} +_DIAGONAL = 8 # structured points first: every variable takes pool[i] for i < _DIAGONAL +_DRAW_RETRIES = 24 # redraws of one variable against the hypotheses it completes +_MAX_ATTEMPTS_PER_SAMPLE = 16 + + +def _fmt(v) -> str: + if isinstance(v, Fraction): + return str(v.numerator) if v.denominator == 1 else f'{v.numerator}/{v.denominator}' + return str(v) + + +# Finite-model sampling: carrier sizes, weights, tables and subsets. n = 1 is the degenerate model every +# statement must survive; n ≤ 4 keeps 2^n subset enumeration and witness printing small. +_MODEL_SIZES = [1, 2, 2, 3, 1, 3, 4, 2] +_WEIGHT_POOL = [_F(1), _F(0), _F(1, 2), _F(1, 3), _F(2), _F(1, 4), _F(3, 4), _F(1, 10 ** 6), _F(10 ** 6), _F(1, 8), _F(5), _F(3)] +_TABLE_POOL = [_F(0), _F(1), _F(-1), _F(1, 2), _F(2), _F(-2), _F(10), _F(1, 10), _F(3), _F(-1, 2), _F(10 ** 6), + _F(1, 10 ** 6), _F(999999, 1000000), _F(4), _F(9), _F(1, 4), _F(22, 7), _F(-3)] + + +def _structured_model_value(kind, i, n, probability): + """The i-th structured model value of a kind on a carrier of size n (deterministic, no RNG).""" + if kind == 'Measure': + if probability: + return Meas(tuple(ENN(Fraction(1, n)) for _ in range(n))) + w = [_F(1), _F(1, 2), _F(2), _F(0), _F(1), _F(1, 3), _F(10 ** 6), _F(1)][i % 8] + return Meas(tuple(ENN(w) for _ in range(n))) + if kind == 'Func': + c = [_F(1), _F(0), _F(-1), _F(1, 2), _F(2), _F(-2), _F(10), _F(1, 10)][i % 8] + return Func(tuple(c + (k if i % 3 == 2 else 0) for k in range(n))) + if kind == 'Set': + return [frozenset(range(n)), frozenset(), frozenset(range(n)), frozenset([0]), frozenset(range(n)), + frozenset(range(1, n)), frozenset([0]), frozenset(range(n))][i % 8] + raise Unsupported(f'model kind {kind}') + + +def _neighbour_model_value(base, rng: random.Random): + """A value next to an already drawn one of the same kind: the same table with one entry moved by a + pathological amount (or unchanged), a subset with one point flipped, a measure with one weight moved. + Perturbation statements (`∫ |W - V| ∂μ ≤ δ`) are tight exactly there.""" + deltas = [_F(0), _F(1, 10 ** 6), _F(-1, 10 ** 6), _F(1), _F(-1), _F(1, 2), _F(-1, 2), _F(10)] + if isinstance(base, Func): + table = list(base.table) + if table: + i = rng.randrange(len(table)) + d = rng.choice(deltas) + table[i] = table[i] + d if not isinstance(table[i], ENN) else table[i] + _enn(abs(d)) + return Func(tuple(table), base.codomain) + if isinstance(base, frozenset): + return base + if isinstance(base, Meas): + w = list(base.weights) + if w: + i = rng.randrange(len(w)) + d = rng.choice(deltas) + if not w[i].inf and w[i].value + d >= 0: + w[i] = ENN(w[i].value + d) + return Meas(tuple(w)) + return base + + +def _random_model_value(kind, rng: random.Random, n, probability): + if kind == 'Measure': + for _ in range(16): + w = [rng.choice(_WEIGHT_POOL) if rng.random() < 0.8 else Fraction(rng.randint(0, 10 ** 6), rng.randint(1, 10 ** 3)) + for _ in range(n)] + total = sum(w) + if probability: + if total == 0: + continue + w = [x / total for x in w] + return Meas(tuple(ENN(x) for x in w)) + return Meas(tuple(ENN(Fraction(1, n)) for _ in range(n))) + if kind == 'Func': + r = rng.random() + if r < 0.2: + c = rng.choice(_TABLE_POOL) + return Func(tuple(c for _ in range(n))) + return Func(tuple(rng.choice(_TABLE_POOL) if rng.random() < 0.8 else _random_value(rng, 'Real') for _ in range(n))) + if kind == 'Set': + r = rng.random() + if r < 0.15: + return frozenset(range(n)) + if r < 0.3: + return frozenset() + return frozenset(i for i in range(n) if rng.random() < 0.5) + raise Unsupported(f'model kind {kind}') + + +def _coerce_sample(v, typ): + """A pool value as a sample of ``typ`` (None when it is not representable there).""" + if typ in _FIELD_TYPES: + return Fraction(v) + if isinstance(v, Fraction): + if v.denominator != 1: + return None + v = v.numerator + if typ == 'Nat' and v < 0: + return None + return int(v) + + +def _random_value(rng: random.Random, typ): + k = rng.randint(1, 9) + num = rng.randint(-10 ** k, 10 ** k) + if typ in _FIELD_TYPES: + den = rng.randint(1, 10 ** rng.randint(0, 6)) + return Fraction(num, den) + return abs(num) if typ == 'Nat' else num + + +def _split_conjuncts(node): + if isinstance(node, BinOp) and node.op == '∧': + return _split_conjuncts(node.left) + _split_conjuncts(node.right) + return [node] + + +def _boundary_candidates(var: str, typ: str, hyps: list, ev: Evaluator, env: dict, var_names: set) -> list: + """Exact values at and next to the boundaries that the hypotheses give ``var`` once every other + variable they mention is assigned: `c ≤ x`, `x < c`, `x = c`, `x ≠ c`, `|x - e| ≤ c` (and `|e - x|`).""" + out = [] + eps = [Fraction(0), Fraction(1), Fraction(-1), Fraction(1, 10 ** 6), Fraction(-1, 10 ** 6)] if typ in _FIELD_TYPES \ + else [0, 1, -1] + + def closed(node): + return all(v in env for v in _free_vars(node) & var_names) + + def value(node): + try: + v = ev.num(node, env, typ) + except Unsupported: + return None + if isinstance(v, (list, tuple, bool, Alg)): + return None + return v + + def centre(node, other): + # node is `|x - e|` or `|e - x|`: candidates e ± other + if isinstance(node, App) and isinstance(node.fn, Var) and node.fn.name == 'abs' and len(node.args) == 1 \ + and isinstance(node.args[0], BinOp) and node.args[0].op == '-': + l, r = node.args[0].left, node.args[0].right + e = r if isinstance(l, Var) and l.name == var else (l if isinstance(r, Var) and r.name == var else None) + if e is not None and closed(e) and closed(other): + ev_, ov = value(e), value(other) + if ev_ is not None and ov is not None: + return [ev_ + ov, ev_ - ov, ev_] + return [] + + for hyp in hyps: + for h in _split_conjuncts(hyp): + if not (isinstance(h, BinOp) and h.op in ('≤', '<', '≥', '>', '=', '≠')): + continue + for side, other in ((h.left, h.right), (h.right, h.left)): + if isinstance(side, Var) and side.name == var and closed(other): + c = value(other) + if c is not None: + out.extend(c + e for e in eps) + else: + out.extend(centre(side, other)) + seen, uniq = set(), [] + for v in out: + v = _coerce_sample(v, typ) + if v is not None and v not in seen: + seen.add(v) + uniq.append(v) + return uniq + + +def _evaluate_sampled(module: Module, thm: Theorem, seed: int, samples: int) -> EvalResult: + variables = [(b.name, b.type) for b in thm.binders if b.kind == 'var'] + hyps = [b.type for b in thm.binders if b.kind == 'hyp'] + ev = Evaluator(module) + rng = random.Random(seed) + accepted, rejected, infeasible, draws = 0, 0, 0, 0 + seen = set() + probes = [] + model = any(t in _MODEL_KINDS for _, t in variables) + if model: + conjuncts = _split_conjuncts(thm.statement) + if all(isinstance(c, App) and isinstance(c.fn, Var) and c.fn.name in _STRUCTURAL_PREDICATES for c in conjuncts): + names = sorted({c.fn.name for c in conjuncts}) + return EvalResult('UNSUPPORTED', f'conclusion is a structural predicate {names}: trivial on finite discrete ' + 'models (every set is measurable, every function measurable and integrable), so sampling ' + 'has no content here', 0, False, [], []) + probability = {h.args[0].name for h in hyps if isinstance(h, App) and isinstance(h.fn, Var) + and h.fn.name == 'IsProbabilityMeasure' and len(h.args) == 1 and isinstance(h.args[0], Var)} + try: + if not variables: + # hypotheses only: a closed statement under closed hypotheses + for h in hyps: + if not ev.prop(h, {}): + return EvalResult('UNSUPPORTED', 'no sample satisfied the hypotheses: a closed hypothesis is false ' + '(the theorem is vacuous, A5)', 0, True, [], ev.values_seen, + {'seed': seed, 'draws': 0, 'accepted': 0, 'rejected': 1}) + return evaluate_theorem(module, dataclasses.replace(thm, binders=[])) + + var_names = {n for n, _ in variables} + + def hyps_completed_by(index): + # the hypotheses whose last sampled variable (in declaration order) is variables[index] + name = variables[index][0] + later = {n for n, _ in variables[index + 1:]} + return [h for h in hyps if name in _free_vars(h) and not (_free_vars(h) & later)] + + completed = [hyps_completed_by(i) for i in range(len(variables))] + for h in hyps: + if not (_free_vars(h) & var_names) and not ev.prop(h, {}): + return EvalResult('UNSUPPORTED', 'no sample satisfied the hypotheses: a closed hypothesis is false ' + '(the theorem is vacuous, A5)', 0, True, [], ev.values_seen, + {'seed': seed, 'draws': 0, 'accepted': 0, 'rejected': 1}) + + def hyps_hold(hs, env): + try: + return all(ev.prop(h, env) for h in hs) + except Infeasible: + return False + + def draw(index, env): + name, typ = variables[index] + if typ in _MODEL_KINDS: + others = [env[n].value for n, t in variables[:index] if t == typ and n in env] if typ != 'Measure' else [] + for _ in range(_DRAW_RETRIES): + if others and rng.random() < 0.4: + v = _neighbour_model_value(rng.choice(others), rng) # W near (or equal to) V + else: + v = _random_model_value(typ, rng, ev.model_n, name in probability) + env[name] = Bound(v, typ) + if hyps_hold(completed[index], env): + return True + return False + pool = _POOLS[typ] + boundaries = _boundary_candidates(name, typ, hyps, ev, env, var_names) + for _ in range(_DRAW_RETRIES): + r = rng.random() + if boundaries and r < 0.35: + v = rng.choice(boundaries) + elif r < 0.75: + v = _coerce_sample(rng.choice(pool), typ) + if v is None: + continue + else: + v = _random_value(rng, typ) + env[name] = Bound(v, typ) + if hyps_hold(completed[index], env): + return True + return False + + def check(env): + nonlocal accepted, rejected, infeasible, draws + draws += 1 + key = (ev.model_n,) + tuple(env[n].value for n, _ in variables) + if key in seen: + return None + seen.add(key) + try: + ok = ev.prop(thm.statement, env) + except Infeasible: + infeasible += 1 + return None + accepted += 1 + return ok + + def refuted(env): + witness = ', '.join(f'{n} = {_fmt_value(env[n].value)}' for n, _ in variables) + if model: + witness = f'Ω = Fin {ev.model_n}, ' + witness + detail = (f'refuted at {witness} (sample {draws}; {accepted - 1} sampled instances held before it); ' + 'the hypotheses hold at the witness') + record = {n: _fmt_value(env[n].value) for n, _ in variables} + if model: + record['Ω'] = f'Fin {ev.model_n}' + return EvalResult('FAIL', detail, accepted, False, probes, ev.values_seen, + {'seed': seed, 'draws': draws, 'accepted': accepted, 'rejected': rejected, + 'infeasible': infeasible, 'witness': record}) + + # structured points: every variable takes the i-th pool value (and the i-th carrier size) + for i in range(_DIAGONAL): + env = {} + if model: + ev.model_n = _MODEL_SIZES[i] + for name, typ in variables: + if typ in _MODEL_KINDS: + env[name] = Bound(_structured_model_value(typ, i, ev.model_n, name in probability), typ) + continue + v = _coerce_sample(_POOLS[typ][i], typ) + if v is None: + break + env[name] = Bound(v, typ) + if len(env) != len(variables): + continue + if not hyps_hold(hyps, env): + rejected += 1 + continue + ok = check(env) + if ok is False: + return refuted(env) + # hypothesis-directed random samples + attempts = 0 + while accepted < samples and attempts < samples * _MAX_ATTEMPTS_PER_SAMPLE: + attempts += 1 + env = {} + if model: + ev.model_n = rng.choice(_MODEL_SIZES) + if not all(draw(i, env) for i in range(len(variables))): + rejected += 1 + continue + ok = check(env) + if ok is False: + return refuted(env) + # information only (A6): the conclusion at hypothesis boundaries the hypotheses exclude + for name, typ in variables: + if len(probes) >= 8 or model: + break + env = {n: Bound(_coerce_sample(_POOLS[t][1], t), t) for n, t in variables} + for v in _boundary_candidates(name, typ, hyps, ev, env, var_names): + env[name] = Bound(v, typ) + try: + if all(ev.prop(h, env) for h in hyps): + continue + holds = ev.prop(thm.statement, env) + except Unsupported: + continue + probes.append({'var': name, 'value': _fmt(v), 'holds': holds, 'outside_hypotheses': True}) + if len(probes) >= 8: + break + sampling = {'seed': seed, 'draws': draws, 'accepted': accepted, 'rejected': rejected, 'infeasible': infeasible} + if accepted == 0: + why = 'every drawn instance was infeasible to evaluate exactly' if infeasible and not rejected else \ + 'the hypotheses may be unsatisfiable (vacuous, A5) or outside what the sampler can hit' + return EvalResult('UNSUPPORTED', f'no sample satisfied the hypotheses and evaluated ({draws + rejected} draws): {why}', + 0, False, probes, ev.values_seen, sampling) + detail = (f'holds on {accepted} sampled instances satisfying the hypotheses ({rejected} draws rejected by the ' + f'hypotheses, {infeasible} infeasible, seed {seed}): sampling is admitted evidence of the statement, ' + 'not a proof of it') + return EvalResult('CORROBORATED', detail, accepted, False, probes, ev.values_seen, sampling) + except Unsupported as e: + return EvalResult('UNSUPPORTED', str(e), 0, False, [], ev.values_seen) + except _EVAL_ERRORS as e: + return EvalResult('UNSUPPORTED', f'evaluation error: {type(e).__name__}: {e}', 0, False, [], ev.values_seen) + + +# -------------------------------------------------------------------------------------------- +# Mutation self-test (A8): every guaranteed-false mutant of a PASS statement must be reported FAIL +# -------------------------------------------------------------------------------------------- + +_NEGATE = {'=': '≠', '≠': '=', '<': '≥', '≥': '<', '≤': '>', '>': '≤'} +_WEAKEN = {'<': '≤', '>': '≥'} + + +def _walk_comparisons(stmt, visit): + """Call ``visit(node, rebuild)`` for every comparison reachable through ∧, → (consequent) and ∀.""" + def walk(node, rebuild): + if isinstance(node, Forall): + walk(node.body, lambda b: rebuild(Forall(node.var, node.type, node.domain, b))) + elif isinstance(node, BinOp) and node.op == '∧': + walk(node.left, lambda l: rebuild(BinOp(node.op, l, node.right))) + walk(node.right, lambda r: rebuild(BinOp(node.op, node.left, r))) + elif isinstance(node, BinOp) and node.op == '→': + walk(node.right, lambda r: rebuild(BinOp(node.op, node.left, r))) + elif isinstance(node, BinOp) and node.op in _NEGATE: + visit(node, rebuild) + walk(stmt, lambda s: s) + + +def required_mutants(stmt, typing=None): + """Class 1 — guaranteed-false mutants: false whenever the original is true. A comparison replaced by + its negation (one conjunct at a time), and the right-hand literal of an equality shifted by one — only + where the left-hand side is numeric (``typing(node)``): `weightedLaw μ W = 0` compares measures, and + `= 1` there is not a Lean term. Every one of these must be reported FAIL.""" + out = [] + + def visit(node, rebuild): + out.append((f'negate {node.op}', rebuild(BinOp(_NEGATE[node.op], node.left, node.right)))) + if node.op == '=' and isinstance(node.right, Num): + t = typing(node.left) if typing is not None else None + if t not in ('Measure', 'Set', 'Func', 'Prop', 'Point'): + out.append(('shift rhs literal +1', rebuild(BinOp('=', node.left, Num(node.right.value + 1))))) + _walk_comparisons(stmt, visit) + return out + + +def _static_typing(module: Module, thm: Theorem): + """A best-effort type oracle for mutant generation: the theorem's binders as placeholder values.""" + ev = Evaluator(module) + env = {} + for b in thm.binders: + if b.kind == 'var': + placeholder = Func((), 'Real') if b.type == 'Func' else None + env[b.name] = Bound(placeholder, b.type) + + def typing(node): + try: + return ev.arith_type(node, env) + except Unsupported: + return None + return typing + + +def weakening_mutants(stmt): + """Class 2 — truth-preserving weakenings (`<`→`≤`, `>`→`≥`): true whenever the original is true, so + every one of these must still be reported PASS; a rejection is an evaluator defect, not a kill + (Codex finding main#684/6510829073).""" + out = [] + + def visit(node, rebuild): + if node.op in _WEAKEN: + out.append((f'weaken {node.op} to {_WEAKEN[node.op]}', rebuild(BinOp(_WEAKEN[node.op], node.left, node.right)))) + _walk_comparisons(stmt, visit) + return out + + +def mutation_selftest(module: Module, evaluate=evaluate_theorem): + """Harness control (unmutated set PASS or CORROBORATED) + class 1 (must FAIL) + class 2 (must hold). An + UNSUPPORTED or errored mutant is a survivor / a rejection, never a kill. Mutants keep the theorem's + binders: a class-1 mutant of a sampled statement is false at every instance, so sampling must refute it; + a class-2 weakening stays true at every instance, so sampling must not.""" + baseline = [(t, evaluate(module, t)) for t in module.theorems] + control_passed = all(r.status in HOLDS for _, r in baseline) + mutants = weakenings = 0 + survivor_list, rejected = [], [] + for thm, res in baseline: + if res.status not in HOLDS or thm.statement is None: + continue + for label, mutated in required_mutants(thm.statement, _static_typing(module, thm)): + mutants += 1 + r = evaluate(module, dataclasses.replace(thm, statement=mutated, error=None)) + if r.status != 'FAIL': + survivor_list.append({'theorem': thm.name, 'mutant': label, 'status': r.status}) + for label, mutated in weakening_mutants(thm.statement): + weakenings += 1 + r = evaluate(module, dataclasses.replace(thm, statement=mutated, error=None)) + if r.status not in HOLDS: + rejected.append({'theorem': thm.name, 'mutant': label, 'status': r.status}) + return {'theorems': len(baseline), 'control_passed': control_passed, + 'mutants': mutants, 'killed': mutants - len(survivor_list), 'survivors': survivor_list, + 'weakenings': weakenings, 'weakenings_rejected': rejected, + 'harness_ok': control_passed and not survivor_list and not rejected and mutants > 0} + + +def declared_controls(source: str, module_rel: str, controls: dict): + """Class 3 — the manifest's declared negative controls: `replace`→`with` text edits whose falsity the + package records. Each edit that changes a theorem *statement* must evaluate FAIL; an edit elsewhere + (proof text, an injected `sorry` or axiom) is classified non-statement and not evaluated here.""" + base = parse_module(source) + base_by_name = {t.name: t.text for t in base.theorems} + out = {} + for name, ctl in controls.items(): + if ctl.get('module') != module_rel: + continue + if source.count(ctl['replace']) != 1: + out[name] = {'class': 'inapplicable', 'detail': f"replacement text occurs {source.count(ctl['replace'])} times"} + continue + mutated_src = source.replace(ctl['replace'], ctl['with']) + mutated = parse_module(mutated_src) + changed = [t for t in mutated.theorems if base_by_name.get(t.name) != t.text] + if len(changed) != 1: + out[name] = {'class': 'non-statement', 'detail': 'the edit changes no theorem statement' if not changed + else 'the edit changes several statements'} + continue + res = evaluate_theorem(mutated, changed[0]) + out[name] = {'class': 'statement', 'theorem': changed[0].name, 'status': res.status, 'detail': res.detail} + statement = [v for v in out.values() if v['class'] == 'statement'] + out['_summary'] = {'statement_controls': len(statement), + 'all_statement_controls_fail': bool(statement) and all(v['status'] == 'FAIL' for v in statement), + 'non_statement_controls': sum(1 for v in out.values() if v.get('class') == 'non-statement')} + return out + + +# -------------------------------------------------------------------------------------------- +# Package check against the manifest +# -------------------------------------------------------------------------------------------- + +def _sha256(path: pathlib.Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def check_package(root, selftest=False, seed=1, samples=64, admit_corroborated=False): + """Exit 0 only when every registered target is PASS — or, with ``admit_corroborated`` (CLI + ``--admit-corroborated``), PASS or CORROBORATED — and nothing is unregistered or fails the self-test. + The registered G12 contract (GOVERNANCE.md) is the strict form; the admitting form is for packages whose + statements carry sampled binders and is recorded in the report as ``admit_corroborated``.""" + root = pathlib.Path(root) + manifest_path = root / 'manifest.json' + manifest = json.loads(manifest_path.read_text()) + modules = {} + module_hashes = {} + for rel in manifest.get('source_modules', []): + p = root / rel + module_hashes[rel] = _sha256(p) + modules[rel] = parse_module(p.read_text(encoding='utf-8')) + # a package's modules import one another: definitions and carrier types are visible package-wide + shared_defs, shared_points = {}, set() + for m in modules.values(): + for name, d in m.defs.items(): + shared_defs.setdefault(name, d) + shared_points |= m.point_types + for m in modules.values(): + m.defs = shared_defs + m.point_types = shared_points + per_target = {} + counts = {} + selftests = {} + normalized_targets = [] + for target in manifest.get('targets', []): + if isinstance(target, str): + rel = next((r for r, m in modules.items() if any(t.name == target for t in m.theorems)), None) + normalized_targets.append({'name': target, 'module': rel}) + else: + normalized_targets.append({'name': target['name'], 'module': target.get('module')}) + for target in normalized_targets: + name, rel = target['name'], target['module'] + module = modules.get(rel) + thm = None if module is None else next((t for t in module.theorems if t.name == name), None) + if thm is None: + res = EvalResult('UNSUPPORTED', f'target {name} not found in {rel}', 0, False, [], []) + else: + res = evaluate_theorem(module, thm, seed, samples) + per_target[name] = {'module': rel, 'status': res.status, 'detail': res.detail, 'instances': res.instances, + 'vacuous': res.vacuous, 'probes': res.probes, + 'float_free': not any(isinstance(v, float) for v in res.values)} + if res.sampling is not None: + per_target[name]['sampling'] = res.sampling + counts[res.status] = counts.get(res.status, 0) + 1 + unregistered = [] + registered = {t['name'] for t in normalized_targets} + for rel, module in modules.items(): + for t in module.theorems: + if t.name not in registered: + unregistered.append(t.name) + controls_report = {} + if selftest: + for rel, module in modules.items(): + selftests[rel] = mutation_selftest(module) + nc = manifest.get('negative_controls') or {} + if isinstance(nc, dict): + for rel in modules: + rep = declared_controls((root / rel).read_text(encoding='utf-8'), rel, nc) + for k, v in rep.items(): + if k != '_summary': + controls_report[k] = v + statement_controls = [v for v in controls_report.values() if v.get('class') == 'statement'] + controls_ok = all(v['status'] == 'FAIL' for v in statement_controls) + else: + controls_ok = True + allowed = set(HOLDS) if admit_corroborated else {'PASS'} + exit_code = 0 if counts and set(counts) <= allowed and not unregistered and controls_ok and all( + s['harness_ok'] for s in selftests.values()) else 1 + sampled = {name: r['sampling'] for name, r in per_target.items() if r.get('sampling')} + sampling_totals = { + 'sampled_targets': len(sampled), + 'accepted_total': sum(x.get('accepted', 0) for x in sampled.values()), + 'rejected_total': sum(x.get('rejected', 0) for x in sampled.values()), + 'infeasible_total': sum(x.get('infeasible', 0) for x in sampled.values()), + # a8 (742/5728819617 nit 1): an infeasible draw is skipped, never approximated — say where it happened + 'targets_with_infeasible_draws': sorted(n for n, x in sampled.items() if x.get('infeasible', 0))} + return {'package_root': str(root), 'manifest_sha256': _sha256(manifest_path), 'module_sha256': module_hashes, + 'targets': len(per_target), 'status_counts': counts, 'per_target': per_target, + 'unregistered_theorems': unregistered, 'manifest_targets': normalized_targets, + 'sampling': {'seed': seed, 'samples': samples, 'admit_corroborated': admit_corroborated}, + 'sampling_totals': sampling_totals, + 'selftest': selftests, 'declared_controls': controls_report, 'exit_code': exit_code, + 'note': ('G12 empirical statement check: PASS means the closed statement, read independently of Lean, ' + 'evaluates true in exact arithmetic; CORROBORATED means no sampled instance of a statement with ' + 'binders refuted it (admitted evidence, never a proof); neither is kernel evidence. FAIL names an ' + 'exact witness. UNSUPPORTED is fail-closed.')} + + +def main(argv=None): + ap = argparse.ArgumentParser(description=__doc__.split('\n\n')[0]) + ap.add_argument('--package', required=True, help='formal package root containing manifest.json') + ap.add_argument('--json', help='write the full report here') + ap.add_argument('--selftest', action='store_true', help='also run the mutation self-test per module') + ap.add_argument('--seed', type=int, default=1, help='seed of the deterministic sampler for binders before the colon') + ap.add_argument('--samples', type=int, default=64, help='hypothesis-satisfying instances to test per sampled statement') + ap.add_argument('--admit-corroborated', action='store_true', + help='exit 0 when every target is PASS or CORROBORATED (default: PASS only, the registered contract)') + a = ap.parse_args(argv) + report = check_package(a.package, selftest=a.selftest, seed=a.seed, samples=a.samples, + admit_corroborated=a.admit_corroborated) + if a.json: + pathlib.Path(a.json).write_text(json.dumps(report, indent=1, default=str) + '\n') + summary = {k: report[k] for k in ('package_root', 'targets', 'status_counts', 'unregistered_theorems', 'sampling', + 'sampling_totals', 'exit_code')} + if a.selftest: + summary['selftest'] = {rel: {k: v for k, v in s.items() if k not in ('survivors', 'weakenings_rejected')} + | {'survivors': len(s['survivors']), 'weakenings_rejected': len(s['weakenings_rejected'])} + for rel, s in report['selftest'].items()} + dc = report['declared_controls'] + summary['declared_controls'] = { + 'statement_controls_fail': [k for k, v in dc.items() if v.get('class') == 'statement' and v['status'] == 'FAIL'], + 'statement_controls_not_failing': [k for k, v in dc.items() if v.get('class') == 'statement' and v['status'] != 'FAIL'], + 'non_statement_controls': [k for k, v in dc.items() if v.get('class') == 'non-statement']} + print(json.dumps(summary, indent=1)) + for name, r in report['per_target'].items(): + if r['status'] != 'PASS': + print(f"{r['status']}: {name}: {r['detail']}") + return report['exit_code'] + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/cbz_drift/README.md b/tools/cbz_drift/README.md new file mode 100644 index 000000000..b36cdae28 --- /dev/null +++ b/tools/cbz_drift/README.md @@ -0,0 +1,115 @@ +# Federation drift crawler + +CBZ-0 addendum tool: the dynamic federation drift crawler. It uses the standard library +only. Its gate is G7 (pins consistent), extended to interface consistency. + +``` +python3 -B -S tools/cbz_drift/crawl.py --seed d6g8k5htny-coder/Universal-Law-Workspace \ + --search DIR [--search DIR2] [--clone-into DIR] [--fetch] [--at pins|tips] \ + [--override OWNER/NAME=REV] [--seed-ref REV] [--json REPORT] +``` + +Exit status: 0 no BLOCK finding, 1 at least one BLOCK, 2 usage or internal error. + +## What it discovers + +Only the seed is named on the command line. The crawler reads the seed's +`.gitmodules`, gitlinks, `pins.json` and `workspace/repositories.json`, then: + +- each registry named under `canonical_inputs` (today the meta-framework + `registry.json`), resolving artifact `repository` keys through the registry's own map; +- every Lean package (`lakefile.lean` / `lakefile.toml`) in every reached repository; +- every `lake-manifest.json` dependency on a repository of the federation's owners + (those of the seed and of every repository the records list). Others, such as + mathlib, are counted as external edges and are not crawled. + +It does this as a breadth-first fixed point: every reached repository's own records, +canonical inputs and lake manifests are read in turn until nothing new appears, and +every reached repository is then validated and scanned once. A repository is read at +one ref: an override, else the first pin met in breadth-first order, else its default +tip. With `--fetch`, each repository is refreshed from origin first, so a default tip +is the remote's current one. + +So a rename, addition or removal in those records changes the crawl with no code +change. `--search` directories are scanned for clones by their `origin` URL. With +`--clone-into`, a discovered repository that no search directory holds is cloned, so +a CI job needs only the seed. A repository it still cannot read is a BLOCK finding, +never a skip. The one exception is a repository its own records mark opt-in +(`update = none` / `opt_in`), which is INFO. + +## What it checks + +The rule: **two records that claim the same identity must agree (BLOCK); a record may +lag a moving tip (INFO).** + +| Code | Level | Meaning | +|---|---|---| +| `PIN-SOURCES` | BLOCK | gitlink, `.gitmodules`, `pins.json` and `repositories.json` disagree, or one of them lacks a repository the others list | +| `PIN-MISSING` | BLOCK | a pinned or recorded commit is absent (`--fetch` consults origin) | +| `PIN-OFFLINE` | BLOCK | a pin is not an ancestor of its repository's default tip; on a shallow clone it says ancestry cannot be decided | +| `PIN-STALE` | INFO | a pin is behind the default tip | +| `UNRESOLVED` | BLOCK | a discovered repository cannot be read | +| `REGISTRY-BYTES` | BLOCK | a registry artifact's size or SHA-256 differs at its recorded commit, or the path is absent | +| `REGISTRY-EVOLVED` | INFO | the artifact differs, or is gone, at the crawled ref | +| `INPUT-OBSERVED` | INFO | a canonical input's recorded blob differs at the crawled ref | +| `LEAN-DRIFT` | BLOCK | one fully qualified Lean declaration has different interfaces in two crawled locations | +| `LEAN-SYNTAX` | BLOCK | a Lean file cannot be lexed, or its `namespace`/`section`/`end` do not balance | +| `LEAN-EVIDENCE` | INFO | Lean files under an evidence directory (a path segment `evidence` or `*-evidence`) are frozen copies — sealed checker inputs, snapshots of earlier commits, mutation controls — and are counted but not compared | +| `LAKE-DEP` | INFO | a lake dependency on a crawled repository pins a present, different full commit id (any other rev, such as an absent, empty, short or floating one like a branch or tag, is `PIN-MISSING`; a git package with no repository URL, a package that is neither git nor path, and a `packages` value that is not a list are `MALFORMED`) | +| `PIN-DIVERGENT` | INFO | two reached repositories pin one repository differently; the first in breadth-first order is read | +| `FETCH-FAILED` | BLOCK | `--fetch` could not refresh a repository, so its tips are not current | +| `TOOLCHAIN` | INFO | Lean packages that share declarations use different `lean-toolchain`s | +| `MALFORMED` | BLOCK | a manifest exists but cannot be parsed | + +`--at pins` (the default) reads each pinned repository at its pin, which is the +federation snapshot. `--at tips` reads default tips. `--override` puts a candidate head +in place of one repository's ref: that is how a PR is tested against the rest of the +federation (see `.github/workflows/cbz-federation-drift.yml`). + +## Domain and limits (B-006) + +`lean_decls.py` extracts declarations written literally in source: +- `theorem`, `lemma`, `def`, `abbrev`, named `instance`, `axiom`, `opaque`, `structure`, + `class` and `inductive`; +- with their modifiers, qualified by `namespace` / `section`. + +The compared **interface** is: +- for a theorem, lemma, axiom or opaque: its statement (proofs are irrelevant, and + opaque values are hidden); +- for anything definition-like: statement plus value, because the value is part of + its meaning. + +The interface also carries its **context**: the `open`, `variable`, `universe`, `export`, +`include` and `omit` commands in scope (file level, enclosing `namespace` and `section` +blocks, and any `open … in` or `variable … in` prefix of the declaration). So the same +statement text under `variable (x : Nat)` and under `variable (x : Int)`, or under +`open Real` and `open NNReal`, is drift. A variable the statement does not use still +counts, which errs toward reporting drift. Notation, macros and `set_option` are not +tracked. Inside a declaration, `open … in` and `set_option … in` stay in its value +unless they start a line that is not indented deeper than the declaration, and +`mutual … end` is a scope. + +Comments are removed and whitespace is normalized. Equal interfaces mean equal source +text, not equal elaborated terms. The extractor does not elaborate, expand notation or +macros, or see generated declarations. `private` names are file-local and are never +compared. Two copies that differ only by an alpha-renamed binder are reported as drift; +that is the safe direction, since named arguments are part of the interface. Kernel +closure and axiom dependencies stay with G2–G4. + +## Verification + +`tests/test_cbz_drift.py` runs every check against a synthetic git federation built in +a temporary directory, covering both positive and negative cases. That includes: +- topology changes (added, removed and registry-only repositories, and lake edges); +- shallow clones; +- clone-on-demand; +- candidate-head overrides. + +`ScannerMutationTests` applies 61 source mutants. Each one must be killed by its own +designated test, failing by assertion (`FAILED (failures=N)` with no errors). Every +mutant must apply exactly once and must compile, and the unmutated copy must pass +every designated test, as the harness control. + +``` +cd tests && python3 -B -m unittest test_cbz_drift && python3 -B -O -m unittest test_cbz_drift +``` diff --git a/tools/cbz_drift/crawl.py b/tools/cbz_drift/crawl.py new file mode 100644 index 000000000..cf47050a9 --- /dev/null +++ b/tools/cbz_drift/crawl.py @@ -0,0 +1,710 @@ +#!/usr/bin/env python3 +"""Federation drift crawler (CBZ-0 addendum: dynamic federation drift crawler). + +Discovers the federation at run time from a seed repository and blocks on drift between +records that claim the same identity. Nothing about the topology is hardcoded: targets +come from the seed's `.gitmodules`, gitlinks, `pins.json` and +`workspace/repositories.json`, from any repository registry those name under +`canonical_inputs` (artifact `repository` keys are resolved through the registry's own +`repositories` map), and from every `lake-manifest.json` dependency whose URL resolves to +a repository of the federation's owners. This is a breadth-first fixed point: the records +of every reached repository are read in turn until nothing new appears. Lake dependencies +outside the owners named by those records (for example mathlib) are counted as external +edges and not crawled. A rename, addition or removal in those records changes the crawl +with no code change. + +Findings. BLOCK means two records that claim the same identity disagree, or something the +crawl must read is missing or malformed; the exit status is then 1. INFO means a record +differs from a moving tip (a stale pin, an artifact that has evolved since its recorded +commit, different Lean toolchains); it never fails the run. + + PIN-SOURCES .gitmodules, gitlink, pins.json and repositories.json disagree BLOCK + PIN-MISSING a pinned commit is not present in its repository BLOCK + PIN-OFFLINE a pinned commit is not an ancestor of the repository's default BLOCK + PIN-STALE a pinned commit is behind the default tip INFO + UNRESOLVED a discovered repository cannot be read (opt-in ones are INFO) BLOCK + REGISTRY-BYTES a registry artifact's bytes or SHA-256 differ at its commit BLOCK + REGISTRY-EVOLVED the artifact differs (or is gone) at the crawled ref INFO + INPUT-OBSERVED a canonical input's observed blob differs at the crawled ref INFO + INPUT-MISSING a declared canonical input is absent at its selected ref BLOCK + LEAN-DRIFT one fully qualified Lean declaration has different interfaces BLOCK + in two crawled locations (see lean_decls for the exact domain) + LEAN-SYNTAX a Lean file could not be lexed or its scopes do not balance BLOCK + LEAN-EVIDENCE Lean files under an evidence directory are frozen copies, not INFO + compared (sealed checker inputs, snapshots, mutation controls) + LAKE-DEP a lake dependency on a crawled repository pins another rev INFO + PIN-DIVERGENT two reached repositories pin one repository differently INFO + FETCH-FAILED --fetch could not refresh a repository, so its tips are not current BLOCK + TOOLCHAIN Lean packages that share declarations use different toolchains INFO + MALFORMED a manifest exists but cannot be parsed BLOCK + +Repositories are read from local git object stores only, found by matching each +candidate directory's `origin` URL. `--fetch` refreshes each repository from origin +first, so a default tip is the remote's current one (failure is FETCH-FAILED), and fetches +missing commits; `--clone-into DIR` clones a discovered repository that no search directory +holds (so a CI job needs only the seed). The crawl reads each repository at one ref: the seed at `--seed-ref`, every +pinned repository at its pin (`--at pins`, the default) or at its default tip +(`--at tips`), and `--override NAME=REV` replaces one repository's ref (to test a +candidate head against the rest of the federation). + +Standard library only. Exit: 0 no BLOCK, 1 BLOCK findings, 2 usage or internal error. +""" +from __future__ import annotations + +import argparse +import collections +import hashlib +import json +import os +import pathlib +import re +import subprocess +import sys + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import lean_decls # noqa: E402 + +BLOCK, INFO = 'BLOCK', 'INFO' +# A path segment named `evidence` or ending in `-evidence` (cbz/evidence//, kernel/cbz-evidence/, +# formal-evidence/) holds frozen copies: sealed checker inputs, snapshots of earlier commits and mutation +# controls. They are deliberately different from the live sources, so they are not compared. +EVIDENCE_SEGMENT = re.compile(r'(^|/)([^/]*-)?evidence(/|$)') + + +class CrawlError(RuntimeError): + pass + + +def repo_key(url_or_name): + """Normalize a GitHub-style URL or owner/name to a lowercase 'owner/name' key.""" + s = url_or_name.strip() + s = re.sub(r'\.git/?$', '', s).rstrip('/') + m = re.search(r'(?:^|[:/])([^/:@\s]+)/([^/:@\s]+)$', s) + if m: + return ('%s/%s' % (m.group(1), m.group(2))).lower() + raise CrawlError('cannot read a repository identity from %r' % url_or_name) + + +def git(gitdir, *args, check=True, data=None): + r = subprocess.run(['git', '-C', str(gitdir), *args], input=data, capture_output=True) + if check and r.returncode: + raise CrawlError('git %s failed in %s: %s' % (' '.join(args), gitdir, r.stderr.decode(errors='replace').strip())) + return r + + +class Repo: + def __init__(self, key, gitdir, fetch=False): + self.key, self.gitdir, self.fetch = key, gitdir, fetch + self._blob_cache = {} + self.fetch_failed = None + self.shallow = git(gitdir, 'rev-parse', '--is-shallow-repository').stdout.decode().strip() == 'true' + if fetch: + # refresh, so that a default tip read later is the remote's current one, not a cached ref + args = ['fetch', '-q'] + (['--unshallow'] if self.shallow else []) + ['origin'] + r = git(gitdir, *args, check=False) + if r.returncode: + self.fetch_failed = r.stderr.decode(errors='replace').strip()[-300:] or 'git fetch failed' + else: + git(gitdir, 'remote', 'set-head', 'origin', '--auto', check=False) + self.shallow = git(gitdir, 'rev-parse', '--is-shallow-repository').stdout.decode().strip() == 'true' + + def has_commit(self, rev): + if git(self.gitdir, 'cat-file', '-e', rev + '^{commit}', check=False).returncode == 0: + return True + if self.fetch and re.fullmatch(r'[0-9a-f]{40}', rev): + git(self.gitdir, 'fetch', '-q', 'origin', rev, check=False) + return git(self.gitdir, 'cat-file', '-e', rev + '^{commit}', check=False).returncode == 0 + return False + + def resolve(self, rev): + return git(self.gitdir, 'rev-parse', '--verify', '-q', rev + '^{commit}').stdout.decode().strip() + + def default_tip(self): + r = git(self.gitdir, 'symbolic-ref', '-q', 'refs/remotes/origin/HEAD', check=False) + ref = r.stdout.decode().strip() if r.returncode == 0 else '' + for cand in ([ref] if ref else []) + ['refs/remotes/origin/main', 'refs/remotes/origin/master', 'HEAD']: + r = git(self.gitdir, 'rev-parse', '--verify', '-q', cand + '^{commit}', check=False) + if r.returncode == 0: + return r.stdout.decode().strip() + raise CrawlError('no default tip in %s' % self.gitdir) + + def where(self): + if self.fetch: + return ' (also not fetchable from origin)' + return ' (local object store%s; rerun with --fetch to consult origin)' % (', shallow clone' if self.shallow else '') + + def is_ancestor(self, a, b): + return git(self.gitdir, 'merge-base', '--is-ancestor', a, b, check=False).returncode == 0 + + def tree(self, rev): + """{path: (mode, type, sha)} for every entry at rev, recursively.""" + out = git(self.gitdir, 'ls-tree', '-r', '-z', '--full-tree', rev).stdout.decode() + entries = {} + for rec in out.split('\0'): + if rec: + meta, path = rec.split('\t', 1) + mode, typ, sha = meta.split() + entries[path] = (mode, typ, sha) + return entries + + def blob(self, sha): + if sha not in self._blob_cache: + self._blob_cache[sha] = git(self.gitdir, 'cat-file', 'blob', sha).stdout + return self._blob_cache[sha] + + def read(self, rev, path): + r = git(self.gitdir, 'cat-file', 'blob', '%s:%s' % (rev, path), check=False) + return r.stdout if r.returncode == 0 else None + + +def find_local_repos(search_dirs): + """{key: gitdir} for git repositories directly inside each search directory.""" + found = {} + for d in search_dirs: + for child in sorted(pathlib.Path(d).iterdir()): + if not child.is_dir(): + continue + if git(child, 'rev-parse', '--git-dir', check=False).returncode: + continue + if git(child, 'rev-parse', '--show-toplevel', check=False).stdout.decode().strip() != str(child.resolve()): + continue + r = git(child, 'remote', 'get-url', 'origin', check=False) + if r.returncode == 0: + try: + found.setdefault(repo_key(r.stdout.decode()), child) + except CrawlError: + pass + return found + + +def parse_gitmodules(text): + mods, cur = {}, None + for raw in text.splitlines(): + line = raw.strip() + if not line or line[0] in '#;': + continue + m = re.fullmatch(r'\[submodule\s+"([^"]+)"\]', line) + if m: + cur = mods.setdefault(m.group(1), {}) + continue + m = re.fullmatch(r'([A-Za-z]+)\s*=\s*(.*)', line) + if m and cur is not None: + cur[m.group(1).lower()] = m.group(2).strip() + else: + raise CrawlError('unparsed .gitmodules line: %r' % raw) + return mods + + +class Crawl: + def __init__(self, local, at='pins', overrides=None, fetch=False, clone_into=None): + self.local, self.at, self.overrides, self.fetch = local, at, dict(overrides or {}), fetch + self.clone_into, self.urls = clone_into, {} + self.findings, self.repos, self.refs = [], {}, {} + self.pins, self.optional, self.edges = {}, set(), [] + self.stats = collections.Counter() + self.discovered, self.canonical_inputs, self.pin_records = set(), [], [] + self.owners, self.lake_records = set(), [] + + def add(self, level, code, msg, **where): + self.findings.append(dict(where, level=level, code=code, message=msg)) + + def open(self, key, why): + if key in self.repos: + return self.repos[key] + gitdir = self.local.get(key) + if gitdir is None and self.clone_into: + gitdir = self.clone(key) + if gitdir is None: + self.repos[key] = None + self.add(INFO if key in self.optional else BLOCK, 'UNRESOLVED', + 'repository %s (%s) is not available locally' % (key, why), repo=key) + return None + self.repos[key] = Repo(key, gitdir, self.fetch) + if self.repos[key].fetch_failed: + self.add(BLOCK, 'FETCH-FAILED', 'could not refresh %s from origin, so its tips are not current: %s' % ( + key, self.repos[key].fetch_failed), repo=key) + return self.repos[key] + + def clone(self, key): + """Clone a discovered repository that no search directory holds; None if that fails.""" + url = self.urls.get(key) or 'https://github.com/%s.git' % key + dest = pathlib.Path(self.clone_into) / key.replace('/', '__') + if not dest.exists(): + r = subprocess.run(['git', 'clone', '-q', '--no-checkout', url, str(dest)], capture_output=True) + if r.returncode: + return None + try: + if repo_key(git(dest, 'remote', 'get-url', 'origin').stdout.decode()) != key: + return None + except CrawlError: + return None + self.local[key] = dest + return dest + + def ref_for(self, key, repo): + if key in self.refs: + return self.refs[key] + if key in self.overrides: + rev = self.overrides[key] + if not repo.has_commit(rev): + raise CrawlError('override %s=%s does not name a commit' % (key, rev)) + ref = repo.resolve(rev) + elif self.at == 'pins' and key in self.pins and repo.has_commit(self.pins[key]): + ref = self.pins[key] + else: + ref = repo.default_tip() + self.refs[key] = ref + return ref + + def json_at(self, repo, ref, path): + data = repo.read(ref, path) + if data is None: + return None + try: + return json.loads(data.decode('utf-8')) + except (UnicodeDecodeError, ValueError) as exc: + self.add(BLOCK, 'MALFORMED', '%s is not valid JSON: %s' % (path, exc), repo=repo.key, ref=ref, path=path) + return None + + # ------------------------------------------------------------------ topology + def seed(self, seed_key, seed_ref): + repo = self.open(seed_key, 'seed') + if repo is None: + raise CrawlError('seed repository %s is not available locally' % seed_key) + if seed_ref: + self.overrides.setdefault(seed_key, seed_ref) + self.seed_key, self.seed_ref = seed_key, self.ref_for(seed_key, repo) + self.owners.add(seed_key.split('/')[0]) + + def close_graph(self): + """Breadth-first fixed point over every record that names a repository. + + Each reached repository's own `.gitmodules`, gitlinks, `pins.json`, + `workspace/repositories.json`, canonical inputs and lake manifests are read, and + what they name is reached in turn, until nothing new appears. A repository is read + at one ref: an override, else the first pin met in breadth-first order (`--at pins`), + else its default tip. Lake dependencies outside the federation's owners (those of + the seed and of every repository its records list) are recorded as external edges + and not crawled. + """ + queue, done = collections.deque([(self.seed_key, 'seed')]), set() + while queue: + key, why = queue.popleft() + if key in done: + continue + done.add(key) + repo = self.open(key, why) + if repo is None: + continue + for new in self.expand(key, repo): + queue.append((new, 'listed by %s' % key)) + for new in self.lake_targets(key, repo): + queue.append((new, 'lake dependency of %s' % key)) + for new in self.registry_targets(key): + queue.append((new, 'registry artifact via %s' % key)) + for key, ref, lm, pkg, dep in self.lake_records: + drepo = self.repos.get(dep) + if drepo is None: + continue + if not drepo.has_commit(pkg['rev']): + self.add(BLOCK, 'PIN-MISSING', '%s:%s pins %s at %s, which is not in that repository%s' % ( + key, lm, dep, pkg['rev'], drepo.where()), repo=key, path=lm, target=dep, pin=pkg['rev']) + elif pkg['rev'] != self.ref_for(dep, drepo): + self.add(INFO, 'LAKE-DEP', '%s:%s pins %s at %s; crawl reads it at %s' % ( + key, lm, dep, pkg['rev'][:12], self.ref_for(dep, drepo)[:12]), repo=key, path=lm) + + def lake_targets(self, key, repo): + ref = self.ref_for(key, repo) + tree = repo.tree(ref) + out = [] + for lm in sorted(p for p in tree if p.rsplit('/', 1)[-1] == 'lake-manifest.json' and '/.lake/' not in '/' + p): + doc = self.json_at(repo, ref, lm) + if doc is None: + continue + packages = doc.get('packages', []) if isinstance(doc, dict) else None + if not isinstance(packages, list): + # dependencies that cannot be read cannot be checked: that is malformed, not empty + self.add(BLOCK, 'MALFORMED', '%s:%s has no readable packages list' % (key, lm), repo=key, path=lm) + continue + for pkg in packages: + kind = pkg.get('type') if isinstance(pkg, dict) else None + if kind == 'path': + continue + if kind != 'git': + # Lake writes only git and path packages; any other shape (or an older nested format) is unread + self.add(BLOCK, 'MALFORMED', '%s:%s has a package that is neither git nor path: %.160r' % ( + key, lm, pkg), repo=key, path=lm) + continue + try: + if not isinstance(pkg.get('url'), str): + raise CrawlError('no url') + dep = repo_key(pkg['url']) + except CrawlError as exc: + self.add(BLOCK, 'MALFORMED', '%s:%s has a git package %r without a repository URL (%s)' % ( + key, lm, pkg.get('name'), exc), repo=key, path=lm) + continue + if dep.split('/')[0] not in self.owners: + self.stats['lake_external_edges'] += 1 + continue + self.urls.setdefault(dep, pkg['url']) + self.edges.append((key, dep, 'lake')) + rev = pkg.get('rev') + if not (isinstance(rev, str) and re.fullmatch(r'[0-9a-f]{40}', rev)): + # only a full commit id pins a git dependency; a branch, tag, short or empty rev is a missing pin + self.add(BLOCK, 'PIN-MISSING', '%s:%s pins %s with no full commit id (%r)' % (key, lm, dep, rev), + repo=key, path=lm, target=dep, pin=rev) + else: + self.lake_records.append((key, ref, lm, pkg, dep)) + out.append(dep) + return out + + def registry_targets(self, key): + """Repositories named by artifacts of the registries that `key` declares.""" + out = [] + for owner, label, spec in self.canonical_inputs: + if owner != key or not isinstance(spec, dict) or 'repository' not in spec or 'path' not in spec: + continue + try: + rkey = repo_key(spec['repository']) + except CrawlError: + continue + out.append(rkey) + rrepo = self.open(rkey, 'canonical input %s of %s' % (label, key)) + if rrepo is None: + continue + ref = spec.get('ref') or self.ref_for(rkey, rrepo) + if not rrepo.has_commit(ref): + continue + doc = self.json_at(rrepo, ref, spec['path']) if spec['path'] in rrepo.tree(ref) else None + if isinstance(doc, dict) and isinstance(doc.get('repositories'), dict) and isinstance(doc.get('artifacts'), list): + used = {a.get('repository') for a in doc['artifacts'] if isinstance(a, dict)} + for name, ent in sorted(doc['repositories'].items()): + if name in used and isinstance(ent, dict) and ent.get('full_name'): + try: + out.append(repo_key(ent['full_name'])) + except CrawlError: + pass + return out + + def expand(self, owner, repo): + """Read one repository's own pin and listing records; return the repositories they name.""" + seed_key = owner + ref = self.ref_for(owner, repo) + tree = repo.tree(ref) + records = collections.defaultdict(dict) # key -> {source: value} + + gm = repo.read(ref, '.gitmodules') + if gm is not None: + try: + mods = parse_gitmodules(gm.decode('utf-8')) + except (CrawlError, UnicodeDecodeError) as exc: + self.add(BLOCK, 'MALFORMED', '.gitmodules: %s' % exc, repo=seed_key, ref=ref, path='.gitmodules') + mods = {} + for name, m in sorted(mods.items()): + if 'url' not in m or 'path' not in m: + self.add(BLOCK, 'MALFORMED', 'submodule %s lacks url or path' % name, repo=seed_key, path='.gitmodules') + continue + key = repo_key(m['url']) + self.urls.setdefault(key, m['url']) + records[key]['gitmodules'] = m['path'] + if m.get('update') == 'none': + self.optional.add(key) + ent = tree.get(m['path']) + if ent is None or ent[1] != 'commit': + self.add(BLOCK, 'PIN-SOURCES', 'submodule %s has no gitlink at %s' % (name, m['path']), + repo=seed_key, ref=ref, path=m['path']) + else: + records[key]['gitlink'] = ent[2] + for path, (mode, typ, sha) in sorted(tree.items()): + if typ == 'commit' and not any(r.get('gitmodules') == path for r in records.values()): + self.add(BLOCK, 'PIN-SOURCES', 'gitlink %s has no .gitmodules entry' % path, repo=seed_key, ref=ref, path=path) + + pins = self.json_at(repo, ref, 'pins.json') + if pins is not None: + if not isinstance(pins, dict) or not isinstance(pins.get('repos'), list): + self.add(BLOCK, 'MALFORMED', 'pins.json has no repos list', repo=seed_key, path='pins.json') + else: + for ent in pins['repos']: + try: + key = repo_key(ent['url']) + sha, path = ent['pinned_sha'], ent['path'] + self.urls.setdefault(key, ent['url']) + except (KeyError, TypeError, CrawlError) as exc: + self.add(BLOCK, 'MALFORMED', 'pins.json entry %r: %s' % (ent, exc), repo=seed_key, path='pins.json') + continue + if 'pins' in records[key]: + self.add(BLOCK, 'PIN-SOURCES', 'pins.json lists %s twice' % key, repo=seed_key, path='pins.json') + records[key]['pins'] = sha + records[key]['pins_path'] = path + if ent.get('opt_in'): + self.optional.add(key) + + reg = self.json_at(repo, ref, 'workspace/repositories.json') + inputs = {} + if reg is not None: + for ent in reg.get('repositories', []) if isinstance(reg, dict) else []: + try: + records[repo_key(ent['full_name'])]['listed'] = True + except (KeyError, TypeError, CrawlError) as exc: + self.add(BLOCK, 'MALFORMED', 'repositories.json entry %r: %s' % (ent, exc), repo=seed_key) + inputs = reg.get('canonical_inputs', {}) if isinstance(reg, dict) else {} + + named = [] + for key, rec in sorted(records.items()): + if key == seed_key: + continue + named.append(key) + self.discovered.add(key) + self.owners.add(key.split('/')[0]) + srcs = [s for s in ('gitmodules', 'pins', 'listed') if s in rec] + have = set(srcs) + if gm is not None and pins is not None and ('gitmodules' in have) != ('pins' in have): + self.add(BLOCK, 'PIN-SOURCES', '%s is in %s but not in %s' % ( + key, 'gitmodules' if 'gitmodules' in have else 'pins.json', + 'pins.json' if 'gitmodules' in have else '.gitmodules'), repo=seed_key, target=key) + if reg is not None and (have & {'gitmodules', 'pins'}) and 'listed' not in have: + self.add(BLOCK, 'PIN-SOURCES', '%s is pinned but not listed in workspace/repositories.json' % key, + repo=seed_key, target=key) + if 'gitlink' in rec and 'pins' in rec and rec['gitlink'] != rec['pins']: + self.add(BLOCK, 'PIN-SOURCES', '%s: gitlink %s but pins.json %s' % (key, rec['gitlink'][:12], rec['pins'][:12]), + repo=seed_key, target=key) + if 'gitmodules' in rec and 'pins_path' in rec and rec['gitmodules'] != rec['pins_path']: + self.add(BLOCK, 'PIN-SOURCES', '%s: .gitmodules path %s but pins.json path %s' % (key, rec['gitmodules'], rec['pins_path']), + repo=seed_key, target=key) + pin = rec.get('pins') or rec.get('gitlink') + if pin: + self.pin_records.append((seed_key, key, pin)) + first = self.pins.setdefault(key, pin) + if first != pin: + self.add(INFO, 'PIN-DIVERGENT', '%s pins %s at %s; an earlier record pins %s, which the crawl reads' % ( + seed_key, key, pin[:12], first[:12]), repo=seed_key, target=key, pin=pin) + self.edges.append((seed_key, key, '+'.join(srcs))) + for label, spec in sorted(inputs.items()) if isinstance(inputs, dict) else []: + self.canonical_inputs.append((seed_key, label, spec)) + return named + + def check_pins(self): + for parent, key, pin in sorted(set(self.pin_records)): + repo = self.repos.get(key) + if repo is None: + continue + if not repo.has_commit(pin): + self.add(BLOCK, 'PIN-MISSING', 'pinned commit %s is not in %s%s' % (pin, key, repo.where()), repo=key, pin=pin) + continue + tip = repo.default_tip() + if pin == tip: + continue + if repo.shallow: + self.add(BLOCK, 'PIN-OFFLINE', 'cannot decide whether pin %s is on the default line: %s is a shallow clone ' + '(rerun with --fetch)' % (pin[:12], repo.gitdir), repo=key, pin=pin, tip=tip) + elif not repo.is_ancestor(pin, tip): + self.add(BLOCK, 'PIN-OFFLINE', 'pinned commit %s is not an ancestor of the default tip %s' % (pin[:12], tip[:12]), + repo=key, pin=pin, tip=tip) + else: + n = git(repo.gitdir, 'rev-list', '--count', '%s..%s' % (pin, tip)).stdout.decode().strip() + self.add(INFO, 'PIN-STALE', 'pin %s is %s commits behind the default tip %s' % (pin[:12], n, tip[:12]), + repo=key, pin=pin, tip=tip) + + # ------------------------------------------------------------------ registries + def check_registries(self): + for owner, label, spec in self.canonical_inputs: + if not isinstance(spec, dict) or 'repository' not in spec or 'path' not in spec: + continue + key = repo_key(spec['repository']) + repo = self.open(key, 'canonical input %s' % label) + if repo is None: + continue + ref = spec.get('ref') + if ref and not repo.has_commit(ref): + self.add(BLOCK, 'PIN-MISSING', 'canonical input %s ref %s is not in %s%s' % (label, ref, key, repo.where()), repo=key) + continue + ref = ref or self.ref_for(key, repo) + ent = repo.tree(ref).get(spec['path']) + if spec.get('observed_blob') and (ent is None or ent[2] != spec['observed_blob']): + self.add(INFO, 'INPUT-OBSERVED', 'canonical input %s: %s at %s is %s, recorded %s' % ( + label, spec['path'], ref[:12], ent[2][:12] if ent else 'absent', spec['observed_blob'][:12]), + repo=key, ref=ref, path=spec['path']) + if ent is None: + self.add(BLOCK, 'INPUT-MISSING', 'canonical input %s is absent at %s@%s:%s' % ( + label, key, ref, spec['path']), label=label, repo=key, ref=ref, path=spec['path']) + continue + doc = self.json_at(repo, ref, spec['path']) + if isinstance(doc, dict) and isinstance(doc.get('artifacts'), list) and isinstance(doc.get('repositories'), dict): + self.check_artifacts(repo, ref, spec['path'], doc) + + def check_artifacts(self, reg_repo, reg_ref, reg_path, doc): + names = {} + for name, ent in doc['repositories'].items(): + try: + names[name] = repo_key(ent['full_name']) + except (KeyError, TypeError, CrawlError) as exc: + self.add(BLOCK, 'MALFORMED', 'registry repository %r: %s' % (name, exc), repo=reg_repo.key, path=reg_path) + trees = {} + for art in doc['artifacts']: + where = dict(repo=reg_repo.key, path=reg_path, artifact=art.get('key')) + try: + key = names[art['repository']] + commit, path, size, digest = art['commit'], art['path'], int(art['bytes']), art['sha256'] + except (KeyError, TypeError, ValueError) as exc: + self.add(BLOCK, 'MALFORMED', 'artifact %r: %s' % (art.get('key'), exc), **where) + continue + repo = self.open(key, 'registry artifact %s' % art.get('key')) + if repo is None: + continue + self.stats['registry_artifacts'] += 1 + if not repo.has_commit(commit): + self.add(BLOCK, 'PIN-MISSING', 'artifact %s: commit %s is not in %s%s' % (art.get('key'), commit, key, repo.where()), **where) + continue + if (key, commit) not in trees: + trees[(key, commit)] = repo.tree(commit) + ent = trees[(key, commit)].get(path) + data = repo.blob(ent[2]) if ent and ent[1] == 'blob' else None + if data is None: + self.add(BLOCK, 'REGISTRY-BYTES', 'artifact %s: %s is absent at %s' % (art.get('key'), path, commit[:12]), **where) + continue + if len(data) != size or hashlib.sha256(data).hexdigest() != digest: + self.add(BLOCK, 'REGISTRY-BYTES', 'artifact %s: %s at %s has %d bytes / sha256 %s, recorded %d / %s' % ( + art.get('key'), path, commit[:12], len(data), hashlib.sha256(data).hexdigest()[:16], size, digest[:16]), **where) + continue + self.stats['registry_artifacts_verified'] += 1 + ref = self.ref_for(key, repo) + if (key, ref) not in trees: + trees[(key, ref)] = repo.tree(ref) + now = trees[(key, ref)].get(path) + if now is None or now[2] != ent[2]: + self.stats['registry_artifacts_evolved'] += 1 + self.add(INFO, 'REGISTRY-EVOLVED', 'artifact %s: %s %s at the crawled ref %s' % ( + art.get('key'), path, 'is absent' if now is None else 'differs', ref[:12]), **where) + + # ------------------------------------------------------------------ Lean + def crawled(self): + for key in sorted(k for k, r in self.repos.items() if r is not None): + yield key, self.repos[key], self.ref_for(key, self.repos[key]) + + def check_lean(self): + decls = collections.defaultdict(list) + packages = {} + for key, repo, ref in list(self.crawled()): + tree = repo.tree(ref) + roots = sorted({p.rsplit('/', 1)[0] if '/' in p else '' for p in tree + if p.rsplit('/', 1)[-1] in ('lakefile.lean', 'lakefile.toml')}) + for root in roots: + tc = repo.read(ref, (root + '/' if root else '') + 'lean-toolchain') + packages[(key, root)] = tc.decode(errors='replace').strip() if tc else None + evidence = 0 + for path, (mode, typ, sha) in sorted(tree.items()): + if typ != 'blob' or not path.endswith('.lean') or '/.lake/' in '/' + path: + continue + if EVIDENCE_SEGMENT.search(path): + evidence += 1 + continue + pkg = max((r for r in roots if r == '' or path.startswith(r + '/')), key=len, default=None) + self.stats['lean_files'] += 1 + try: + found = lean_decls.declarations(repo.blob(sha).decode('utf-8'), unit='%s:%s' % (key, path)) + except (lean_decls.LeanSyntaxError, UnicodeDecodeError) as exc: + self.add(BLOCK, 'LEAN-SYNTAX', str(exc), repo=key, ref=ref, path=path) + continue + for d in found: + self.stats['lean_declarations'] += 1 + if d['private']: + continue + decls[d['name']].append({'repo': key, 'ref': ref, 'path': path, 'line': d['line'], + 'package': pkg, 'kind': d['kind'], 'interface': d['interface']}) + if evidence: + self.stats['lean_evidence_files'] += evidence + self.add(INFO, 'LEAN-EVIDENCE', '%d Lean files under evidence directories are frozen copies and ' + 'are not compared' % evidence, repo=key, ref=ref) + shared = 0 + coupled = collections.defaultdict(set) + for name, locs in sorted(decls.items()): + if len(locs) < 2: + continue + shared += 1 + pk = {(l['repo'], l['package']) for l in locs if l['package'] is not None} + for a in pk: + coupled[a] |= pk - {a} + variants = collections.OrderedDict() + for l in locs: + variants.setdefault((l['kind'], l['interface']), []).append(l) + if len(variants) > 1: + self.add(BLOCK, 'LEAN-DRIFT', '%s has %d different interfaces across %d locations' % (name, len(variants), len(locs)), + name=name, variants=[{'kind': k, 'interface': i, 'locations': ['%s@%s:%s:%d' % ( + l['repo'], l['ref'][:12], l['path'], l['line']) for l in ls]} for (k, i), ls in variants.items()]) + self.stats['lean_shared_names'] = shared + for (a, b) in sorted({tuple(sorted((x, y))) for x, ys in coupled.items() for y in ys}): + if packages.get(a) != packages.get(b): + self.add(INFO, 'TOOLCHAIN', 'packages %s:%s and %s:%s share declarations but use %s and %s' % ( + a[0], a[1] or '.', b[0], b[1] or '.', packages.get(a), packages.get(b))) + + def report(self): + return { + 'schema': 'cbz.drift.v1', + 'seed': {'repository': self.seed_key, 'ref': self.seed_ref}, + 'mode': self.at, + 'repositories': [{'repository': k, 'ref': self.refs.get(k), 'resolved': r is not None, + 'optional': k in self.optional, 'pin': self.pins.get(k)} for k, r in sorted(self.repos.items())], + 'edges': [{'from': a, 'to': b, 'via': v} for a, b, v in self.edges], + 'stats': dict(sorted(self.stats.items())), + 'blocking': sum(f['level'] == BLOCK for f in self.findings), + 'findings': self.findings, + } + + +def run(seed, search, at='pins', seed_ref=None, overrides=None, fetch=False, clone_into=None): + local = find_local_repos(search) + c = Crawl(local, at=at, overrides=overrides, fetch=fetch, clone_into=clone_into) + c.seed(repo_key(seed) if '/' in seed else _match_name(seed, local), seed_ref) + c.close_graph() + c.check_pins() + c.check_registries() + c.check_lean() + return c.report() + + +def _match_name(name, local): + hits = [k for k in local if k.split('/')[1] == name.lower()] + if len(hits) != 1: + raise CrawlError('seed %r matches %d local repositories' % (name, len(hits))) + return hits[0] + + +def main(argv=None): + ap = argparse.ArgumentParser(description=__doc__.split('\n')[0]) + ap.add_argument('--seed', required=True, help='owner/name (or a unique name) of the seed repository') + ap.add_argument('--search', action='append', required=True, help='directory whose subdirectories are local clones') + ap.add_argument('--seed-ref', help='ref of the seed to read (default: its default tip)') + ap.add_argument('--at', choices=('pins', 'tips'), default='pins') + ap.add_argument('--override', action='append', default=[], metavar='OWNER/NAME=REV') + ap.add_argument('--fetch', action='store_true', help='git fetch commits missing locally') + ap.add_argument('--clone-into', metavar='DIR', help='clone discovered repositories that no --search directory holds') + ap.add_argument('--json', metavar='FILE', help='write the full report here') + args = ap.parse_args(argv) + try: + ov = {} + for o in args.override: + k, _, v = o.partition('=') + if not v: + raise CrawlError('override %r is not NAME=REV' % o) + ov[repo_key(k) if '/' in k else k.lower()] = v + if args.clone_into: + pathlib.Path(args.clone_into).mkdir(parents=True, exist_ok=True) + rep = run(args.seed, args.search, at=args.at, seed_ref=args.seed_ref, overrides=ov, fetch=args.fetch, + clone_into=args.clone_into) + except CrawlError as exc: + print('drift crawler error: %s' % exc, file=sys.stderr) + return 2 + if args.json: + pathlib.Path(args.json).write_text(json.dumps(rep, indent=1, sort_keys=True) + '\n') + for f in rep['findings']: + if f['level'] == BLOCK: + print('BLOCK %s %s' % (f['code'], f['message'])) + info = collections.Counter(f['code'] for f in rep['findings'] if f['level'] == INFO) + print('crawled %d repositories from %s@%s (%s): %d BLOCK, INFO %s; stats %s' % ( + sum(r['resolved'] for r in rep['repositories']), rep['seed']['repository'], rep['seed']['ref'][:12], + rep['mode'], rep['blocking'], dict(sorted(info.items())) or '{}', rep['stats'])) + return 1 if rep['blocking'] else 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/cbz_drift/lean_decls.py b/tools/cbz_drift/lean_decls.py new file mode 100644 index 000000000..1c90bf525 --- /dev/null +++ b/tools/cbz_drift/lean_decls.py @@ -0,0 +1,325 @@ +"""Lexical extraction of Lean 4 declaration headers, for cross-repository drift checks. + +Domain (B-006). This module sees declarations written literally in source: +`theorem`, `lemma`, `def`, `abbrev`, `instance` (named), `axiom`, `opaque`, `structure`, +`class` and `inductive`, with their modifiers, inside `namespace` / `section` blocks. It +does not elaborate, expand macros or notation, or see declarations generated by +commands such as `deriving`, `mutual` auto-names or user syntax. A header is the token +sequence from the keyword to the first top-level `:=`, `where` or line-leading `|` +(for `structure`, `class` and `inductive`, the whole body up to the next command), with +comments removed and whitespace normalized. The compared `interface` is the header for +`theorem`, `lemma`, `axiom` and `opaque` (proofs are irrelevant; opaque values are +hidden), and header plus value for every definition-like declaration, whose value is part +of its meaning. Equal interfaces mean equal source text, not equal elaborated terms; +unequal interfaces mean the source differs. + +The source text of a statement includes the commands in scope that change what it +means: `open`, `variable`, `universe`, `export`, `include` and `omit`, in the enclosing +`namespace` and `section` blocks and at file level, plus any `open … in` or `variable … in` +prefix of the declaration itself. They are part of the interface (its `context`), so +`variable (x : Nat)` against `variable (x : Int)`, or `open Real` against `open NNReal`, +is drift. A variable the statement does not use still counts: that errs on the side of +reporting drift. Notation, macros and `set_option` are not tracked. + +Inside a declaration, `open … in` and `set_option … in` are term or tactic combinators. +They end the declaration only when they start a line that is not indented deeper than +the declaration, so a tactic block's `set_option maxRecDepth 100 in` stays in the value. +Every other command ends it wherever it appears. `mutual … end` is a scope like `section`. + +Fails closed: an unterminated comment, string or quoted name, an unbalanced `end`, or a +declaration keyword with no name raises LeanSyntaxError. +""" +from __future__ import annotations + +import re + +DECL_KEYWORDS = frozenset({ + 'theorem', 'lemma', 'def', 'abbrev', 'instance', 'axiom', 'opaque', + 'structure', 'class', 'inductive', 'example', +}) +BODY_KEYWORDS = frozenset({'structure', 'class', 'inductive'}) +# proofs are irrelevant to meaning; opaque values are hidden by design +STATEMENT_ONLY = frozenset({'theorem', 'lemma', 'axiom', 'opaque', 'example'}) +MODIFIERS = frozenset({'private', 'protected', 'noncomputable', 'unsafe', 'partial', 'nonrec'}) +COMMANDS = DECL_KEYWORDS | MODIFIERS | frozenset({ + 'namespace', 'section', 'end', 'open', 'variable', 'universe', 'set_option', + 'attribute', 'import', 'mutual', 'macro', 'macro_rules', 'syntax', 'notation', + 'infix', 'infixl', 'infixr', 'prefix', 'postfix', 'elab', 'elab_rules', + 'declare_syntax_cat', 'initialize', 'builtin_initialize', 'export', 'local', 'scoped', + 'omit', 'include', 'deriving', +}) +# commands whose text, in scope, is part of every declaration's interface +CONTEXT = frozenset({'open', 'variable', 'universe', 'export', 'include', 'omit'}) +# commands that also have a `… in` term or tactic form, so may appear inside a declaration +COMBINATORS = frozenset({'open', 'set_option'}) +OPEN = {'(': ')', '[': ']', '{': '}', '⟨': '⟩', '⦃': '⦄', '⟪': '⟫'} +CLOSE = {v: k for k, v in OPEN.items()} +RAW_OPEN = re.compile(r'r(#*)"') + + +class LeanSyntaxError(ValueError): + pass + + +def _ident_start(c): + return c.isalpha() or c == '_' + + +def _ident_char(c): + return c.isalnum() or c in "_'!?" + + +def tokens(text): + """Yield (kind, text, line, first_on_line). Kinds: ident, str, char, num, sym.""" + i, n, line, fresh = 0, len(text), 1, True + while i < n: + c = text[i] + if c == '\n': + line, fresh, i = line + 1, True, i + 1 + continue + if c in ' \t\r': + i += 1 + continue + start_line, first = line, fresh + fresh = False + if text.startswith('--', i): + j = text.find('\n', i) + i = n if j < 0 else j + fresh = first + continue + if text.startswith('/-', i): + depth, i = 1, i + 2 + while depth: + if i >= n: + raise LeanSyntaxError('unterminated comment opened on line %d' % start_line) + if text.startswith('/-', i): + depth, i = depth + 1, i + 2 + elif text.startswith('-/', i): + depth, i = depth - 1, i + 2 + else: + line += text[i] == '\n' + i += 1 + fresh = first + continue + m = RAW_OPEN.match(text, i) if c == 'r' else None + if m and (i == 0 or not _ident_char(text[i - 1])): + close = '"' + m.group(1) + j = text.find(close, m.end()) + if j < 0: + raise LeanSyntaxError('unterminated raw string on line %d' % start_line) + line += text.count('\n', i, j) + yield 'str', text[i:j + len(close)], start_line, first + i = j + len(close) + continue + if c == '"': + j = i + 1 + while True: + if j >= n: + raise LeanSyntaxError('unterminated string on line %d' % start_line) + if text[j] == '\\': + j += 2 + elif text[j] == '"': + break + else: + j += 1 + line += text.count('\n', i, j) + yield 'str', text[i:j + 1], start_line, first + i = j + 1 + continue + if c == "'" and i + 2 < n and (text[i + 2] == "'" or (text[i + 1] == '\\' and "'" in text[i + 3:i + 12])): + j = text.index("'", i + 2 if text[i + 1] != '\\' else i + 3) + yield 'char', text[i:j + 1], start_line, first + i = j + 1 + continue + if c == '«' or _ident_start(c): + j, parts = i, [] + while True: + if j < n and text[j] == '«': + k = text.find('»', j) + if k < 0: + raise LeanSyntaxError('unterminated «name» on line %d' % start_line) + parts.append(text[j:k + 1]) + j = k + 1 + elif j < n and _ident_start(text[j]): + k = j + while k < n and _ident_char(text[k]): + k += 1 + parts.append(text[j:k]) + j = k + else: + break + if j + 1 < n and text[j] == '.' and (text[j + 1] == '«' or _ident_start(text[j + 1])): + j += 1 + else: + break + yield 'ident', '.'.join(parts), start_line, first + i = j + continue + if c.isdigit(): + j = i + while j < n and (text[j].isalnum() or text[j] in '._'): + j += 1 + yield 'num', text[i:j], start_line, first + i = j + continue + if text.startswith(':=', i): + yield 'sym', ':=', start_line, first + i += 2 + continue + yield 'sym', c, start_line, first + i += 1 + + +def declarations(text, unit=''): + """Return a list of dicts: name, kind, header, line, private, modifiers. + + `unit` disambiguates `private` names, which are file-local and never compared. + """ + toks = list(tokens(text)) + indents = [len(l) - len(l.lstrip(' \t')) for l in text.split('\n')] + out, scopes, i, n = [], [], 0, len(toks) + root, prefix = [], [] # file-level context commands; pending `… in` prefixes + + def current_ns(): + return [p for kind, parts, _ in scopes if kind == 'namespace' for p in parts] + + def context(): + return root + [c for _, _, ctx in scopes for c in ctx] + prefix + + def inner(j, indent): + # a combinator inside a declaration: mid-line, or on a line indented deeper than it + k, t, ln, fst = toks[j] + return k == 'ident' and t in COMBINATORS and not (fst and indents[ln - 1] <= indent) + + while i < n: + kind, tx, line, first = toks[i] + if kind == 'ident' and tx in ('namespace', 'section'): + name = toks[i + 1][1] if i + 1 < n and toks[i + 1][0] == 'ident' and toks[i + 1][2] == line else '' + if tx == 'namespace' and not name: + raise LeanSyntaxError('namespace without a name on line %d' % line) + scopes.append((tx, name.split('.') if name else [], [])) + prefix.clear() + i += 2 if name else 1 + continue + if kind == 'ident' and tx == 'mutual': + scopes.append(('mutual', [], [])) + prefix.clear() + i += 1 + continue + if kind == 'ident' and (tx in CONTEXT or tx == 'set_option'): + # a context command runs to the next command; with a trailing `in` it prefixes the next one + indent, cmd, depth, j = indents[line - 1], [tx], 0, i + 1 + while j < n: + k, t, ln, fst = toks[j] + if depth == 0 and not inner(j, indent) and ( + (k == 'ident' and t in COMMANDS) + or (k == 'sym' and t == '@' and j + 1 < n and toks[j + 1][1] == '[') + or (k == 'sym' and t == '#' and fst and j + 1 < n and toks[j + 1][0] == 'ident')): + break + if k == 'sym' and t in OPEN: + depth += 1 + elif k == 'sym' and t in CLOSE: + depth = max(depth - 1, 0) + cmd.append(t) + j += 1 + if cmd[-1] == 'in': + if tx in CONTEXT: + prefix.append(' '.join(cmd[:-1])) + else: + if tx in CONTEXT: + (scopes[-1][2] if scopes else root).append(' '.join(cmd)) + prefix.clear() + i = j + continue + if kind == 'ident' and tx == 'end': + name = toks[i + 1][1] if i + 1 < n and toks[i + 1][0] == 'ident' and toks[i + 1][2] == line and toks[i + 1][1] not in COMMANDS else '' + parts = name.split('.') if name else [] + if not scopes: + raise LeanSyntaxError('unbalanced end on line %d' % line) + skind, sparts, _ = scopes[-1] + if sparts != parts: + raise LeanSyntaxError('end %s on line %d closes %s %s' % (name or '(anonymous)', line, skind, '.'.join(sparts) or '(anonymous)')) + scopes.pop() + prefix.clear() + i += 2 if name else 1 + continue + if kind == 'ident' and (tx in DECL_KEYWORDS or tx in MODIFIERS): + # collect modifiers, attributes already passed as symbols + mods, j = [], i + while j < n and toks[j][0] == 'ident' and toks[j][1] in MODIFIERS: + mods.append(toks[j][1]) + j += 1 + if j >= n or toks[j][0] != 'ident' or toks[j][1] not in DECL_KEYWORDS: + i = max(j, i + 1) + continue + dkind, dline, indent = toks[j][1], toks[j][2], indents[line - 1] + j += 1 + if dkind == 'instance' and j < n and toks[j][1] == '(': + depth = 0 + while j < n: + depth += toks[j][1] == '(' + depth -= toks[j][1] == ')' + j += 1 + if depth == 0: + break + name = None + if dkind != 'example' and j < n and toks[j][0] == 'ident' and toks[j][1] not in COMMANDS and toks[j][1] != 'where': + name = toks[j][1] + j += 1 + if name is None and dkind not in ('example', 'instance'): + raise LeanSyntaxError('%s without a name on line %d' % (dkind, dline)) + hdr, depth = [], 0 + while j < n: + k, t, ln, fst = toks[j] + if depth == 0 and not inner(j, indent): + if k == 'ident' and t in COMMANDS and not (t == 'deriving' and dkind in BODY_KEYWORDS): + break + if k == 'sym' and t == '@' and j + 1 < n and toks[j + 1][1] == '[': + break + if k == 'sym' and t == '#' and fst and j + 1 < n and toks[j + 1][0] == 'ident': + break + if dkind not in BODY_KEYWORDS: + if (k == 'sym' and t == ':=') or (k == 'ident' and t == 'where') or (k == 'sym' and t == '|' and fst): + break + if k == 'sym' and t in OPEN: + depth += 1 + elif k == 'sym' and t in CLOSE: + depth = max(depth - 1, 0) + hdr.append(t) + j += 1 + # the rest of the declaration, up to the next top-level command + body = [] + while j < n: + k, t, ln, fst = toks[j] + if depth == 0 and not inner(j, indent) and ( + (k == 'ident' and t in COMMANDS and t != 'deriving') + or (k == 'sym' and t == '@' and j + 1 < n and toks[j + 1][1] == '[') + or (k == 'sym' and t == '#' and fst and j + 1 < n and toks[j + 1][0] == 'ident')): + break + if k == 'sym' and t in OPEN: + depth += 1 + elif k == 'sym' and t in CLOSE: + depth = max(depth - 1, 0) + body.append(t) + j += 1 + if name is not None: + full = name[len('_root_.'):] if name.startswith('_root_.') else '.'.join(current_ns() + [name]) + header = ' '.join(hdr) + out.append({ + 'name': full, 'kind': dkind, 'header': header, 'line': dline, + 'private': 'private' in mods, 'unit': unit, + 'modifiers': sorted(m for m in mods if m != 'private'), + # what must agree across copies: the statement of a proposition, the + # statement and value of a definition (its value is part of its meaning) + 'interface': header if dkind in STATEMENT_ONLY else ' '.join(hdr + body), + 'context': context(), + }) + if out[-1]['context']: + out[-1]['interface'] = ' ; '.join(out[-1]['context']) + ' ⊢ ' + out[-1]['interface'] + prefix.clear() + i = j + continue + if kind == 'ident' and tx in COMMANDS: + prefix.clear() # any other command consumes a pending `… in` prefix + i += 1 + return out diff --git a/tools/cbz_node_controls.py b/tools/cbz_node_controls.py new file mode 100644 index 000000000..6c3bb8a1b --- /dev/null +++ b/tools/cbz_node_controls.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +"""Run the bounded Node controls with source-selected child test imports.""" +import argparse +import os +import re +from pathlib import Path +import subprocess +import sys +import tempfile + +_BOOTSTRAP = ( + "import sys, unittest\n" + "sys.path.insert(0, sys.argv[1])\n" + "unittest.main(module=None, argv=['unittest', 'discover', '-s', 'tests', " + "'-p', 'test_cbz_node_regression.py', '-v'])\n" +) + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--root", type=Path, default=Path(__file__).resolve().parents[1]) + args = parser.parse_args(argv) + root = args.root.resolve() + if not (root / "tests").is_dir(): + parser.error("root must contain the test directory") + env = {key: value for key, value in os.environ.items() + if not key.startswith(("PYTHON", "GIT_")) + and key not in ("CBZ_NODE_RUNNER_SOURCE", "CBZ_NODE_MUTANT_NONCE", + "CBZ_NODE_MUTANT_RECEIPT", "CBZ_NODE_MUTANT_NAME", + "CBZ_NODE_CONTROL_LAUNCHER")} + with tempfile.TemporaryDirectory(prefix="cbz-node-outer-pycache-") as cache: + command = [sys.executable, *(["-O"] if sys.flags.optimize else []), + "-I", "-B", "-S", "-X", f"pycache_prefix={cache}", + "-c", _BOOTSTRAP, str(root)] + result = subprocess.run(command, cwd=root, env=env, capture_output=True, text=True) + sys.stdout.write(result.stdout) + sys.stderr.write(result.stderr) + runs = re.findall(r"^Ran [^\n]*$", result.stderr, re.MULTILINE) + clean_summary = re.findall(r"^OK$", result.stderr, re.MULTILINE) + if (result.returncode != 0 or len(runs) != 1 or len(clean_summary) != 1 + or not re.fullmatch(r"Ran [1-9][0-9]* tests? in [0-9]+(?:\.[0-9]+)?s", runs[0])): + print("Node control suite did not execute a nonempty unskipped passing suite", file=sys.stderr) + return 1 + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/cbz_node_regression.py b/tools/cbz_node_regression.py new file mode 100644 index 000000000..0d22fd66d --- /dev/null +++ b/tools/cbz_node_regression.py @@ -0,0 +1,379 @@ +"""Run all tracked Node tests with byte-verified historical display fixtures. + +Operational test evidence only; no mathematical or final CBZ certification. +The report records a real subprocess attempt and endpoint source checks. +""" +from __future__ import annotations + +import argparse +import base64 +import hashlib +import json +import os +import platform +from pathlib import Path, PurePosixPath +import re +import subprocess +import sys +import types +from datetime import datetime, timezone +from urllib.parse import quote + +_MUSEUM_PATH = Path(__file__).resolve().with_name("museum_data.py") +_MUSEUM_SOURCE = _MUSEUM_PATH.read_bytes() +museum_data = types.ModuleType("_cbz_museum_data") +museum_data.__file__ = str(_MUSEUM_PATH) +exec(compile(_MUSEUM_SOURCE, str(_MUSEUM_PATH), "exec"), museum_data.__dict__) + +ROOT = Path(__file__).resolve().parents[1] +_LOADED_SOURCE = Path(__file__).read_bytes() +_LOADED_SOURCES = { + Path(__file__).resolve(): _LOADED_SOURCE, + _MUSEUM_PATH: _MUSEUM_SOURCE, +} +_REPOSITORIES = { + "d6g8k5htny-coder/main", + "d6g8k5htny-coder/Math-", + "d6g8k5htny-coder/query-", +} +_SUMMARY_FIELDS = ("tests", "pass", "fail", "cancelled", "skipped", "todo") + + +def assert_loaded_sources(main_root): + expected = {main_root.resolve() / "tools/cbz_node_regression.py", + main_root.resolve() / "tools/museum_data.py"} + if set(_LOADED_SOURCES) != expected: + raise ValueError("loaded source root identity mismatch") + for path, raw in _LOADED_SOURCES.items(): + if path.is_symlink() or path.read_bytes() != raw: + raise ValueError("loaded source bytes changed") + + +def git_env(): + env = {key: value for key, value in os.environ.items() + if not key.startswith("GIT_")} + env.update(GIT_CONFIG_NOSYSTEM="1", GIT_CONFIG_GLOBAL=os.devnull, + GIT_NO_REPLACE_OBJECTS="1", GIT_NO_LAZY_FETCH="1", + GIT_OPTIONAL_LOCKS="0") + return env + + +def git(root, *args): + process = subprocess.run(["git", "-C", str(root), *args], + capture_output=True, env=git_env()) + if process.returncode: + raise ValueError("Git command failed: " + " ".join(args)) + return process.stdout + + +def no_duplicates(pairs): + value = {} + for key, item in pairs: + if key in value: + raise ValueError("duplicate JSON key: " + key) + value[key] = item + return value + + +def read_pinned(roots, descriptor): + """Read a regular immutable Git blob and verify all declared identities.""" + if not isinstance(descriptor, dict): + raise ValueError("invalid source descriptor") + repository = descriptor.get("repository") + commit = descriptor.get("commit") + path = descriptor.get("path") + length = descriptor.get("bytes") + digest = descriptor.get("sha256") + if (repository not in _REPOSITORIES or repository not in roots + or not isinstance(commit, str) + or not re.fullmatch(r"[0-9a-f]{40}", commit) + or not isinstance(path, str) or not path + or PurePosixPath(path).is_absolute() + or any(part in ("", ".", "..") for part in path.split("/")) + or "\0" in path or "\\" in path + or type(length) is not int or length <= 0 + or not isinstance(digest, str) + or not re.fullmatch(r"[0-9a-f]{64}", digest)): + raise ValueError("invalid source descriptor") + expected_url = ("https://raw.githubusercontent.com/" + repository + "/" + + commit + "/" + quote(path, safe="/")) + if "url" in descriptor and descriptor["url"] != expected_url: + raise ValueError("pin URL/identity mismatch") + blob = descriptor.get("blob") + if blob is not None and (not isinstance(blob, str) + or not re.fullmatch(r"[0-9a-f]{40}", blob)): + raise ValueError("invalid Git blob identity") + root = roots[repository] + tree = git(root, "ls-tree", "-z", commit, "--", path).split(b"\0") + if len(tree) != 2 or tree[1]: + raise ValueError("missing or ambiguous pinned Git blob") + metadata, actual_path = tree[0].split(b"\t", 1) + mode, kind, oid = metadata.split() + if (mode not in (b"100644", b"100755") or kind != b"blob" + or actual_path.decode("utf-8") != path): + raise ValueError("pinned source is not a regular Git blob") + raw = git(root, "cat-file", "blob", commit + ":" + path) + actual_blob = hashlib.sha1( + b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest() + if (len(raw) != length or hashlib.sha256(raw).hexdigest() != digest + or actual_blob != oid.decode("ascii") + or (blob is not None and actual_blob != blob)): + raise ValueError("source identity mismatch: " + path) + return raw + + +def materialize(descriptors, roots, destination): + """Verify every descriptor before writing any source fixture.""" + verified = [(descriptor, read_pinned(roots, descriptor)) + for descriptor in descriptors] + paths = {} + for descriptor, raw in verified: + key = (descriptor["repository"].rsplit("/", 1)[1], descriptor["path"]) + if key in paths and paths[key] != raw: + raise ValueError("conflicting fixture identities") + paths[key] = raw + for (repository, relative), raw in paths.items(): + target = destination / repository / relative + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes(raw) + return verified + + +def source_snapshot(root): + """Check owned worktree bytes even when Git's index hides their changes.""" + head = git(root, "rev-parse", "--verify", "HEAD^{commit}").decode().strip() + if git(root, "status", "--porcelain=v1", "--untracked-files=all"): + raise ValueError("main source worktree or index is not clean") + if git(root, "diff", "--cached", "--name-only", "HEAD", "--"): + raise ValueError("main index differs from HEAD") + for entry in git(root, "ls-tree", "-r", "-z", "HEAD").split(b"\0"): + if not entry: + continue + metadata, raw_path = entry.split(b"\t", 1) + mode, kind, oid = metadata.split() + path = root / os.fsdecode(raw_path) + if mode in (b"100644", b"100755") and kind == b"blob": + if path.is_symlink() or not path.is_file(): + raise ValueError("main tracked file missing or changed type") + raw = path.read_bytes() + executable = bool(path.stat().st_mode & 0o111) + if executable != (mode == b"100755"): + raise ValueError("main tracked executable mode changed") + else: + raise ValueError("main contains an unsupported tracked Git entry") + actual = hashlib.sha1( + b"blob " + str(len(raw)).encode("ascii") + b"\0" + raw).hexdigest() + if actual.encode("ascii") != oid: + raise ValueError("main tracked bytes differ from HEAD: " + + os.fsdecode(raw_path)) + return head + + +def tap_summary(text): + values = {} + for name in _SUMMARY_FIELDS: + matches = re.findall(r"^# " + name + r" ([0-9]+)\s*$", text, re.MULTILINE) + if len(matches) != 1: + raise ValueError("missing or ambiguous Node TAP summary: " + name) + values[name] = int(matches[0]) + if not (values["tests"] > 0 and values["pass"] == values["tests"] + and all(values[name] == 0 for name in _SUMMARY_FIELDS[2:])): + raise ValueError("Node tests failed, were cancelled, or were skipped/todo") + return values + + +def node_command(root, node): + entries = git(root, "ls-files", "--stage", "-z", "--", "tests/*.mjs") + paths = [] + for entry in entries.split(b"\0"): + if not entry: + continue + metadata, path = entry.split(b"\t", 1) + mode, oid, stage = metadata.split() + if mode not in (b"100644", b"100755") or stage != b"0": + raise ValueError("regular stage-zero Node test files are required") + paths.append(os.fsdecode(path)) + if not paths: + raise ValueError("no tracked Node tests") + return [node, "--test", "--test-reporter=tap", *sorted(paths)] + + +def verify_fixture_tree(output, expected): + """Require the exact regular fixture/manifest file and directory domain.""" + expected_dirs = {"shop", "museum"} + for relative in expected: + path = PurePosixPath(relative) + if (path.is_absolute() or path.parts[0] not in expected_dirs + or any(part in ("", ".", "..") for part in relative.split("/"))): + raise ValueError("invalid fixture expectation") + expected_dirs.update(str(parent) for parent in path.parents + if str(parent) != ".") + def walk_error(error): + raise error + + actual_files = {} + actual_dirs = set() + for label in ("shop", "museum"): + root = output / label + if root.is_symlink() or not root.is_dir(): + raise ValueError("fixture root missing or changed type") + for directory, directories, files in os.walk(root, followlinks=False, onerror=walk_error): + parent = Path(directory) + actual_dirs.add(parent.relative_to(output).as_posix()) + for name in directories: + actual_dirs.add((parent / name).relative_to(output).as_posix()) + if (parent / name).is_symlink(): + raise ValueError("fixture directory is a symlink") + for name in files: + path = parent / name + if path.is_symlink() or not path.is_file(): + raise ValueError("fixture file missing or changed type") + raw = path.read_bytes() + actual_files[path.relative_to(output).as_posix()] = dict( + bytes=len(raw), sha256=hashlib.sha256(raw).hexdigest()) + if actual_files != expected or actual_dirs != expected_dirs: + raise ValueError("fixture set or bytes changed") + + +class FixturePostflightError(ValueError): + def __init__(self, error, exit_code): + super().__init__(str(error)) + self.exit_code = exit_code + + +def execute_node(root, command, environment, log, fixture_root, expected_fixtures): + verify_fixture_tree(fixture_root, expected_fixtures) + process = subprocess.run(command, cwd=root, env=environment, + stdout=log, stderr=subprocess.STDOUT) + try: + verify_fixture_tree(fixture_root, expected_fixtures) + except (OSError, ValueError) as error: + raise FixturePostflightError(error, process.returncode) from error + return process.returncode + + +def write_report(path, record): + temporary = path.with_suffix(".tmp") + temporary.write_text(json.dumps(record, indent=2, sort_keys=True) + "\n") + temporary.replace(path) + + +def run(main_root, math_root, query_root, output, node="node"): + """Execute the whole tracked Node suite, preserving failures and output.""" + roots = { + "d6g8k5htny-coder/main": main_root.resolve(), + "d6g8k5htny-coder/Math-": math_root.resolve(), + "d6g8k5htny-coder/query-": query_root.resolve(), + } + output = output.resolve() + if any(output == root or output.is_relative_to(root) + for root in roots.values()): + raise ValueError("output must be outside every source root") + output.mkdir(parents=True, exist_ok=False) + record = dict(schema="cbz.node-regression.v1", status="RUNNING", + started_utc=datetime.now(timezone.utc).isoformat(), + mathematical_certification=False, final_cbz_certification=False, + runtime=dict(python=sys.version, implementation=sys.implementation.name, + platform=sys.platform, machine=platform.machine())) + report = output / "result.json" + write_report(report, record) + log = output / "node.tap" + try: + assert_loaded_sources(main_root) + record["source_before"] = source_snapshot(main_root) + config = json.loads((main_root / "docs/site/config.json").read_bytes(), + object_pairs_hook=no_duplicates) + shop = [config[name] for name in ("coefficient", "proof", "imports", "query")] + shop_verified = materialize(shop, roots, output / "shop") + museum = materialize(list(museum_data.SOURCES.values()), roots, + output / "museum") + mapping = { + museum_data.descriptor(descriptor["path"])["url"]: + base64.b64encode(raw).decode("ascii") + for descriptor, raw in museum + } + manifest = output / "museum/verified-inputs.json" + manifest_raw = (json.dumps(mapping, sort_keys=True) + "\n").encode("utf-8") + manifest.write_bytes(manifest_raw) + expected_fixtures = {} + for label, verified in (("shop", shop_verified), ("museum", museum)): + for descriptor, raw in verified: + repository = descriptor["repository"].rsplit("/", 1)[1] + relative = label + "/" + repository + "/" + descriptor["path"] + expected_fixtures[relative] = dict( + bytes=len(raw), sha256=hashlib.sha256(raw).hexdigest()) + expected_fixtures["museum/verified-inputs.json"] = dict( + bytes=len(manifest_raw), sha256=hashlib.sha256(manifest_raw).hexdigest()) + verify_fixture_tree(output, expected_fixtures) + record["fixture_files"] = len(expected_fixtures) + record["fixture_tree_sha256"] = hashlib.sha256(json.dumps( + expected_fixtures, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + museum_data.check_export( + main_root / "docs/site/museum.json", + museum_data.build(output / "museum/main", output / "museum/Math-")) + environment = {key: value for key, value in git_env().items() + if key not in ("NODE_OPTIONS", "NODE_PATH")} + environment.update( + SHOP_MATH_FIXTURE=str(output / "shop/Math-"), + SHOP_QUERY_FIXTURE=str(output / "shop/query-"), + MUSEUM_FIXTURE=str(manifest), + ) + command = node_command(main_root, node) + record["node_version"] = subprocess.check_output([node, "--version"], env=environment, text=True).strip() + record["command"] = command + record["fixture_environment"] = { + key: environment[key] + for key in ("SHOP_MATH_FIXTURE", "SHOP_QUERY_FIXTURE", "MUSEUM_FIXTURE") + } + record["fixtures"] = [dict(repository=d["repository"], commit=d["commit"], + path=d["path"], bytes=len(raw), + sha256=hashlib.sha256(raw).hexdigest()) + for d, raw in shop_verified + ] + [dict(repository=d["repository"], commit=d["commit"], + path=d["path"], bytes=len(raw), + sha256=hashlib.sha256(raw).hexdigest()) + for d, raw in museum] + write_report(report, record) + with log.open("wb") as stream: + record["node_exit"] = execute_node( + main_root, command, environment, stream, output, expected_fixtures) + record["log_sha256"] = hashlib.sha256(log.read_bytes()).hexdigest() + assert_loaded_sources(main_root) + record["source_after"] = source_snapshot(main_root) + if record["source_after"] != record["source_before"]: + raise ValueError("main HEAD changed during Node execution") + if record["node_exit"] != 0: + raise ValueError("Node exited unsuccessfully") + record["summary"] = tap_summary(log.read_text(encoding="utf-8")) + record["status"] = "PASS" + except Exception as error: + record["status"] = "FAIL" + record["error"] = str(error) + if isinstance(error, FixturePostflightError): + record["node_exit"] = error.exit_code + if log.is_file(): + record["log_sha256"] = hashlib.sha256(log.read_bytes()).hexdigest() + finally: + record["finished_utc"] = datetime.now(timezone.utc).isoformat() + write_report(report, record) + return record + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--math-root", type=Path, required=True) + parser.add_argument("--query-root", type=Path, required=True) + parser.add_argument("--output", type=Path, required=True) + args = parser.parse_args() + if Path(__file__).read_bytes() != _LOADED_SOURCE: + parser.error("loaded runner differs from its source bytes") + try: + record = run(ROOT, args.math_root, args.query_root, args.output) + except (OSError, ValueError) as error: + parser.exit(2, str(error) + "\n") + print(json.dumps({key: record[key] for key in ("status", "schema")})) + return 0 if record["status"] == "PASS" else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tools/formal_gate_check.py b/tools/formal_gate_check.py index bc4472bcb..aa2f90376 100644 --- a/tools/formal_gate_check.py +++ b/tools/formal_gate_check.py @@ -257,7 +257,11 @@ def source_check(root: Path, manifest_rel: str = MANIFEST) -> tuple[dict, str, P require(m["package"] == "side24-arithmetic-skeleton" and set(controls) == { "false_exponent_bound_d3", "false_covariance_bound", "false_exp_partial_sum", "wrong_image_constant", "false_eigenvalue_third", "false_trace_variance", - "false_endpoint_adjacency"}, "incomplete main negative control inventory") + "false_endpoint_adjacency", + # P15 modules (recomposed from #358): one statement control per displayed arithmetic family + "false_price_boundary_third", "wrong_generator_prices", "false_palette_815_count", + "wrong_transversal_count", "wrong_whole_ground_chromatic", "false_rho_endpoint_adjacency", + "false_rho_upper_six_sevenths", "wrong_taylor_certificate"}, "incomplete main negative control inventory") compiled.bound_inventory(m.get("compiled_inventory"), target_names, [p[:-5].replace("/", ".") for p in modules]) compiled.bound_codegen(m.get("codegen_inventory"), [p[:-5].replace("/", ".") for p in modules]) return m, sha(raw), pkg